博主是一个不是很聪明的码农。完美主义者,强迫症中期。这里会记录一些回忆和点滴,以博为镜。
武器库:
本篇不是oozie的教程,官网的文档虽然比较粗糙,但已经非常全面,可直接参考,下文总结下oozie使用中遇到的一些问题(持续更新中)。
oozie版本:3.3.2
###时区问题
oozie默认使用UTC时区,而服务器上可能是CST,建议统一使用GMT+0800。
|
|
oozie info --timezones
来查看支持的时区2014-01-24T13:40Z
的格式,要使用对应的形如2014-01-24T13:40+0800
的格式###Hive相关
oozie会启动一个MR job来启动hive client,需要在你的oozie app里自行指定hive的配置,以及提供相关lib,因为不确定是哪一台节点,所以需要给每一台计算节点都分配hive metastore的权限。
使用
|
|
####hive的lib
oozie.use.system.libpath=true
oozie.libpath=/path/to/lib
指定lib路径####metastore
####hive action的错误如何分析?
hive action执行失败,怎么分析原因呢?在oozie的web console中,打开因出错被KILL的action节点,打开Console URL
即可以看到对应的MR jobdetails页面,一般错误信息在Map的日志里,打开你就会发现,日志的内容涵盖了hive job的定义、hql以及控制台输出,足够分析错误原因了。
###前一天
由于我司大多数job是计算前一天的数据,故需在调度时动态计算前一天的日期字符串,使用shell action结合 A=B
,这样就可以使用${wf:actionData('A')['B']}
提取所需的字符串了。
|
|
其中cmd=/bin/date
###权限
遇到HDFS相关的权限问题,请通过修改oozie app提交用户或修改HDFS文件权限的方式自行解决。