Mapreduce程序中的FileInputFormat.addInputPaths和FileInputFormat.addInputPath方法

好几天没动笔了,今天写个简单的~~

写MR过程中经常会遇到多个源路径的输入,我们可以在MR程序主函数中通过FileInputFormat.addInputPaths(job, conf.get("input_dir"))方法来实现,

在提交脚本中将多个源的路径用“,”分隔,input_dir=$INPUT_FILE_PATH1,$INPUT_FILE_PATH2  

这样在执行MR的时候,输入会将多个源路径全部多为map输入进行执行。

除了多输入路径外,如果源路径只有一个的话,FileInputFormat还有一个方法是addInputPath,通过FileInputFormat.addInputPath(job, new Path(conf.get("input_dir")));可以将一个源路径作为map的输入执行。

当然FileInputFormat.addInputPaths是兼容FileInputFormat.addInputPath的,也就是说如果我调用的是多输入路径函数,但是输入数据源只有一个路径,也是能够正常执行的,所以通用起见,FileInputFormat.addInputPaths是个更好的选择。

你可能感兴趣的:(Hadoop相关)