0
点赞
收藏
分享

微信扫一扫

0498-Hue Sqoop1的编辑器中执行Sqoop作业失败问题分析

青鸾惊鸿 2022-09-08 阅读 102

温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。


Fayson的github:

​​https://github.com/fayson/cdhproject​​


提示:代码块部分可以左右滑动查看噢


1

文档编写目的


Hue做为Hadoop平台的一款UI工具,提供了丰富的功能。可以通过Hue访问Hadoop的文件系统、Hive、Impala、HBase、Solr、Sqoop等。集成了Oozie实现界面化工作流调度流程,同样也可以集成第三方APP及SQL等。本篇文章Fayson主要介绍在使用Hue提供的Sqoop1编辑功能执行Sqoop作业异常问题分析。


  • 测试环境

1.RedHat7.2

2.CM和CDH版本为5.15.0


2

Hue Sqoop1界面运行Sqoop作业


1.登录Hue,进入Sqoop1的编辑器页面


0498-Hue Sqoop1的编辑器中执行Sqoop作业失败问题分析_mysql

0498-Hue Sqoop1的编辑器中执行Sqoop作业失败问题分析_mysql_02


2.在命令编辑界面运行一个简单的Sqoop脚本进行测试


list-databases --connect jdbc:mysql://cdh2.fayson.com:3306 --username root --password 123456


0498-Hue Sqoop1的编辑器中执行Sqoop作业失败问题分析_mysql_03


该Sqoop脚本主要是用于访问MySQL数据库,并列出MySQL下所有的数据库,从上述运行结果可以看到失败了。


3.点击右上角的“Jobs”菜单,查看作业运行日志


0498-Hue Sqoop1的编辑器中执行Sqoop作业失败问题分析_hadoop_04


4.点击刚最新运行的作业,进入作业运行详细界面


0498-Hue Sqoop1的编辑器中执行Sqoop作业失败问题分析_mysql_05


在作业的Logs中可以看到如下日志“Could not load db driver class: com.mysql.jdbc.Driver”


0498-Hue Sqoop1的编辑器中执行Sqoop作业失败问题分析_mysql_06


上述日志可以清晰的可到主要是由于无法加载MySQL驱动类导致的。


3

解决方式一


1.在命令编辑界面配置Sqoop依赖


0498-Hue Sqoop1的编辑器中执行Sqoop作业失败问题分析_hadoop_07


2.添加MySQL驱动包依赖,该依赖是存储在HDFS上的


0498-Hue Sqoop1的编辑器中执行Sqoop作业失败问题分析_mysql_08


选择MySQL驱动文件


0498-Hue Sqoop1的编辑器中执行Sqoop作业失败问题分析_mysql_09


添加成功


0498-Hue Sqoop1的编辑器中执行Sqoop作业失败问题分析_hadoop_10


3.再次运行Sqoop命令,显示命令执行成功


0498-Hue Sqoop1的编辑器中执行Sqoop作业失败问题分析_mysql_11


成功显示了MySQL下的所有库。


0498-Hue Sqoop1的编辑器中执行Sqoop作业失败问题分析_mysql_12


4

解决方式二


由于在Hue中运行Sqoop命令,最终是通过Oozie来进行作业的调度,所以这里我们可以通过将MySQL驱动包放在Oozie的共享库中。


1.使用如下命令找到最新的Oozie共享库在HDFS上地址


[root@cdh2 java]# oozie admin -oozie http://cdh1.fayson.com:11000/oozie -sharelibupdate


0498-Hue Sqoop1的编辑器中执行Sqoop作业失败问题分析_mysql_13


2.将MySQL的JDBC驱动包put到/user/oozie/share/lib/ lib_20181106094514/oozie的目录下


[root@cdh2 java]# hadoop fs -put mysql-connector-java-5.1.34.jar hdfs://nameservice1/user/oozie/share/lib/lib_20181106094514/sqoop


0498-Hue Sqoop1的编辑器中执行Sqoop作业失败问题分析_mysql_14


3.再次运行命令更新下Oozie的共享库


[root@cdh2 java]# oozie admin -oozie http://cdh1.fayson.com:11000/oozie -sharelibupdate 


0498-Hue Sqoop1的编辑器中执行Sqoop作业失败问题分析_sqoop_15


4.在Hue上运行Sqoop命令测试


0498-Hue Sqoop1的编辑器中执行Sqoop作业失败问题分析_hadoop_16

0498-Hue Sqoop1的编辑器中执行Sqoop作业失败问题分析_hadoop_17


5

总结


1.在Hue中通过Sqoop1的编辑界面执行Sqoop作业,最终还是通过Oozie执行的,默认Oozie的依赖中是没有MySQL的驱动,所以需要指定MySQL的驱动。

2.Hue上执行Sqoop是基于Oozie,那同样可以将MySQL的JDBC驱动包上传到Oozie的共享库来解决该问题,需要注意的是当CDH版本升级后,需要重新更新Oozie的共享库。



提示:代码块部分可以左右滑动查看噢


为天地立心,为生民立命,为往圣继绝学,为万世开太平。

温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。


推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

0498-Hue Sqoop1的编辑器中执行Sqoop作业失败问题分析_hadoop_18


举报

相关推荐

0 条评论