有没有办法运行现有的mapreduce程序,使其只从输入文件的给定偏移量进行处理?例如:如果给定的偏移量是500,mapreduce程序应该从第500字节开始处理输入文件。
zi8p0yeb1#
这是可能的,但需要java编码和创建自定义输入格式。例如,可以将fileinputformat子类化,并重写public list getsplits(jobcontext job)和protected filesplit makesplit(path file,long start,long length,string[]hosts)方法。要传递起始偏移量,可以使用可通过job.getconfiguration().getint(您的参数名称,0)访问的配置参数
c9x0cxw02#
据我所知不是这样,但这是可能的。一种可能的解决方法是创建一个静态变量来计算字节数,并通过将Map器输入转换为字节数组来跳过字节数。
2条答案
按热度按时间zi8p0yeb1#
这是可能的,但需要java编码和创建自定义输入格式。例如,可以将fileinputformat子类化,并重写public list getsplits(jobcontext job)和protected filesplit makesplit(path file,long start,long length,string[]hosts)方法。要传递起始偏移量,可以使用可通过job.getconfiguration().getint(您的参数名称,0)访问的配置参数
c9x0cxw02#
据我所知不是这样,但这是可能的。
一种可能的解决方法是创建一个静态变量来计算字节数,并通过将Map器输入转换为字节数组来跳过字节数。