gpt4 book ai didi

hadoop - 发出同时运行两个Oozie协调器应用程序的问题

转载 作者:行者123 更新时间:2023-12-02 21:51:11 28 4
gpt4 key购买 nike

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

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

我不知道这个问题。请让我知道以前是否有人遇到过此类问题。

同样, CoordinatorOne的输出被作为输入馈送给 CoordinatorTwoCoordinatorOne永远不会失败。问题出在 CoordinatorTwo,但是当第一个终止时,它可以正常工作。

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

PS:让我知道我是否错过任何事情。非常感谢!

以下的CoordinatorOne和Two定义:
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's output is fed as input to CoordinatorTwo



确保CoordinatorTwo等待其输入-请参见 here示例(“在数据目录可用时触发协调器作业”)。如果输入不存在或输入不完整,清管器操作可能会失败(请参阅清管器日志以确认输入)。

关于hadoop - 发出同时运行两个Oozie协调器应用程序的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20770565/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com