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

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

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的编辑器页面

5984e416ad9df9829c50ce8f1f2896d5.png
0ace9a2dcf99b13bf1ef7c9ea4fe69ea.png

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

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

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

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

cf98e3aca3dcf7759068baacc32989d6.png

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

b3345c54234761ca646f6f5e2839f448.png

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

750f587bb9f939cc496b9df9654e46a1.png

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

3

解决方式一

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

be5c938a9ceea3fedac7166888e5fbde.png

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

ea4ab4164ec205f2c4a919b3fc9f3e46.png

选择MySQL驱动文件

9b4d3d51aea17639f89b2d6612a82a69.png

添加成功

1a93dd9db0fc84c7d9c234129f7dffe2.png

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

d0a5dd81a8405c358de18df6d5e30298.png

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

c7439ad655178055787163e7429f1735.png

4

解决方式二

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

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

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

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
f78fc0c4e16c967f0cda8b867e71c53f.png

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

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

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

49246664e2bf2884abdbe679344370ba.png
b688b13595e1a833df877c3cc2175473.png

5

总结

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

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

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

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

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

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

2d8f430229b7e1fd92708aa30542190a.gif

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值