CDH 安装 sqoop

CDH 安装 sqoop

技术背景

需要将 mssqlserver 的数据批量导入hive,与hive中加载的用户行为数据进行联合分析,因为数据量较大,不再采用之前的python读取文本进行清洗,然后使用 LOAD DATA LOCAL INPATH 的方式。
正好使用的CDH集群可以简单添加sqoop服务,于是尝试了下。

首先决定使用sqoop2(1.9.5版本),CLI界面很友好,但是并不是那么便捷,尝试了几次都没有成功,果断放弃转战sqoop1.4.6。

一样在CDH管理界面首先进行添加scoop服务,很快就完成了,然后开始步入正题。

安装位置

因为要从 mssqlserver 导入数据,所以要先找到scoop的安装位置,用了几次 which就找到了
HOME 位于 /opt/cloudera/parcels/CDH-5.12.1-1.cdh5.12.1.p0.3/lib/sqoop/
然后去官网下载 mssqlserver的 JDBC驱动
解压后放到 sqoop home 的 lib 文件夹下

使用脚本

  1. 测试连接
sqoop list-databases --connect jdbc:mysql://192.168.2.111:3306 --username root --password 123456

sqoop list-databases --connect jdbc:sqlserver://192.168.2.212:6060 --username sa --password 123456
  1. 将sqlserver数据导入HDFS
sqoop import --connect "jdbc:sqlserver://192.168.2.212:6060;database=warehouse" --table fact_userRoomStay --username sa --password 123456  --target-dir /user/hadoop/fact_userRoomStay --split-by id
  1. 将sqlserver数据导入HIVE
# 使用 --null-string '\\N' --null-non-string '\\N' 将sqlserver中的null在hive继续保存为null

sqoop import --connect "jdbc:sqlserver://192.168.2.212:6060;database=warehouse" --table fact_userRoomStay --username sa --password 123456  --split-by id --hive-import -m 3 \
--target-dir /user/hive/warehouse/fact_userRoomStay -hive-table fact_userRoomStay \
--hive-overwrite --null-string '\\N' --null-non-string '\\N'

猜你喜欢

转载自blog.csdn.net/frone/article/details/78365852