python - 经过快速启动后,在访问 hadoop 时遇到一些问题

标签 python apache hadoop streaming mapreduce

我收到一个错误,我认为这与我设置目录的方式有关:

运行后:

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/

相关文章:

通过http服务器进行Python日志监控

apache - 用于查找 Apache Tomcat 正在运行的端口的批处理脚本

php - xsendfile 期望什么编码?

php - 在 Windows 中的 apache 上运行 exec

hadoop - pig 拉丁按领域加入

python - matplotlib - 具有固定纵横比的子图

python - 使用 pyqt5 和 matplotlib 进行图形滚动

python - 如何在python中使用正则表达式从包含日期的文件名中提取字符串?

hadoop - sqoop:如何从 mySql 获取增量更新

git - 反之亦然如何将HDFS中的文件获取/复制到Git存储库中?