项目中遇到的一些MapReduce优化策略

最近在项目中遇到一些MR可以进行优化的点,记录如下:

小文件合并输入

通过CombineTextInputFormat来合并小文件

1
2
3
4
5
6
//设置split大小
job.getConfiguration().setLong("mapreduce.input.fileinputformat.split.maxsize", 128 * 1024 * 1024);
//job.setInputFormatClass(TextInputFormat.class);

// 合并小文件
job.setInputFormatClass(CombineTextInputFormat.class);

递归子目录

设置客户端参数

1
mapreduce.input.fileinputformat.input.dir.recursive=true

可以在MapReduce中设置,也可以在mapred-site.xml中设置。
在mapreduce程序中如下设置。

1
2
// 设置递归子目录
job.getConfiguration().setBoolean("mapreduce.input.fileinputformat.input.dir.recursive",true);

评论