oozie开发注意事项

时间:2023-03-10 05:11:12
oozie开发注意事项

ooziejob执行后

1. job.properties、coordinatior.xml中设置的值都是不可变的,除非将job kill掉,然后重新调度。

oozie job -kill 0000091-180116183039102-oozie-hado-C  
oozie job -config job.properties -run

2. workflow.xml、script.q等文件可以通过rerun来重新刷新配置

所以在开发时,尽量将公共变量放到coordinator.xml,job.properties中,可能变化的变量和值放到workflow.xml中,例如服务器ip、用户账号等

oozie job -rerun --oozie-hado-C -refresh -action -

3. 通过sqoop导入时,暂时只能导入hdfs文件,不可以直接导入hive表中,总是出现下面错误,还需要进一步测试。

Encountered IOException running import job: java.io.IOException: Cannot run program "hive": java.io.IOException: error=2, No such file or directory

变通的解决方法:

带有partition的分区表,在导入hdfs后,通过执行hive添加分区即可解决,在oozie调度中分sqoop action和hive action两个步骤来完成。

    <!-- hive partition -->
<action name="hive-node">
<hive xmlns="uri:oozie:hive-action:0.2">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<job-xml>${hive_site}</job-xml>
<script>script.q</script>
<param>hive_table=dw_stg.${job_name}</param>
<param>partition_dt=${params_dt}</param>
</hive>
<ok to="end"/>
<error to="fail"/>
</action>
# script.q
alter table ${hive_table} add if not exists partition (dt='${partition_dt}');