参考这篇 文章官方文档

注意使用之前需要切换成相应的用户。

执行以下命令

cd <sqoop dir>
cp conf/sqoop-env-template.sh conf/sqoop-env.sh
# 依次配置 `sqoop-evn.sh` 下的内容。配置项为各个组件的根目录。
configure-sqoop

如果执行 configure-sqoop 报以下错误.

Warning: /opt/sqoop-1.4.7.bin__hadoop-2.6.0/../hcatalog does not exist! HCatalog jobs will fail.
Please set $HCAT_HOME to the root of your HCatalog installation.
Warning: /opt/sqoop-1.4.7.bin__hadoop-2.6.0/../accumulo does not exist! Accumulo imports will fail.
Please set $ACCUMULO_HOME to the root of your Accumulo installation.
错误: 找不到或无法加载主类 org.apache.hadoop.hbase.util.GetJavaProperty

修改configure-sqoop 文件. (由于默认下载的 bin 包中是依赖了 HCatlog 这个组件进行对数据表的管理,ACCUMULO 进行 key-value 处理, 这里我们不需要,就直接将相关的使用配置注释掉 )

配置完成之后执行以下命令验证是否能够连接mysql

sqoop list-databases -connect jdbc:mysql://localhost:3306 -username root -password root1234

执行以下命令测试从数据库中导入数据到 hdfs上

sqoop import --connect jdbc:mysql://192.168.0.201:3306/db -username {username} -password {passwd} --table device_base --as-parquetfile --target-dir hdfs://master:9820/warehouse/original/device_base --compress --compression-codec gzip

执行过程中输出有会有些提示,可以关注一下。

在hue 中使用 sqoop

Hue中使用的sqoop 是 oozie中自带的 sqoop, 所以我们可以不用自行安装, 注意在oozie自带的share lib 中会缺失 很多jar包,这里我们去 下载一个 sqoop 的bin包。 然后将里边lib包里边的jar包都上传到 hdfs 上

hdfs dfs -put $SQOOP_HOME/lib/* /user/hadoop/share/lib/lib_20181129144613/sqoop
oozie admin -sharelibupdate # 刷新 lib包 列表

QA

sqoop 报 Could not load org.apache.hadoop.hive.conf.HiveConf. Make sure HIVE_CONF_DIR is set correctly.