Sqoop的安装很简单,直接解压配置相关hdfs信息,另外一个重要的是与关系库的驱动包,如果是oracle则要ojdbc14.jar,classes12.jar包,如果是mysql则要mysql-connector-java-5.1.32-bin.jar,为了方便大家下载可以直接到下面地址下载后,放到sqoop安装的lib目录下。
百度网盘:https://pan.baidu.com/s/17bbONXJagoOVoxYNOpdAhA
提取码:rbel
另一个要注意的是,因为我们是用的虚似机,网络用的是NAT方式,我们的关系库是放在缩主机上,所以需要从虚似机ping通我们的缩主机,需要在VM的虚似网络编辑器里设置下NAT设置,设置下网关IP,如下图:
1:导入(RDB到HDFS):
sqoop import --connect "jdbc:oracle:thin:@192.168.1.102:1521:orcl" --username "blt" --password "orcl" --query "select * from t_abc_dept WHERE \$CONDITIONS and 1=1" --null-string '\\N' --null-non-string '\\N' --target-dir /dm/fin_abc/bsl/t_abc_dept --fields-terminated-by '\001' --hive-drop-import-delims --split-by dept_id -m 8 --delete-target-dir
参数说明:
--connect:关系库连接串
--username:关系库用户名
--password:关系库密码
--query:查询脚本,我们从关系库里取到的数据
\$CONDITIONS:此参数必须跟在query参数后
--null-string:字符类型的字段为NULL时处理的字符
--null-non-string:非字符类型的字段为NULL时处理的字符
--target-dir:存放数据的目录
--fields-terminated-by:字段的分隔符
--split-by:并行导入的分隔的字段
-m:并行数
--delete-target-dir:导入前删除目标目录
2:导出(HDFS到RDB)
sqoop export --connect "jdbc:oracle:thin:@192.168.1.102:1521:orcl" --username "blt" --password "orcl" --table t_abc_dept --columns 'dept_id,dept_code,dept_name,load_tm' --export-dir /dm/fin_abc/bsl/t_abc_dept --fields-terminated-by '\001' --input-null-string '\\N' --input-null-non-string '\\N' -m 8
参数说明:
--table:关系库表名
--columns:关系库的列名
--export-dir:导出源头表的数据目录
一般在企业为了提升开发效率,我们在平台上做了界面封装,用户只需要一步步配置,后台生成对应的脚本,设置好调度后每天执行生成的脚本。不需要开发人员对每个一同步都来写脚本了,也防止的错误的脚本执行。
更多技术文章请关注公众号BLT328(长按后点识别图中二维码):