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

Java 是否可以使现有的mapreduce程序从输入文件的指定偏移量运行,java,hadoop,mapreduce,hadoop-streaming,hadoop2,Java,Hadoop,Mapreduce,Hadoop Streaming,Hadoop2,有没有办法运行现有的mapreduce程序,使其仅从输入文件的给定偏移量进行处理 例如: 如果给定的偏移量是500,mapreduce程序应该从第500字节开始处理输入文件。据我所知,这不是可能的,但这是可能的 一种可能的解决方法是创建一个静态变量来计算字节数,并通过将映射器输入转换为字节数组跳过字节数。这是可能的,但需要Java编码和创建自定义InputFormat。例如,您可以将FileInputFormat子类化,并覆盖方法公共列表getSplits(JobContext作业)和受保护的F

有没有办法运行现有的mapreduce程序,使其仅从输入文件的给定偏移量进行处理

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

据我所知,这不是可能的,但这是可能的


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

这是可能的,但需要Java编码和创建自定义InputFormat。例如,您可以将FileInputFormat子类化,并覆盖方法公共列表getSplits(JobContext作业)受保护的FileSplit makeSplit(路径文件、长起始、长长度、字符串[]主机)
要传递起始偏移量,您可以使用可通过job.getConfiguration().getInt(您的参数名称,0)访问的配置参数。

非常感谢alexeipab,字节偏移量配置参数可以在oozie工作流中给出吗?我只希望对现有mapreduce程序的更改最小。我认为oozie允许您将值放入配置上下文或job.xml或其他内容中,但不完全记得。