Windows 用の Hortonworks HDP を使用しており、マスターと 2 つのスレーブで正常に構成されています。
次のコマンドを使用しています。
bin\hadoop jar contrib\streaming\hadoop-streaming-1.1.0-SNAPSHOT.jar -files file:///d:/dev/python/mapper.py,file:///d:/dev/python/reducer.py -mapper "python mapper.py" -reducer "python reduce.py" -input /flume/0424/userlog.MDAC-HD1.MDAC.local..20130424.1366789040945 -output /flume/o%1 -cmdenv PYTHONPATH=c:\python27
マッパーは正常に実行されますが、ログには reduce.py ファイルが見つからなかったことが報告されています。例外では、hadoop タスクランナーがレデューサーのシンボリック リンクを mapper.py ファイルに作成しているように見えます。
ジョブ構成ファイルを確認すると、mapred.cache.filesが次のように設定されていることに気付きました。
hdfs://MDAC-HD1:8020/mapred/staging/administrator/.staging/job_201304251054_0021/files/mapper.py#mapper.py
reduce.py ファイルが jar ファイルに追加されているようですが、設定に正しく含まれておらず、レデューサーを実行しようとしても見つかりません。
私のコマンドは正しいと思います。代わりに -file パラメーターを使用してみましたが、どちらのファイルも見つかりません。
明らかな理由を誰かが見たり知ったりできますか?
これはWindows上であることに注意してください。
編集-ローカルで実行したところ、機能しました。問題は、クラスター内のファイルのコピーにあるようです。
まだ入力を歓迎します!