2013-05-20 5 views
5

Oozieの移動操作でワイルドカード(例:*)やファイルパターン(例:{})を使用できますか?Oozie HDFSアクションはファイルパターンまたはグロブを使用できますか?

私の仕事の結果をアーカイブディレクトリに移動しようとしています。ディレクトリ構造の

州:

output 
- 201304 
- 201305 
archive 
- 201303 

私のアクション:

<fs name="archive-files"> 
    <move source="hdfs://namenode/output/{201304,201305}" 
      target="hdfs://namenode/archive" /> 
    <ok to="next"/> 
    <error to="fail"/> 
</fs> 

結果のエラー:

FS006: move, source path [hdfs://namenode/output/{201304,201305}] does not exist 

に複数のファイルを移動する簡単な方法がありますglobやbashのような構文?このhadoopコマンドに似たものを探してみましょう:

hadoop fs -mv hdfs://namenode/output/{201304,201305} hdfs://namenode/archive 

私に何か不足していますか? hadoop fsコマンドはglobを受け入れます。 Oozieはありますか?

答えて

1

Oozie HDFSの動作は非常に限定されています。これについては、functional specificationで詳しく説明しています。もっと複雑なことをするにはShell actionを使うことができます。ワークフローの一部として任意のシェルコマンドを実行することができます。あなたの場合はhadoop fsです。

0

いいえ - 私の経験から、動作していないようです。

FS006:移動、ソースパス[HDFS://ノード名:8020 /プロジェクト/何とか/ 201 *の.gz]はworkflow.xml使用時にこの

-1

存在しない:

<action name="Movefiles"> 
    <fs> 
    <move source='${SourcePath}' target='${DestinationPath}'/> 
    </fs> 
    <ok to="end"/> 
    <error to="fail"/> 
    </action> 

およびjob.propertiesで書く:

ソースパス=出力/ */

DestinationPath =アーカイブ

関連する問題