2

我想在我的文本文件的一小部分上运行 Hadoop MapReduce。

我的任务之一是失败。我可以在日志中阅读:

处理拆分:hdfs://localhost:8020/user/martin/history/history.xml:3556769792+67108864

我可以在这个文件上从偏移 3556769792 到 3623878656 (3556769792+67108864) 再次执行 MapReduce 吗?

4

1 回答 1

2

一种方法是从偏移定义复制文件并将其添加回 HDFS。从这一点开始,只需在这个块上运行 mapreduce 作业。

1)从偏移量 3556769792 复制文件,然后是 67108864:

dd if=history.xml bs=1 skip=3556769792 count=67108864 > history_offset.xml

2)导入HDFS

hadoop fs -copyFromLocal history_offset.xml offset/history_offset.xml

3) 再次运行 MapReduce

hadoop jar myJar.jar 'offset' 'offset_output'

于 2013-09-17T05:19:17.847 回答