大数据之Hue中运行Sqoop常见的问题分析

Hue提供执行Sqoop命令的功能。

使用方法

与在终端执行Sqoop命令不同,在Hue中执行Sqoop命令,应该直接使用Sqoop的一级子命令。Sqoop在终端和Hue执行的区别

在终端执行

sqoop import \

--connect jdbc:oracle:thin:@10.100.144.152:1521/ORACLE_DB \

--username mestest \

--password 123456 \

--table AUX_AUX_CSMS \

--hive-drop-import-delims \

--incremental lastmodified \

--check-column MODIFY_TIME \

--last-value '2023-10-10 13:00:00' \

--merge-key ID \

--target-dir /user/hive/warehouse/ods_ny_manufacture_mes.db/aux_aux_csms

在Hue中执行

sqoop import --connect jdbc:oracle:thin:@XXXX:1521:ORCL --username WMSUSER --password BFwms@0508 --table TB_WMS_CHECKBODY --m 1 --hive-import --hive-overwrite --hive-database ods_ny_supplychain_wms --hive-table TB_WMS_CHECKBODY --hive-drop-import-delims --delete-target-dir

修改sqoop命令

使用--password-file参数替换--password参数,新的sqoop命令如下:

sqoop-import \

--connect jdbc:mysql://mysql_server:3306/test \

--username username \

--password /user/bigdata/.password \

-m 6 \

--table user \

--columns id,name \

--delete-target-dir \

--target-dir /user/bigdata/sqoop_import_test/mysql/user

在Hue中执行Sqoop注意事项

1、直接使用一级子命令。例如:sqoop import => import,首位的sqoop要去掉,也不要使用sqoop-import。

2、不可换行。

3、参数以及参数值以空格分隔,测试发现多个空格不会影响解析。

问题与解决方法

无法找到JDBC驱动

错误信息

分析

错误信息很明显,无法加载oracle驱动。解决方法一般是在相应的lib下添加oracle的jdbc驱动包即可。

  • user/oozie/share/lib/lib_20240329094109/sqoop (路径)
  • 重启oozie

其他情报:

1、在终端执行Sqoop命令,只需要在 $SQOOP_HOME/lib 目录下增加jdbc驱动包,Sqoop在执行时就可以找到驱动。

2、在Hue中执行Sqoop是使用Oozie启动器执行的。判断依据如下:

YARN应用程序监控页面显示:

可以发现在Hue执行的Sqoop操作是Oozie启动器执行的,不止Sqoop,Spark也是通过Oozie启动器执行的,推测其他应用也是。

这样设计应该是便于Oozie工作流管理。

3、任务启动过程会加载一些lib。日志显示如下:

4、根据情报1,分别尝试了通过sqoop-import的 -files 和 -libjars 的参数指定了本地驱动包,问题没有得到解决。

综合以上信息,可以得出以下推测:(仅限于在Hue中执行Sqoop)

1、任务启动和Oozie有关。

2、任务启动会从HDFS中加载lib,并且不识别本地lib,至少Sqoop是如此。

3、仔细观察情报3,加载的lib和Oozie相关。

4、如果要添加驱动包,必然从HDFS中的lib入手。

至此,我突然想起了Oozie的共享库,再联系情报3,发现加载的lib就是Oozie共享库。

解决

1、登入Oozie服务所在的服务器,进入 /opt/cloudera/parcels/CDH/lib/oozie/oozie-sharelib-yarn/lib/sqoop 目录,将所需的jdbc驱动包放入。

2、更新Oozie共享库

3、再次尝试在Hue执行Sqoop,成功。

其他思考:

直接将jdbc驱动包放入HDFS上的Oozie共享库,不知是否可行。

执行成功之后的报错

Sqoop命令执行成功,但是日志输出错误:

这个错误在未解决jdbc驱动问题时就有,不过测试工作流之后,发现不会影响任务状态,暂且搁置。

命令在执行结束后无法自动停止

在Hue查询面板执行Sqoop命令成功后,启停按钮不会自动停止,现象如下:

确定任务确实执行成功,但是此处的按钮状态不会自动改变,原因未知,可手动点击关闭。目前没有发现坏的影响,暂且搁置。

相关推荐
@insist1239 小时前
信息安全工程师考点精讲:身份认证核心原理与分类体系(上篇)
大数据·网络·分类·信息安全工程师·软件水平考试
天辛大师9 小时前
AI助力旅游扩大化,五一旅游公园通游年票普惠研究
大数据·启发式算法·旅游
WordPress学习笔记10 小时前
镌刻中式美学的高端WordPress主题
大数据·人工智能·wordpress
数智化精益手记局11 小时前
拆解物料管理erp系统的核心功能,看物料管理erp系统如何解决库存积压与缺料难题
大数据·网络·人工智能·安全·信息可视化·精益工程
Elastic 中国社区官方博客12 小时前
使用 Observability Migration Platform 将 Datadog 和 Grafana 的仪表板与告警迁移到 Kibana
大数据·elasticsearch·搜索引擎·信息可视化·全文检索·grafana·datalog
jkyy201413 小时前
AI运动数字化:以技术重塑场景,健康有益赋能全域运动健康管理
大数据·人工智能·健康医疗
金融小师妹13 小时前
4月30日多因子共振节点:鲍威尔“收官效应”与权力结构重塑的预期重构
大数据·人工智能·重构·逻辑回归
2601_9499251813 小时前
AI Agent如何重构跨境物流的决策?
大数据·人工智能·重构·ai agent·geo优化·物流科技
xiaoduo AI13 小时前
客服机器人问题解决率怎么统计?Agent系统自动判断是否解决,比人工回访准?
大数据·人工智能·机器人
小五兄弟14 小时前
YouTube 肖像检测扩展背后:短剧出海版权保护的技术实现与实战策略
大数据·人工智能