Hue + Oozie + Sqoop 使用

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

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

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-mbyarn.scheduler.minimum-allocation-mbyarn.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 中
原因和解决:原因是没有配置,需要配置节点,在节点里配置hive-site.xml在hdfs上的位置(从Hive安装位置的配置文件里找到hive-site.xml,copy 一份上传的 hdfs 上)

你可能感兴趣的:(数据仓库与BI)