shell
  • hadoop
  • hdfs
  • oozie
  • hue
  • 2016-10-05 4 views 1 likes 
    1

    にシェルのアクションからパラメータを渡すために、私は1つのシェルのアクションとHDFS FSアクション、どのように私のワークフローでHDFS FSアクション

    1. シェル行動エコーの日付を持っています。 (date = 2016-10-06)

    2. 上記の日付パラメータをHDFSのアクションmkdirパスに設定したいとします。以下に、アクション定義を示します。

    <アクション名= "FS-a347">

    <fs> 
        <mkdir path='${nameNode}/user/kylin/${wf:actionData("shell-e424")["date"]}'/> 
        </fs> 
        <ok to="End"/> 
        <error to="Kill"/> 
    </action> 
    

    私は次のエラーを取得します。

    EL_ERROR「&」、[true]、[false]、「null」、「(」、「)」、「 - 」、「not」、「!」、空 "、]

    答えて

    0

    完全なパスを形成するには、2つの文字列を連結する必要があります。

    String concat(String s1, String s2) 
    

    2つの文字列の連結を返します。ヌル値の文字列は空の文字列と見なされます。スクリプトまたは任意のOozieアクションノードからの出力をキャプチャするために

    <mkdir path='concat(${nameNode}/user/kylin/, ${wf:actionData("shell-e424")["date"]})'/> 
    
    +0

    は動作しませんでした。同じエラーが発生しました。 –

    +0

    oozie.logとworkflow.xmlから詳細な例外を指定できますか? – YoungHobbit

    +0

    EL_ERROR「&」、「、」、「false」、「null」、「(」、「) "-"、 "空ではない"、 ] –

    0

    、あなたのノード定義の最後に<capture-output/>タグを利用する必要があります。 Oozieのドキュメントから

    キャプチャ出力要素が存在する場合、それはシェルコマンドの実行のSTDOUTの出力を>キャプチャするOozieを示しています。シェルコマンドの出力は、Javaプロパティファイル形式で>でなければならず、2KBを超えてはいけません。ワークフロー定義の中から、シェルアクションノードの出力は、> Stringアクション:output(String node、String key)関数(「4.2.6アクションEL関数」のセクションを参照)を介してアクセスできます。

    構文と完全な仕様は、ここでは、シェルのアクションに対してOozieのドキュメントで見つけることができます:http://oozie.apache.org/docs/4.0.0/DG_ShellActionExtension.html

    関連する問題