可以使现有的mapreduce程序从输入文件的指定偏移量运行

时间:2014-09-06 12:51:14

标签: java hadoop mapreduce hadoop-streaming hadoop2

有没有办法运行现有的mapreduce程序,以便它只处理输入文件的给定偏移量?

例如: 如果给定的偏移量为500,则mapreduce程序应该从第500个字节开始处理输入文件。

2 个答案:

答案 0 :(得分:1)

这是可能的,但需要Java编码并创建自定义的InputFormat。例如,您可以继承FileInputFormat并覆盖方法 public List getSplits(JobContext job)受保护的FileSplit makeSplit(路径文件,长启动,长度长,String []主机)。 要传递起始偏移量,您可以使用可通过 job.getConfiguration()访​​问的配置参数.getInt(YOUR_PARAM_NAME,0)

答案 1 :(得分:0)

不是根据我的知识,但它可能是可能的。

一种可能的解决方法是创建一个静态变量来计算字节数,并通过将映射器输入转换为字节数组来跳过字节数。