尚硅谷大数据技术之Sqoop
5.2.14 命令&参数:merge
将HDFS中不同目录下面的数据合并在一起并放入指定目录中
数据环境:
new_staff
1 AAA male
2 BBB male
3 CCC male
4 DDD male
old_staff
1 AAA female
2 CCC female
3 BBB female
6 DDD female
尖叫提示:上边数据的列之间的分隔符应该为\t,行与行之间的分割符为\n,如果直接复制,请检查之。
命令:
如:
创建JavaBean:
$ bin/sqoop codegen
--connect jdbc:mysql://hadoop102:3306/company
--username root
--password 000000
--table staff
--bindir /home/admin/Desktop/staff
--class-name Staff
--fields-terminated-by "\t"
开始合并:
$ bin/sqoop merge
--new-data /test/new/
--onto /test/old/
--target-dir /test/merged
--jar-file /home/admin/Desktop/staff/Staff.jar
--class-name Staff
--merge-key id
结果:
1 AAA MALE
2 BBB MALE
3 CCC MALE
4 DDD MALE
6 DDD FEMALE
参数:
序号 参数 说明
1 --new-data <path> HDFS 待合并的数据目录,合并后在新的数据集中保留
2 --onto <path> HDFS合并后,重复的部分在新的数据集中被覆盖
3 --merge-key <col> 合并键,一般是主键ID
4 --jar-file <file> 合并时引入的jar包,该jar包是通过Codegen工具生成的jar包
5 --class-name <class> 对应的表名或对象名,该class类是包含在jar包中的
6 --target-dir <path> 合并后的数据在HDFS里存放的目录
5.2.15 命令&参数:metastore
记录了Sqoop job的元数据信息,如果不启动该服务,那么默认job元数据的存储目录为~/.sqoop,可在sqoop-site.xml中修改。
命令:
如:启动sqoop的metastore服务
$ bin/sqoop metastore
参数:
序号 参数 说明
1 --shutdown 关闭metastore
本教程由尚硅谷教育大数据研究院出品,如需转载请注明来源,欢迎大家关注尚硅谷公众号(atguigu)了解更多。