sqoop 使用

安装配置好之后,就可以使用啦。注意,需要自己将jdbc的jar包放到sqoop的lib目录下。

1.将数据从sqlserver导出到hdfs:

 sqoop import --connect 'jdbc:sqlserver://192.168.68.90:1433;username=sa;password=sa;database=Feedback' --table user_info  --split-by 'id'   --fields-terminated-by ‘	’  --warehouse-dir /Feedback

导出的结果存在了hdfs的:

 /Feedback/user_info/ part-m-00000

 /Feedback/user_info/ part-m-00001

 /Feedback/user_info/ part-m-00002

 /Feedback/user_info/ part-m-00003

等文件中,文件的内容为:

1 abc
2 sdfasdf
3 zhangsan
4 lisi

其实 是不可见字符,为了描述出来,我就将它写了出来,在浏览hdfs的文件的时候,是看不到它的。

这个脚本中带了一个参数:

 --split-by 'id'

这个'id'是表的主键,如果该表没有主键,则不能使用并行导入,需要指定并行导入的任务数为1:

  --m 1

官方是这么解释的:

-m,--num-mappers <n>     Use n map tasks to import in parallel

导入的脚本就得这么写了:

sqoop import --connect 'jdbc:sqlserver://192.168.68.90:1433;username=sa;password=sa;database=Feedback' --table user_info  --fields-terminated-by '	' -m 1  --warehouse-dir /Feedback

这样的job的map数只有1.所以输出文件也就只有一个了。

原文地址:https://www.cnblogs.com/sixiweb/p/3372448.html