Hadoop优化
一、影响MR程序效率的因素 1.计算机性能: CPU、内存、磁盘、网络, 计算机的性能会影响MR程序的速度与效率 2.I/O方面 1)数据倾斜(代码优化) 2)map和reduce数量设置不合理(通过配置文件后代码中设置) 3)map运行时间过长,导致reduce等待时间过长 4)小文件过多(浪费元数据资源,CombineTextInputFormat) 5)不可分快的超大文件(不断溢写) 6)多个溢写小文件需要多次合并。 二、MR的优化方法 MR优化的六个方面:数据输入、map阶段、reduce阶段、IO传输、数据倾斜、参数调优 1.数据输入 1)合并小文件:在执行mr任务前就进行小文件合并 2)采用CombineTextInputFormat来作为输入,解决输入端大量小文件的场景 MR程序不适合处理大量小文件 2.Map阶段 1)减少溢写次数: //修改内存大小:mapreduce.task.io.sort.mb //修改默认溢写百分百:mapreduce.mps.sort.spill.percent 2)减少合并次数 //mapreduce.task.io.sort.factor,将merge值增大 3