2

ディレクトリの設定方法に関係していると思われるエラーが表示されます。

実行後:

hadoop-0.20.205.0/bin/hadoop jar hadoop-0.20.205.0/contrib/streaming/hadoop-streaming-*.jar -file mapper.py -mapper mapper.py -file reducer.py -reducer reducer.py -input cs4501input -出力py_wc_out

私は得る: packageJobJar: [mapper.py, reducer.py, /tmp/hadoop-ubuntu/hadoop-unjar6120166906857088018/] [] /tmp/streamjob1341652915014758694.jar tmpDir=null

12/04/08 01:34:01 INFO mapred.JobClient: ステージング領域のクリーンアップ hdfs://localhost:9000/tmp/hadoop-ubuntu/mapred/staging/ubuntu/.staging/job_201204080100_0004

12/04/08 01:34:01 エラー streaming.StreamJob: ジョブの起動エラー、出力パスが既に存在します: 出力ディレクトリ hdfs://localhost:9000/user/ubuntu/py_wc_out が既に存在します ストリーミング ジョブに失敗しました!

hdfsでcore-site.xmlファイルを指定したのが関係していると思いますが、それはクイックスタートガイドにありました。localhost アドレスの横にポート番号で hdfs を指定する必要がある理由がわかりません。

4

1 に答える 1

4

問題は、出力ディレクトリを消去せずに同じジョブを実行しようとしていることです。最初に出力ディレクトリを削除してから、再実行してください。すべてのジョブの間にこれを行う必要があります。ディレクトリを上書きする代わりに、Hadoop が失敗します。

hadoop fs -rmr /user/ubuntu/py_wc_out

個人的には、この「問題」を回避するのが好きな方法は、その場で出力ディレクトリにタイムスタンプを添付することです。これにより、常に一意になり、以前の実行を削除する必要がなくなります。

hadoop-0.20.205.0/bin/hadoop jar ... -output py_wc_out-`date +%s`
于 2012-04-09T01:36:46.287 に答える