关于oozie启动程序作业的说明

rseugnpd  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(332)

我需要一些关于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 行动。但是,我仍然看到启动程序作业占用了启动程序队列中的大量内存。
这是因为启动程序作业缓存来自配置单元的日志输出吗?
在执行shell操作时,是否有必要给启动程序作业足够的内存?
如果我显式限制启动程序作业内存会发生什么?
如果有人能概述oozie launcher工作的职责,我将不胜感激。
谢谢!

xytpbqjk

xytpbqjk1#

启动程序作业是按每个工作流应用程序(具有多个操作)启动的,还是按工作流应用程序中的每个操作启动的?
启动程序作业是根据工作流中的每个操作启动的。
我强烈建议您使用相应的oozie操作、hive、pig等,因为它允许oozie以更好的方式处理您的工作流和操作。

相关问题