我是hadoop和oozie的新手。我试图运行两个具有以下细节的协调器实例:
CoordinatorOne
有一个工作流作业,其中包含单个动作(即java动作)。它以一定的频率全天候运行。当我运行另一个协调员时,说CoordinatorTwo
(其中有一个带有单个猪动作的工作流工作),其频率相同,开始时间与CoordinatorOne
动作的实现时间一致,第二个协调员行动随机失败(即有时他们成功,有时他们失败)。我已经尝试检查作业的日志,但没有创建日志。当我在命令行上检查oozie操作ID的信息时,我发现了这个错误:
main class [org.apache.oozie.action.hadoop.pigmain], exit code [2]
我无法解决问题。如果有人以前遇到过这类问题,请告诉我。
此外,CoordinatorOne
的输出作为输入提供给CoordinatorTwo
。 CoordinatorOne
永远不会失败。问题在于CoordinatorTwo
,但是当第一个终止时它可以正常工作。
群集详情: 2个节点集群,4个Map,2个减少任务容量 - CentOS VM,每个4GB内存。 Hadoop 2.0.0-cdh4.3.0 Oozie客户端构建版本:3.3.2-cdh4.3.0
PS:如果我错过任何事情,请告诉我。非常感谢!CoordinatorOne和以下两个定义:
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>
`
答案 0 :(得分:0)
CoordinatorOne的输出作为输入提供给CoordinatorTwo
确保CoordinatorTwo等待其输入 - 请参阅示例here(“数据目录可用时触发协调器作业”)。如果输入不存在或不完整,猪的动作可能会失败(参见猪日志确认)。