同时运行两个 Oozie 协调器应用程序时出现问题



我是Hadoop和oozie的新手。我试图运行两个具有以下详细信息的协调器实例:CoordinatorOne有一个工作流作业,其中包含单个操作(即 java 操作)。它以一定的频率运行 24/7。当我运行另一个协调器时,比如CoordinatorTwo(其中有一个工作流作业,其中包含单个猪操作),频率相同,开始时间与CoordinatorOne操作的具体时间一致,第二个协调器操作随机失败(即有时它们成功,有时它们失败)。我尝试检查作业的日志,但没有创建日志。当我在命令行上检查oozie操作ID的信息时,我发现了此错误:

main class [org.apache.oozie.action.hadoop.pigmain], exit code [2]

我想不通问题所在。如果以前有人遇到过此类问题,请告诉我。

此外,CoordinatorOne的输出作为输入馈送到CoordinatorTwoCoordinatorOne永远不会失败。问题出在CoordinatorTwo上,但是当第一个终止时它工作正常。

集群详情: 2 节点群集,具有 4 个 Map 和 2 个减少任务容量 - CentOS 虚拟机的每个 4GB 内存。 Hadoop 2.0.0-cdh4.3.0 Oozie 客户端构建版本:3.3.2-cdh4.3.0

PS:如果我错过了什么,请告诉我。非常感谢!

协调员一和二定义如下:

CoordinatorOne:
<coordinator-app xmlns="uri:oozie:coordinator:0.4"  frequency="${frequency}" start="${start}" end="${end}" timezone="UTC" name="CoordinatorOne">
<controls>
<timeout>3</timeout>
<concurrency>1</concurrency>
</controls>
<datasets>
<dataset name="OutputDataset" frequency="${frequency}" initial-instance="${start}" timezone="UTC">
<uri-template>${namenode}/user/somefolder/Output/Test/${YEAR}/${MONTH}/${DAY}/${HOUR}/${MINUTE}/itemdata</uri-template><done-flag></done-flag>
</dataset>
</datasets>
<output-events>
<data-out name="Outputevent" dataset="OutputDataset">
<instance>${coord:current(0)}</instance>
</data-out>
</output-events>

<action>
<workflow>
<app-path>${namenode}/user/somefolder/Input/Workflow</app-path>
<configuration>
<property>
<name>namenode</name>
<value>${namenode}</value>
</property>
<property>
<name>jobtracker</name>
<value>${jobtracker}</value>
</property>
<property>
<name>queue_name</name>
<value>${queue_name}</value>
</property>
<property>
<name>path</name>
<value>${coord:dataOut('Outputevent')}</value>
</property>
</configuration>
</workflow>
</action>     

</coordinator-app>

CoordinatTwo:

<coordinator-app xmlns="uri:oozie:coordinator:0.4"  frequency="${frequency}" start="${start}" end="${end}" timezone="UTC" name="CoordinatorTwo">
<controls>
<timeout>5</timeout>
<concurrency>1</concurrency>
</controls>
<datasets>
<dataset name="OutputDataset" frequency="${frequency}" initial-instance="${start}" timezone="UTC">
<uri-template>${namenode}/user/somefolder/Output/Test/${YEAR}/${MONTH}/${DAY}/${HOUR}/Somedata${MINUTE}</uri-template>
<done-flag></done-flag>
</dataset>
<dataset name="InputDataset" frequency="${frequencyInput}" initial-instance="${startTimeofInputset}" timezone="UTC">
<uri-template>${namenode}/user/somefolder/Output/Test/${YEAR}/${MONTH}/${DAY}/${HOUR}/${MINUTE}</uri-template>
<done-flag></done-flag>
</dataset>
</datasets>
<input-events>
<data-in name="Inputevent" dataset="InputDataset">
<instance>${coord:current(-1)}</instance>
</data-in>
</input-events>   
<output-events>
<data-out name="Outputevent" dataset="OutputDataset">
<instance>${coord:current(0)}</instance>
</data-out>
</output-events>
<action>
<workflow>
<app-path>${namenode}/user/somefolder/Input/WorkflowItem</app-path>
<configuration>
<property>
<name>namenode</name>
<value>${namenode}</value>
</property>
<property>
<name>jobtracker</name>
<value>${jobtracker}</value>
</property>
<property>
<name>queue_name</name>
<value>${queue_name}</value>
</property>
<property>
<name>Inputpath</name>
<value>${coord:dataIn('Inputevent')}</value>
</property>
<property>
<name>Outputpath</name>
<value>${coord:dataOut('Outputevent')}</value>
</property>
</configuration>
</workflow>
</action>     

'

CoordinatorOne 的输出作为输入馈送到 CoordinatorTwo

确保 CoordinatorTwo 等待其输入 - 请参阅此处的示例("当数据目录可用时触发协调器作业")。如果输入不存在或不完整,Pig 操作可能会失败(请参阅 pig 日志进行确认)。

最新更新