您的位置:首页 > 产品设计 > UI/UE

Hue + Oozie + Sqoop 使用

2018-01-26 10:18 417 查看
有个刚接触的人不知道的是,Oozie 自带 sqoop、hive 等常用组件,比如执行sqoop脚本命令时,并不是你主机里或者CDH里的的sqoop,而是 HDFS 下 Oozie 里的 sqoop 在起作用,这也是为什么 总是报
Could not load db driver class
的原因了,因为根本不是同一个sqoop。

还有 Hue 里的 Sqoop 1,你在这里写的脚本,执行时实际也是通过 Oozie 执行的。这也是为什么执行个简单的
sqoop version
都会打印出八百多行的 log,没错的。仔细看日志,实际那都是 Oozie 输出的日志。



Could not load db driver class


解决方法:

1、上传 Driver 到 hdfs 的目录
/user/oozie/share/lib/sqoop
下,如果是Cloudera and HDP,则是
/user/oozie/share/lib/lib_${timestamp}/sqoop


oozie fails with Could not load db driver class: oracle.jdbc.OracleDriver

2、重启 oozie service,让其生效,然后再运行就 OK 了

问题2: Heart Beat 死锁问题

解决办法:修改下
yarn.nodemanager.resource.memory-mb
yarn.scheduler.minimum-allocation-mb
yarn.scheduler.maximum-allocation-mb
这三个的设置就可以了。

关系是:memory-mb >= 2 * maximum-allocation-mb; 即:memory-mb 要大于等于 2倍的 maximum-allocation-mb 。这只是
-m = 1
的情况,要是
-m = n
,那得
memory-mb >= 2 * n * maximum-allocation-mb


详细描述参考:Oozie 调度 Sqoop 从 Mysql 中导数据到 Hive 遇到的坑Oozie搭建常见问题

问题3: Hue 中的 Oozie 使用空格作为参数分割,如果要使用空格,请合理使用双引号和单引号,特别是
--query
后边的语句要注意空格的使用,如果出现不能识别的参数这种异常了,请检查 Oozie 生成的 workflow.xml 里的内容和格式,Hue 上的界面上写的参数都是为了生成 xml,最终运行都是 xml 。

问题4:oozie 调度 sqoop,
--hive-import
不起作用,可以正常导入到 HDFS,但是并没有自动导入到 Hive 中

原因和解决:原因是没有配置
<job-xml>
,需要配置
<job-xml>
节点,在节点里配置
hive-site.xml
在hdfs上的位置(从Hive安装位置的配置文件里找到
hive-site.xml
,copy 一份上传的 hdfs 上)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hue oozie sqoop