我收到一个错误,我认为这与我设置目录的方式有关:
运行后:
hadoop-0.20.205.0/bin/hadoop jar hadoop-0.20.205.0/contrib/streaming/hadoop-streaming-*.jar -文件mapper.py -mapper mapper.py -文件reducer.py -reducer reducer.py -输入cs4501输入-输出py_wc_out
我得到: packageJobJar:[mapper.py,reducer.py,/tmp/hadoop-ubuntu/hadoop-unjar6120166906857088018/] []/tmp/streamjob1341652915014758694.jar tmpDir=null
12/04/08 01:34:01 信息mapred.JobClient: 清理暂存区 hdfs://localhost:9000/tmp/hadoop-ubuntu/mapred/staging/ubuntu/.staging/job_201204080100_0004
12/04/08 01:34:01 错误streaming.StreamJob:启 Action 业时出错,输出路径已存在:输出目录 hdfs://localhost:9000/user/ubuntu/py_wc_out 已存在 流媒体作业失败!
我认为这与我使用 hdfs 指定 core-site.xml 文件有关,但这在快速入门指南中。我不明白为什么我需要在本地主机地址旁边指定 hdfs 和端口号。
最佳答案
问题是您试图在不清理输出目录的情况下运行相同的作业。先删除输出目录,然后重新运行。您必须在每项工作之间执行此操作。 Hadoop 失败而不是让您覆盖目录。
hadoop fs -rmr /user/ubuntu/py_wc_out
就我个人而言,我喜欢解决这个“问题”的方法是动态地将时间戳附加到输出目录。这样它将始终是唯一的,并且您不必删除以前的运行。
hadoop-0.20.205.0/bin/hadoop jar ... -output py_wc_out-`date +%s`
关于python - 经过快速启动后,在访问 hadoop 时遇到一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10068029/