私は Ubuntu、Hadoop、および DFS の初心者ですが、Michael-Noll.com に投稿された指示に従って、ローカルの ubuntu マシンに単一ノードの Hadoop インスタンスをインストールすることができました。
http://www.michael-noll.com/tutorials/writing-an-hadoop-mapreduce-program-in-python/
私は現在、Hadoop で基本的な単語カウントの例を実行することに固執しています。ダウンロード ディレクトリから Hadoop を実行しているという事実が大きな違いを生むかどうかはわかりませんが、mapper.py および reducer.py 関数のファイルの場所を配置して微調整しようとしました。 Hadoop 作業ディレクトリで成功しませんでした。私はすべての調査を使い果たしましたが、まだこの問題を解決できません (つまり、-file パラメーターを使用するなど)。 Python + Hadoop で。
私は mapper.py と reduce.py を個別にテストしましたが、bash シェルからおもちゃのテキスト データを入力するように求められると、どちらも正常に動作します。
私の Bash シェルからの出力:
hduser@chris-linux:/home/chris/Downloads/hadoop$ bin/hadoop jar /home/chris/Downloads/hadoop/contrib/streaming/hadoop-streaming-1.0.4.jar -file mapper.py -file reducer.py -mapper mapper.py -reducer reducer.py -input /user/hduser/gutenberg/* -output /user/hduser/gutenberg-output3
Warning: $HADOOP_HOME is deprecated.
packageJobJar: [mapper.py, reducer.py, /app/hadoop/tmp/hadoop-unjar4681300115516015516/] [] /tmp/streamjob2215860242221125845.jar tmpDir=null
13/03/08 14:43:46 INFO util.NativeCodeLoader: Loaded the native-hadoop library
13/03/08 14:43:46 WARN snappy.LoadSnappy: Snappy native library not loaded
13/03/08 14:43:46 INFO mapred.FileInputFormat: Total input paths to process : 3
13/03/08 14:43:47 INFO streaming.StreamJob: getLocalDirs(): [/app/hadoop/tmp/mapred/local]
13/03/08 14:43:47 INFO streaming.StreamJob: Running job: job_201303081155_0032
13/03/08 14:43:47 INFO streaming.StreamJob: To kill this job, run:
13/03/08 14:43:47 INFO streaming.StreamJob: /home/chris/Downloads/hadoop/libexec/../bin/hadoop job -Dmapred.job.tracker=localhost:54311 -kill job_201303081155_0032
13/03/08 14:43:47 INFO streaming.StreamJob: Tracking URL: http://localhost:50030/jobdetails.jsp?jobid=job_201303081155_0032
13/03/08 14:43:48 INFO streaming.StreamJob: map 0% reduce 0%
13/03/08 14:44:12 INFO streaming.StreamJob: map 100% reduce 100%
13/03/08 14:44:12 INFO streaming.StreamJob: To kill this job, run:
13/03/08 14:44:12 INFO streaming.StreamJob: /home/chris/Downloads/hadoop/libexec/../bin/hadoop job -Dmapred.job.tracker=localhost:54311 -kill job_201303081155_0032
13/03/08 14:44:12 INFO streaming.StreamJob: Tracking URL: http://localhost:50030/jobdetails.jsp?jobid=job_201303081155_0032
13/03/08 14:44:12 ERROR streaming.StreamJob: Job not successful. Error: JobCleanup Task Failure, Task: task_201303081155_0032_m_000003
13/03/08 14:44:12 INFO streaming.StreamJob: killJob...
Streaming Command Failed!
私の HDFS は /app/hadoop/tmp にあります。これは、私の Hadoop インスタンスの /user/hduser ディレクトリと同じだと思います。
入力データは /user/hduser/gutenberg/* (3 つの UTF プレーン テキスト ファイル) にあります。出力は /user/hduser/gutenberg-output に作成されるように設定されています。