sqoop数据迁移工具
2020-06-09 09:45:12 0 举报
AI智能生成
登录查看完整内容
为你推荐
查看更多
sqoop 数据迁移工具
作者其他创作
大纲/内容
sqoop 数据迁移工具
Hadoop和关系数据库之间传输数据
sqoop的工作机制
将导入和导出的命令翻译成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 \\--connect jdbc:mysql://node1:3306/userdb \\--username root --password 123456 --table emp \\--target-dir /sqoop/emp_where -m 1 --delete-target-dir \\--where \"dept = 'TP'\"
sql语句查找导入hdfs
sqoop import \\--connect jdbc:mysql://node1:3306/userdb \\--username root --password 123456 \\--target-dir /sqoop/emp_sql -m 1 --delete-target-dir \\--query 'select * from emp where salary >30000 and $CONDITIONS'
增量导入
基于递增列的增量数据导入(Append方式)
sqoop import \\--connect jdbc:mysql://node1:3306/userdb \\--username root \\--password 123456 \\--table emp \\--incremental append \\--check-column id \\--last-value 1202 \\-m 1 \\--target-dir /sqoop/increment1
这里不能加上 --delete-target-dir 参数
基于时间列的增量数据导入(LastModified方式)
sqoop import \\--connect jdbc:mysql://node1:3306/userdb \\--username root \\--password 123456 \\--table user \\--target-dir /sqoop/incement2 \\--incremental lastmodified \\--check-column createTime \\--last-value '2019-09-01 10:16:00' \\--m 1
导出
hdfs文件导出到mysql表中
创建一张mysql表
sqoop export \\--connect jdbc:mysql://node1:3306/userdb \\--username root --password 123456 \\--table fromhdfs \\--input-fields-terminated-by \" \" \\--export-dir /user/hive/warehouse/hive_source
Sqoop作业
在创建job时,==命令\"-- import\" 中间有个空格
sqoop job \\--create myjob \\-- import \\--connect jdbc:mysql://node1:3306/userdb \\--username root \\--password 123456 \\--table emp \\--target-dir /sqoop/myjob \\--delete-target-dir \\--m 1
0 条评论
回复 删除
下一页