大数据面试·Hadoop篇(三)
1.3 MapReduce调优
MapReduce一般要从几个方面考虑:
- 数据输入阶段
- Map阶段
- Reduce阶段
- IO传输阶段
- 数据倾斜的优化
1.3.1 数据输入阶段的调优
- 在客户端将小文件合并为大文件。
- 使用Hadoop的CombineFileInputFormat<K,V>实现小文件的合并。
Hadoop合并小文件的两种解决方案
1.3.2 Map阶段的调优
1.3.3 Reduce阶段的调优
1.3.3.1 合理设置Map和Reduce数量
太少,会导致 task 等待;太多,会导致任务间竞争资源。
- Map的数量由输入切片的数量决定,128M切分一个切片,有多少个切片就有多少个map Task。
- Reduce数量是可以自己配置
set mapred.reduce