export是HDFS里的文件导出到RDBMS的工具,不能从hive、hbase导出数据,且HDFS文件只能是文本格式。如果要把hive表数据导出到RDBMS,可以先把hive表通过查询写入到一个临时表,临时用文本格式,然后再从该临时表目录里export数据。

HDFS导出数据到MySQL 

说明: 
(1).Sqoop与数据库通信,获取数据库表的元数据信息; 
(2).将Hadoop上的文件划分成若干个Split,每个Split由一个Map Task进行数据导出操作;

参数

--columns:指定插入目标数据库的字段,sqoop直接读取hdfs文件并把记录解析成多个字段,此时解析后的记录是没有字段名的
是通过位置和columns列表对应的,数据库插入的sql类似于:
insert into _table (c1,c2...) value(v1,v2...)
--export-dir:指定HDFS输入文件的目录
--input-fields-terminated-by:字段之间分隔符
--input-lines-terminated-by:行分隔符

sqoop不会在mysql中自动创建表,在mysql中创建表EMP_DEMO

CREATE TABLE EMP_DEMO(
EMPNO int() PRIMARY KEY,
ENAME VARCHAR(),
JOB VARCHAR(),
MGR int(),
HIREDATE DATE,
SAL int(),
COMM int(),
DEPTNO int(),
foreign key(deptno) references DEPT(DEPTNO)
);

导出数据到mysql

sqoop export \
--connect jdbc:mysql://localhost:3306/sqoop \
--username root --password P@ssw0rd \
--table EMP_DEMO \
--export-dir /user/hadoop/EMP \
-m

导出指定的列(–columns)

sqoop export \
--connect jdbc:mysql://localhost:3306/sqoop \
--username root --password P@ssw0rd \
--table EMP_DEMO \
--columns "EMPNO,ENAME,JOB,SAL,COMM" \
--export-dir /user/hadoop/EMP_COLUMN \
-m

导出数据时设置字段与字段、行与行之间的分隔符

hdfs中/user/hadoop下EMP_SPLIT文件中的数据是我们前面通过mysql导入的,使用了分隔符,所以在导出时也需要指定分隔符,否则导出不成功。EMP_SPLIT文件内容如下

sqoop export \
--connect jdbc:mysql://localhost:3306/sqoop \
--username root --password P@ssw0rd \
--table EMP_DEMO \
--fields-terminated-by '\t' \
--lines-terminated-by '\n' \
--export-dir /user/hadoop/EMP_SPLIT \
-m

Hive 导出数据到 MySQL

实现需求:将hive 表 emp_import 中的数据导出到 Mysql 表 EMP_DEMO

hive 表 emp_import对应hdfs路径:/user/hive/warehouse/db_test.db/emp_import

mysql 中 EMP_DEMO 表结构如下

注意:mysql中日期为date类型,hive中对应的字段为字符串类型,其存储格式必须为:yyyy-mm-dd

导出时指定null字段的填充符,如果不指定会报一个异常NumberFormatException 
–input-null-string:如果没有这个选项,那么在字符串类型列中,字符串”null”会被转换成空字符串,所以最好写上这个,指定为’\N’ 
–input-null-non-string:如果没有这个选项,那么在非字符串类型的列中,空串和”null”都会被看作是null

sqoop export \
--connect jdbc:mysql://localhost:3306/sqoop \
--username root --password P@ssw0rd \
--table EMP_DEMO \
--export-dir /user/hive/warehouse/db_test.db/emp_import \
--input-fields-terminated-by '\001' \
--input-null-string '\\N' \
--input-null-non-string '\\N' \
-m

sqoop导出数据的更多相关文章

  1. 1.131.15 Sqoop导出数据Export使用

    一.export 1.export概述 export工具将一组文件从HDFS导入到RDBMS.目标表必须已经存在于数据库中.根据用户指定的分隔符读取输入文件并将其解析为一组记录, 只有map: [ro ...

  2. sqoop导出数据|Hive|HDFS和脚本编写

    导出数据 在Sqoop中,“导出”概念指:从大数据集群(HDFS,HIVE,HBASE)向非大数据集群(RDBMS)中传输数据,叫做:导出,即使用export关键字. HIVE/HDFS到RDBMS ...

  3. 大数据学习——sqoop导出数据

    把数据从hadoop导出到关系型数据库 将数据从HDFS导出到RDBMS数据库 导出前,目标表必须存在于目标数据库中. u  默认操作是从将文件中的数据使用INSERT语句插入到表中 u  更新模式下 ...

  4. 大数据学习之路又之从小白到用sqoop导出数据

    写这篇文章的目的是总结自己学习大数据的经验,以为自己走了很多弯路,从迷茫到清晰,真的花费了很多时间,希望这篇文章能帮助到后面学习的人. 一.配置思路 安装linux虚拟机--->创建三台虚拟机- ...

  5. 利用sqoop将hive数据导入导出数据到mysql

    一.导入导出数据库常用命令语句 1)列出mysql数据库中的所有数据库命令  #  sqoop list-databases --connect jdbc:mysql://localhost:3306 ...

  6. Sqooop- 使用Sqoop进行数据的导入导出

    Sqoop是Apache旗下的一个开源框架,专门用来做数据的导入和导出. 官网:https://sqoop.apache.org/ Sqoop的安装非常简单,只需要把下载下来的tar包解压设置两个环境 ...

  7. sqoop与PG库导入导出数据

    导入数据到Hive sqoop import --connect jdbc:postgresql://172.66.6.666/radar5g4h --username postgres --pass ...

  8. sqoop与hbase导入导出数据

    环境:sqoop1.4.6+hadoop2.6+hbase1.1+mysql5.7 说明: 1.文中的导入导出的表结构借鉴了网上的某篇博客 2.mysql导入hbase可以直接通过sqoop进行 3. ...

  9. 第3节 sqoop:6、sqoop的数据增量导入和数据导出

    增量导入 在实际工作当中,数据的导入,很多时候都是只需要导入增量数据即可,并不需要将表中的数据全部导入到hive或者hdfs当中去,肯定会出现重复的数据的状况,所以我们一般都是选用一些字段进行增量的导 ...

随机推荐

  1. Luogu 3911 最小公倍数之和

    感觉自己被早上的名校协作体和下午的数学题虐哭了,每天为自己的菜发愁…… 发现$a_{i}$很小,开一个桶记一下每个数 出现的个数,设$c_{i} = \sum_{j = 1}^{n}(a_{j} == ...

  2. Swing窗口Linux下不支持最大化问题

    Swing窗口Linux下不支持最大化问题 摘自:https://www.linuxidc.com/Linux/2009-06/20519.htm [日期:2009-06-17] 来源:www.qua ...

  3. HUST高级软件工程--测试管理工具实践--Day2

    测试管理工具实践--Day2 今天完成任务情况: 小靳 今天主要探索如何安装jira.在官网下载了最新版Windows64位jira,然后按照网上教程走,设置好端口号.在安装之前自以为这款软件在安装的 ...

  4. KMS激活工具

    工具介绍 KMS_VL_ALL,国外MDL论坛的一款KMS激活工具,可自动识别需要激活的Windows以及Office的VL版本,无需联网即可全自动检测激活,支持创建自动续期计划,相比于国外的同类工具 ...

  5. PyTorch入门教程

    https://www.zhihu.com/question/55720139 Deep Learning with PyTorch: A 60 Minute Blitz Author: Soumit ...

  6. PAT甲 1095 解码PAT准考证/1153 Decode Registration Card of PAT(优化技巧)

    1095 解码PAT准考证/1153 Decode Registration Card of PAT(25 分) PAT 准考证号由 4 部分组成: 第 1 位是级别,即 T 代表顶级:A 代表甲级: ...

  7. jQuery 插件开发——GridData(表格)

    导读:我个人认为做开发最幸福的事之一就是设计一套属于自己的控件,老早之前就想去做这样的事情,一直碍于事件的冲突和个人的想法,最终没有定论,最近难得抽出一些空隙,去完成这件事情.其实自定义控件并不是难事 ...

  8. xml文件绑定chenckbox选择框

    //xml文件如下: <?xml version="1.0" encoding="utf-8" ?> <CallReson> <! ...

  9. webbrowser内容滚动(javascript内容无缝滚动)

    一 使用webbrowser现有方法 引用:https://blog.csdn.net/xiaokailele/article/details/48392673 public partial clas ...

  10. 双击获取GridView控件行信息

    有网友要求在GridView控件上,不管是单击(onclick)还是双击(ondblclick),想获取所击行的信息.技术难度是为GridView的行注册单击或是双击事件.看例子吧:在数据库中创建数据 ...