Hadoop/MapReduce参数调优
Hadoop性能优化涉及以下几个方面:
1. CPU利用率
2. 内存占用情况
3. 磁盘I/O
4. 网络流量
与工作负载相关的Hadoop性能优化需要关注以下三个方面:系统硬件、系统软件、Hadoop基础设施组件配置和调优。系统管理员可以通过各种配置选项对Hadoop集群进行优化。在建立和维护Hadoop集群时,Hadoop可以根据用户自行添加的参数信息进行配置,可以通过对安装完成后自动生成的配置信息进行默认设置。
配置选项主要分为一下两类:
一类是默认配置文件,包括core-default.xml、hdfs-default.xml、mapred-default.xml。
另一类是站点特定配置文件,包括core-site.xml、hdfs-site.xml、mapred-site.xml。该类中有大量变量可供管理员进行配置以满足系统的需要。
(1) mapred-site.xml配置文件
该配置文件对提高Mapreduce性能有关键作用,包含了对CPU、内存、磁盘I/O和网络的相关配置项。
与CPU相关的参数
变量名称 |
描述 |
默认值 |
mapred.tasktracker.map.tasks.maximum |
该变量用来设置TaskTracker同时运行的map任务最大数目 |
2 |
mapred.tasktracker.reduce.tasks.maximum |
该变量用来设置TaskTracker同时运行的reduce任务最大数目 |
2 |
该参数设置需要考虑TaskTracker资源利用率,以及运行作业是不是CPU密集型作业。即该参数的配置不仅要考虑硬件的配置,还要考虑作业的调度模式。如果是实用的fair的调度模式,map和reduce的并发数可以设置为相同,没有问题,但是如果是FIFO模式,即作业是一个串行的任务,在reduce任务可以运行之前,需要等待所有map任务完成,那么map或是reduce阶段,CPU的核数可能没有得到充分的利用,FIFO模式下,应尽量配置的map并发数量多于redcue并发数量,而且该参数在不同的任务节点上可以配置不同。