MapReduce 跑的慢的原因
image.png
MapReduce优化方法主要从六个方面考虑:数据输入、Map阶段、Reduce阶段、IO传输、数据倾斜问题和常用的调优参数。
数据输入
image.png
Map阶段
image.png
image.png
image.png
IO传输
image.png
数据倾斜
image.png
image.png
常用的调优参数
1.资源相关参数
(1)以下参数是在用户自己的MR应用程序中配置就可以生效(mapred-default.xml)
image.png
image.png
应该在YARN启动之前就配置在服务器的配置文件中才能生效(yarn-default.xml)
image.png
Shuffle性能优化的关键参数,应在YARN启动之前就配置好(mapred-default.xml)
image.png
image.png
HDFS小文件优化方法
HDFS小文件弊端
HDFS上每个文件都要在NameNode上建立一个索引,这个索引的大小约为150byte,这样当小文件比较多的时候,就会产生很多的索引文件,一方面会大量占用NameNode的内存空间,另一方面就是索引文件过大使得索引速度变慢。
HDFS小文件解决方案
小文件的优化无非以下几种方式:
(1)在数据采集的时候,就将小文件或小批数据合成大文件再上传HDFS。
(2)在业务处理之前,在HDFS上使用MapReduce程序对小文件进行合并。
(3)在MapReduce处理时,可采用CombineTextInputFormat提高效率。
image.png
image.png