sqoop数据迁移工具
2020-06-09 09:45:12 0 举报
AI智能生成
sqoop 数据迁移工具
作者其他创作
大纲/内容
Hadoop和关系数据库之间传输数据
sqoop的工作机制<br>
将导入和导出的命令翻译成mapreduce程序实现
在翻译出的mapreduce中主要是对inputformat和outputformat进行定制
导入
导入数据库表数据到HDFS
查看帮助文档:sqoop list-databases --help
列举出所有的数据库:sqoop list-databases --connect jdbc:mysql://node1:3306/ --username root --password 123456
sqoop import --connect jdbc:mysql://node1:3306/userdb --username root --password 123456 --table emp --m 1
--target-dir==来指定导出目的地
--delete-target-dir==来判断导出目录是否存在,如果存在就删掉
--fields-terminated-by 指定导入后数据字段的分隔符
导入关系表到Hive中
将hive的一个叫做==hive-exec-1.2.2.jar==包拷贝到sqoop的lib目录下
要先创建hive表 : sqoop import --connect jdbc:mysql://node1:3306/userdb --username root --password 123456 --table emp --fields-terminated-by '\001' --hive-import --hive-table sqooptohive.emp_hive --hive-overwrite --m 1
自动创建表: sqoop import --connect jdbc:mysql://node1:3306/userdb --username root --password 123456 --hive-database sqooptohive --hive-table emp1 --table emp --hive-import -m 1 ;
导入表数据子集
sqoop import \<br><br>--connect jdbc:mysql://node1:3306/userdb \<br><br>--username root --password 123456 --table emp \<br><br>--target-dir /sqoop/emp_where -m 1 --delete-target-dir \<br><br>--where "dept = 'TP'"
sql语句查找导入hdfs<br>
sqoop import \<br><br>--connect jdbc:mysql://node1:3306/userdb \<br><br>--username root --password 123456 \<br><br>--target-dir /sqoop/emp_sql -m 1 --delete-target-dir \<br><br>--query 'select * from emp where salary >30000 and $CONDITIONS'
增量导入
基于递增列的增量数据导入(Append方式)
sqoop import \<br><br>--connect jdbc:mysql://node1:3306/userdb \<br><br>--username root \<br><br>--password 123456 \<br><br>--table emp \<br><br><font color="#c41230">--incremental append \<br><br>--check-column id \<br><br>--last-value 1202 \</font><br><br>-m 1 \<br><br>--target-dir /sqoop/increment1
这里不能加上 --delete-target-dir 参数
基于时间列的增量数据导入(LastModified方式)<br>
sqoop import \<br><br>--connect jdbc:mysql://node1:3306/userdb \<br><br>--username root \<br><br>--password 123456 \<br><br>--table user \<br><br>--target-dir /sqoop/incement2 \<br><br>--incremental lastmodified \<br><br>--check-column createTime \<br><br>--last-value '2019-09-01 10:16:00' \<br><br>--m 1
导出
hdfs文件导出到mysql表中
创建一张mysql表<br>
sqoop export \<br><br>--connect jdbc:mysql://node1:3306/userdb \<br><br>--username root --password 123456 \<br><br>--table fromhdfs \<br><br>--input-fields-terminated-by " " \<br><br>--export-dir /user/hive/warehouse/hive_source
Sqoop作业
<font color="#c41230">在创建job时,==命令"-- import" 中间有个空格</font>
sqoop job \<br><br>--create myjob \<br><br><font color="#c41230">-- import</font> \<br><br>--connect jdbc:mysql://node1:3306/userdb \<br><br>--username root \<br><br>--password 123456 \<br><br>--table emp \<br><br>--target-dir /sqoop/myjob \<br><br>--delete-target-dir \<br><br>--m 1
0 条评论
下一页
为你推荐
查看更多