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 ‘\t’ --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\tabc
2\tsdfasdf
3\tzhangsan
4\tlisi
其实\t是不可见字符,为了描述出来,我就将它写了出来,在浏览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 '\t' -m 1 --warehouse-dir /Feedback
这样的job的map数只有1.所以输出文件也就只有一个了。
////////////////////////////////
////////Sixi. Let it be.../////
//////////////////////////////