2
  • PYTHONPATH を設定しましたが、map-reduce ジョブを実行する場合を除いて、正常に動作します
  • 言って失敗する

    トレースバック (最後の最後の呼び出し): ファイル "/work/app/hadoop/tmp/mapred/local/taskTracker/hduser/jobcache/job_201203091218_0006/attempt_201203091218_0006_m_000020_0/work/./mapper.py"、57 行目、src.utilities からインポートユーティリティ ImportError: src.utilities という名前のモジュールがありません java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): org.apache.apache の org.apache.hadoop.streaming.PipeMapRed.waitOutputThreads(PipeMapRed.java:311) でサブプロセスがコード 1 で失敗しました.hadoop.streaming.PipeMapRed.mapRedFinished(PipeMapRed.java:545) org.apache.hadoop.streaming.PipeMapper.map(PipeMapper.java:121) org.apache.hadoop.mapred.MapRunner.run(MapRunner.java) :50) org.apache.hadoop.streaming.PipeMapRunner.run(PipeMapRunner.java:36) で org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:436) で org.apache.hadoop.org.apache.hadoop.mapred.Child$4.run(Child.java:261) の mapred.MapTask.run(MapTask.java:372) javax.security.auth の java.security.AccessController.doPrivileged(ネイティブ メソッド) .Subject.doAs(Subject.java:396) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059) at org.apache.hadoop.mapred.Child.main(Child.java:255) java .lang.RuntimeException: PipeMapRed.waitOutputThreads(): サブプロセスは、org.apache.hadoop.streaming.PipeMapRed.mapRedFinished(PipeMapRed. java:545) org.apache.hadoop.streaming.PipeMapper.close(PipeMapper.java:132) で org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:57) で org.apache.hadoop.streaming .PipeMapRunner.run(PipeMapRunner.java:36) org.org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:436) org.apache.hadoop.mapred.MapTask.run(MapTask.java:372) org.apache.hadoop.mapred.Child$4.run(Child .java:261) で java.security.AccessController.doPrivileged(Native Method) で javax.security.auth.Subject.doAs(Subject.java:396) で org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java) :1059) org.apache.hadoop.mapred.Child.main (Child.java:255) でapache.hadoop.mapred.Child.main(Child.java:255)apache.hadoop.mapred.Child.main(Child.java:255)

質問: - Hadoop ストリーミング中に Python パスを具体的に設定する必要があるということですか? どこ?

4

2 に答える 2

0

MapReduce Service Environment Safety Valve を追加する必要があります。私の場合、cloudera-manager GUI を使用しています。PYTHONPATH を追加しました。これは機能しています。

于 2014-01-09T12:34:25.887 に答える
0

私は同じ問題を抱えていました。問題は、Hadoop 仮想環境がシステムの pythonpath を認識しないことだと思います。パッケージを /Library/Python/2.7/site-packages にインストールすると、Hadoop がそれらを取得して動作します。

于 2012-06-06T20:45:34.513 に答える