我需要对oozie发射器工作做一些澄清。
1)是否在工作流应用程序中为每个工作流程应用程序启动了启动器作业(有多个操作)或每个操作?
2)使用案例:我的工作流程包含多个shell
操作(内部执行spark,hive,pig操作等)。使用shell
的原因是因为可以使用自定义逻辑计算分区日期等其他参数,并使用.q文件传递给配置单元
Shell文件示例:
hive -hiveconf DATABASE_NAME=$1 -hiveconf MASTER_TABLE_NAME=$2 -hiveconf SOURCE_TABLE_NAME=$3 -hiveconf -f $4
示例.q文件:
use ${hiveconf:DATABASE_NAME};
insert overwrite into table ${hiveconf:MASTER_TABLE_NAME} select * from ${hiveconf:SOURCE_TABLE_NAME};
我将oozie.launcher.mapreduce.job.queuename
和mapreduce.job.queuename
设置为不同的队列,以避免单个队列中任务槽的饥饿。我还在相应的<capture-output></capture-output>
操作中省略了shell
。但是,我仍然看到启动器作业占用了启动器队列的大量内存。
如果有人能够概述oozie发射器工作的职责,我将非常感激。
谢谢!
答案 0 :(得分:0)
是否在工作流应用程序中启动了每个工作流应用程序启动的启动器作业(具有多个操作)或每个操作?
启动器作业将在工作流程中按操作启动。
我强烈建议您使用各自的oozie动作,Hive,Pig等。因为它允许oozie以更好的方式处理您的工作流程和操作。