2017-08-07 6 views
1

さまざまな理由から、私はEMRでAMI 2.4.11/Hadoop 1.0.3でいくつかのジョブを実行しています。私は追加のEMRステップを追加して自分の仕事の後にHDFSのクリーンアップを実行しようとしています。 boto:AWS EMRのHadoop 1.0.3でHDFSからデータをクリアする

step = JarStep(
     'HDFS cleanup', 
     'command-runner.jar', 
     action_on_failure='CONTINUE', 
     step_args=['hadoop', 'dfs', '-rmr', '-skipTrash', 'hdfs:/tmp']) 
    emr_conn.add_jobflow_steps(cluster_id, [step]) 

ただし、定期的にEMRコンソールの標準エラー出力に失敗します。

hadoop dfs -rmr -skipTrash hdfs:/tmp

それはそれが成功したすべてのものを削除し、0とメッセージで成功した:私は、マスターノードにsshとコマンドを実行する場合、私は混乱していますなぜ です。すべての通常のhadoopコマンドは、文書化されているように動作するようです。これには明白な理由があるかどうか誰にも知られていますか? Amazonの配布に関する問題?特定のコマンドでは文書化されていない動作ですか?

注: 私はHadoopの2で実行されている他のジョブを持っているし、文書化:1のステップとして、コマンドとしても期待される

hdfs dfs -rm -r -skipTrash hdfs:/tmp

作品として。

答えて

0

私のソリューションは、一般的に、この作品、その場合にはHadoop2にすべてを、アップグレードすることでした:

 JarStep(
      '%s: HDFS cleanup' % self.job_name, 
      'command-runner.jar', 
      action_on_failure='CONTINUE', 
      step_args=['hdfs', 'dfs', '-rm', '-r', '-skipTrash', path] 
     ) 

これは、私はかなりよく働いたHadoop1で得ることができる最高でした。

 JarStep(
      '%s: HDFS cleanup' % self.job_name, 
      'command-runner.jar', 
      action_on_failure='CONTINUE', 
      step_args=['hadoop', 'fs', '-rmr', '-skipTrash', 
         'hdfs:/tmp/mrjob'] 
     ) 
関連する問題