2

Python mrjob を使用して mapreduce プログラムを学習しようとしています。次のエラーが表示されます。

トレースバック:

dumping stdin to local file /tmp/pyes_mrjob.testuser.20131004.103251.998597/STDIN
Making directory hdfs:///user/testuser/tmp/mrjob/pyes_mrjob.user.20131004.103251.998597/files/ on HDFS
> /usr/lib/hadoop-mapreduce/bin/hadoop fs -mkdir hdfs:///user/testuser/tmp/mrjob/pyes_mrjob.testuser.20131004.103251.998597/files/
Traceback (most recent call last):
  File "pyes_mrjob.py", line 34, in <module>
    MRWordFrequencyCount.run()
  File "/usr/local/lib/python2.7/dist-packages/mrjob/job.py", line 500, in run
    mr_job.execute()
  File "/usr/local/lib/python2.7/dist-packages/mrjob/job.py", line 518, in execute
    super(MRJob, self).execute()
  File "/usr/local/lib/python2.7/dist-packages/mrjob/launch.py", line 146, in execute
    self.run_job()
  File "/usr/local/lib/python2.7/dist-packages/mrjob/launch.py", line 207, in run_job
    runner.run()
  File "/usr/local/lib/python2.7/dist-packages/mrjob/runner.py", line 458, in run
    self._run()
  File "/usr/local/lib/python2.7/dist-packages/mrjob/hadoop.py", line 236, in _run
    self._upload_local_files_to_hdfs()
  File "/usr/local/lib/python2.7/dist-packages/mrjob/hadoop.py", line 263, in _upload_local_files_to_hdfs
    self._mkdir_on_hdfs(self._upload_mgr.prefix)
  File "/usr/local/lib/python2.7/dist-packages/mrjob/hadoop.py", line 271, in _mkdir_on_hdfs
    self.invoke_hadoop(['fs', '-mkdir', path])
  File "/usr/local/lib/python2.7/dist-packages/mrjob/fs/hadoop.py", line 81, in invoke_hadoop
    proc = Popen(args, stdout=PIPE, stderr=PIPE)
  File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

コマンドを手動で実行しましたが、そこでは正常に動作しましたが、プログラムを実行しようとすると動作しません。学習を始めたばかりなので、誰かが私が選択しなければならないライブラリを提案できます。一部のブログによると、一部のライブラリには優れたドキュメントがあり、一部のライブラリにはより優れたパフォーマンスがあり、.... -frameworks-for-hadoop/

しかし、非常に多くのライブラリが最近更新されました。それで、私が始めることができるライブラリを提案してくれる人もいます..

4

2 に答える 2

1

HADOOP_HOME を「/usr/lib/hadoop-mapreduce」に設定しているようです。ただし、これは誤りであり、「/usr/lib/hadoop」に設定する必要があります。

また、hadoop-streaming.jar が見つからないというエラーが表示された場合は、「/usr/lib/hadoop」にこの jar へのシンボリック リンクを次のように作成します。

    sudo ln -s /usr/lib/hadoop-mapreduce/hadoop-streaming.jar /usr/lib/hadoop
于 2013-11-06T14:15:51.687 に答える