文章目录


返回顶部


一、MapReduce跑得慢的原因

MapReduce程序效率的瓶颈在于两点:

  • 1.计算机性能
CU、内存、磁盘健康、网络
  • 2.操作优化
(1) 数据倾斜
(2) Map和Reduce数设置不合理
(3) Map运行时间太长,导致 Reduce等待过久
(4) 小文件过多
(5) 大量的不可分块的超大文件
(6) Spill次数过多
(7) Merge次数过多等。

返回顶部


二、MapReduce优化方法


※ 数据输入

【Hadoop】企业优化_mapreduce

返回顶部


※ Map阶段

【Hadoop】企业优化_mapreduce_02

返回顶部


※ Reduce阶段

【Hadoop】企业优化_mapreduce_03


【Hadoop】企业优化_hdfs_04

返回顶部


※ I/O传输

【Hadoop】企业优化_hdfs_05

返回顶部


※ 数据倾斜问题

【Hadoop】企业优化_hdfs_06

返回顶部


※ 常用的调优参数

  • 用户自己的MR应用程序中配置就可以生效(mapred-default.xml)
  • 【Hadoop】企业优化_hdfs_07

  • 应该在YARN启动之前就配置在服务器的配置文件中才能生效(yarn-default.xml)
  • 【Hadoop】企业优化_mapreduce_08

  • Shuffle性能优化的关键参数,应在YARN启动之前就配置好(mapred-default.xml)

【Hadoop】企业优化_返回顶部_09

  • 容错相关参数(MapReduce性能优化)
  • 【Hadoop】企业优化_hdfs_10

返回顶部


HDFS小文件优化方法

※ HDFS小文件弊端

  • HDFS上每个文件都要在NameNode上建立一个索引,这个索引的大小约为150byte,这样当小文件比较多的时候,就会产生很多的索引文件,一方面会大量占用NameNode的内存空间,另一方面就是索引文件过大使得索引速度变慢。

返回顶部


※ HDFS小文件解决方案

小文件的优化无非以下几种方式:

(1)在数据采集的时候,就将小文件或小批数据合成大文件再上传HDFS。
(2)在业务处理之前,在HDFS上使用MapReduce程序对小文件进行合并。
(3)在MapReduce处理时,可采用CombineTextInputFormat提高效率。

【Hadoop】企业优化_hdfs_11


【Hadoop】企业优化_hdfs_12

返回顶部