运行脚本以响应错误发生

utugiqy6  于 2021-06-03  发布在  Hadoop
关注(0)|答案(3)|浏览(282)

有没有办法运行脚本(pig,shell)来响应错误的发生?我的意思是:我在oozie(工作流管理器)中创建工作流,其中一个是task fail和call error,如果出现这个错误,我希望运行特定的脚本或其他任务。我想提供某种错误处理:
当错误发生时-做点什么
当错误2发生时-做其他事情
我将非常感激你的帮助。

tkclm6bt

tkclm6bt1#

如果error1和error2发生在同一个工作流操作中,那么将您的工作流更改为java操作并在那里编写错误处理逻辑[这在工作流中是不可能的]。如果这些错误是不同操作的一部分,请尝试以下操作。
试试这个:

<action name="firstjob">
    <map-reduce>
        <job-tracker>foo:9001</job-tracker>
        <name-node>bar:9000</name-node>
        <job-xml>job1.xml</job-xml>
    </map-reduce>
    <ok to="end"/>
    <error to="errorscript1"/>
</action>
<action name="secondjob">
    <map-reduce>
        <job-tracker>foo:9001</job-tracker>
        <name-node>bar:9000</name-node>
        <job-xml>job2.xml</job-xml>
    </map-reduce>
    <ok to="end"/>
    <error to="errorscript2"/>
</action>
<action name="errorscript1">
    <shell xmlns="uri:oozie:shell-action:0.2">
    </shell>
    <ok to="decide"/>
    <error to="fail"/>
</action>
<action name="errorscript2">
    <shell xmlns="uri:oozie:shell-action:0.2">
    </shell>
    <ok to="decide"/>
    <error to="fail"/>
</action>
xuo3flqw

xuo3flqw2#

对于错误处理,可以使用决策节点。例如:

<action name="Action1">
    <map-reduce>
        <job-tracker>foo:9001</job-tracker>
        <name-node>bar:9000</name-node>
        <job-xml>job1.xml</job-xml>
    </map-reduce>
    <ok to="NextAction"/>
    <error to="ErrorhandlingDecision"/>
</action>
<decision name="ErrorhandlingDecision">
    <switch>
        <case to="CorrectError1Node">
          ${wf:errorCode("SourceActionNodeName") eq "JA018"}
        </case>
        <case to="CorrectError2Node">
          ${errorMessage(wf:lastErrorNode()) eq "Error Msg Received"}
        </case>
        <default to="NextAction"/>
    </switch>
</decision>

您只需要捕获错误代码或错误消息。
注:expression lang(el)支持以下操作
[“}”、“>”、“gt”、“<”、“lt”、“==”、“eq”、“<=”、“le”、“>=”、“ge”、“!=”、“中的一个ne“,”[“,”+“,”-“,”*“,”/“,”div“,”%“,”mod“,”and“,”&&“,”or“,”| |“,”?“]
希望这有帮助。

a11xaf1n

a11xaf1n3#

如果使用hue oozie工作流编辑器,则当前无法将“error”链接发送到“kill”节点之外的其他节点:https://issues.cloudera.org/browse/hue-1457

相关问题