我是 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 工作目录中没有成功。我已经用尽了我所有的研究,但仍然无法解决这个问题(即使用文件参数等)我真的很感谢提前提供的任何帮助,我希望我以一种可以帮助刚开始的其他人的方式提出这个问题使用 Python + Hadoop。
我独立测试了 mapper.py 和 reduce.py,当提示来自 bash shell 的玩具文本数据时,它们都可以正常工作。
我的 Bash Shell 的输出:
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 创建