3

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上であることに注意してください。

編集-ローカルで実行したところ、機能しました。問題は、クラスター内のファイルのコピーにあるようです。

まだ入力を歓迎します!

4

2 に答える 2

2

うーん、それは恥ずかしい...私の最初の質問で、私は自分で答えます。

Hadoop conf ファイルの名前を変更して、ローカル ジョブ トラッカーを意味するデフォルト設定を強制することで、問題を発見しました。

ジョブは適切に実行され、問題を解決する余地がありました。クラスター周辺の通信が必要なほど完全ではないようです。

于 2013-04-26T07:41:49.963 に答える
0

あなたのコマンドを見ると、-filesオプションに「file:///d:/dev/python/reducer.py」と表示されていますが、-reducerにreduce.pyを指定しています。これが問題の原因ですか?? よくわかりません。

于 2013-04-25T14:36:05.200 に答える