2016-10-05 1 views
3

私はハーフープエコシステムの初心者です。私は同じ一般的なworkflow.xmlファイルから呼び出すが、サブワークフローのそれぞれに異なるパラメータを渡す3つの異なるジョブをforkしようとしています。パラメータのリストが異なる同じ汎用workflow.xmlを使用する3つの異なるジョブをforkする方法はありますか?

サブワークフロー:

<?xml version="1.0" encoding="UTF-8"?> 
<workflow-app xmlns="uri:oozie:workflow:0.4" name="special-fork"> 

    <global> 
     <job-tracker>${jT}</job-tracker> 
     <name-node>${nN}</name-node> 
    </global> 

    <fork name="special-fork"> 
     <path start="aa"/> 
     <path start="bb"/> 
     <path start="cc"/> 
    </fork> 

    <action name="aa"> 
     <sub-workflow> 
      <app-path>${nN}/xyz/workflow.xml</app-path> 
      <propagate-configuration/> 
     </sub-workflow> 
     <ok to="special-join"/> 
     <error to="kill"/> 
    </action> 

    <action name="bb"> 
     <sub-workflow> 
      <app-path>${nN}/xyz/workflow.xml</app-path> 
      <propagate-configuration/> 
     </sub-workflow> 
     <ok to="special-join"/> 
     <error to="kill"/> 
    </action> 

    <action name="cc"> 
     <sub-workflow> 
      <app-path>${nN}/xyz/workflow.xml</app-path> 
      <propagate-configuration/> 
     </sub-workflow> 
     <ok to="special-join"/> 
     <error to="kill"/> 
    </action> 

    <join name="special-join" to="end"/> 

    <action name="email-alert-fail"> 
     <email xmlns="uri:oozie:email-action:0.1"> 
      <to>${emailing_list}</to> 
      <subject>Oozie workflow Failed</subject> 
      <body> 
      </body> 
     </email> 
     <ok to="kill"/> 
     <error to="kill"/> 
    </action> 

    <kill name="kill"> 
     <message>Map-Reduce Failed</message> 
    </kill> 

    <end name="end"/> 
</workflow-app> 

は、私はすべての3つのプロセスAA、BB、CCに異なるソース、input_path、output_path、資格情報などのパラメータのリストを渡したいです。これを3つのサブワークフローのそれぞれにどのように伝播できますか?

ありがとうございました。

答えて

2

サブワークフローアクションのconfigurationタグを使用して、必要なパラメータを渡すことができます。これは次のようになります。(必要なすべてのプロパティを追加)

<action name="aa"> 
    <sub-workflow> 
     <app-path>${nN}/xyz/workflow.xml</app-path> 
     <propagate-configuration/> 
     <configuration> 
      <property> 
       <name>input_path</name> 
       <value>your_input_path</value> 
      </property> 
     </configuration> 
    </sub-workflow> 
    <ok to="special-join"/> 
    <error to="kill"/> 
</action> 
関連する問題