Hadoop MapReduce 调优参数

文章目录

      • [MapReduce 调优参数详解](#MapReduce 调优参数详解)
      • [MapReduce 调优参数一键复制](#MapReduce 调优参数一键复制)

前言:

下列参数基于 hadoop v3.1.3 版本,共三台服务器,配置都为 4 核,4G 内存。

MapReduce 调优参数详解

这个参数定义了在 Reduce 阶段同时进行的拷贝操作的数量,用于从 Map 任务获取数据,增加此值可以加速 Shuffle 阶段的执行。

xml 复制代码
<property>
    <name>mapreduce.reduce.shuffle.parallelcopies</name>
    <value>10</value>
</property>

默认值: 5
建议配置: 10

定义了在 Reduce 阶段输入数据缓冲区的百分比,缓冲更多的数据可以减少磁盘 IO。

xml 复制代码
<property>
    <name>mapreduce.reduce.shuffle.input.buffer.percent</name>
    <value>0.8</value>
</property>

默认值: 0.7
建议配置: 0.8

定义了在 Reduce 阶段执行 merge 操作的阈值,决定何时将中间数据合并到较大的文件中以减少文件数目。

xml 复制代码
<property>
    <name>mapreduce.reduce.shuffle.merge.percent</name>
    <value>0.75</value>
</property>

默认值: 0.66
建议配置: 0.75

设置 Map 任务的 Java 堆内存大小。

xml 复制代码
<property>
    <name>mapreduce.map.java.opts</name>
    <value>-Xmx2048m</value>
</property>

默认值: 未指定(取决于集群的配置)。
建议配置: -Xmx2048m,将堆内存大小设置为 2G

设置 Reduce 任务的 Java 堆内存大小。

xml 复制代码
<property>
    <name>mapreduce.reduce.java.opts</name>
    <value>-Xmx2048m</value>
</property>

默认值: 未指定(取决于集群的配置)。
建议配置: -Xmx2048m,将堆内存大小设置为 2G

定义了每个 Map 任务使用的虚拟 CPU 核心数量。

xml 复制代码
<property>
    <name>mapreduce.map.cpu.vcores</name>
    <value>2</value>
</property>

默认值: 1
建议配置: 2

定义了每个 Reduce 任务使用的虚拟 CPU 核心数量。

xml 复制代码
<property>
    <name>mapreduce.reduce.cpu.vcores</name>
    <value>2</value>
</property>

默认值: 1
建议配置: 2

定义了 Map 任务最大的重试次数。

xml 复制代码
<property>
    <name>mapreduce.map.maxattempts</name>
    <value>4</value>
</property>

默认值: 4
建议配置: 4(默认值),保持默认值即可。

定义了 Reduce 任务最大的重试次数。

xml 复制代码
<property>
    <name>mapreduce.reduce.maxattempts</name>
    <value>4</value>
</property>

默认值: 4
建议配置: 4(默认值)。保持默认值即可。

定义了在 Reduce 阶段开始之前要完成的 Map 任务的比例。

xml 复制代码
<property>
    <name>mapreduce.job.reduce.slowstart.completedmaps</name>
    <value>0.2</value>
</property>

默认值: 0.05
建议配置: 0.2。由于集群只有三台机器,提高此值有助于确保在进行 Reduce 阶段之前有足够的数据可供处理。

定义了任务的最大执行时间(以毫秒为单位)。如果任务执行超过此时间,将被认为失败。

xml 复制代码
<property>
    <name>mapreduce.task.timeout</name>
    <value>600000</value>
</property>

默认值: 600000(10分钟)
建议配置: 600000(默认值)。可以根据任务的复杂性和数据量适当调整。

定义了在 Map 阶段进行排序操作时的内存缓冲区大小(以MB为单位)。

xml 复制代码
<property>
    <name>mapreduce.task.io.sort.mb</name>
    <value>200</value>
</property>

默认值: 100
建议配置: 200。适当增加这个值可以提高排序的性能,但不要超过可用内存的一半。

定义了在进行 Map 阶段排序操作时,达到多少内存使用比例时会触发溢写(spill)操作将数据写入磁盘。

xml 复制代码
<property>
    <name>mapreduce.map.sort.spill.percent</name>
    <value>0.85</value>
</property>

默认值: 0.8
建议配置: 0.85

对文件进行排序时一次合并的流数,这决定了打开文件句柄的数量。

xml 复制代码
<property>
    <name>mapreduce.task.io.sort.factor</name>
    <value>20</value>
</property>

默认值: 10
建议配置: 20

定义了每个 Map 任务使用的内存量(以MB为单位)。

xml 复制代码
<property>
    <name>mapreduce.map.memory.mb</name>
    <value>2048</value>
</property>

默认值: 1024
建议配置: 2048

定义了每个 Reduce 任务使用的内存量(以MB为单位)。

xml 复制代码
<property>
    <name>mapreduce.reduce.memory.mb</name>
    <value>2048</value>
</property>

默认值: 1024
建议配置: 2048

MapReduce 调优参数一键复制

下列配置参数基于 hadoop v3.1.3 版本,共三台服务器,配置都为 4 核,4G 内存,上方可以看相关参数的详细解释。

xml 复制代码
	<property>
	    <name>mapreduce.reduce.shuffle.parallelcopies</name>
	    <value>10</value>
	</property>
	
	<property>
	    <name>mapreduce.reduce.shuffle.input.buffer.percent</name>
	    <value>0.8</value>
	</property>
	
	<property>
	    <name>mapreduce.reduce.shuffle.merge.percent</name>
	    <value>0.75</value>
	</property>
	
	<property>
	    <name>mapreduce.map.java.opts</name>
	    <value>-Xmx2048m</value>
	</property>
	
	<property>
	    <name>mapreduce.reduce.java.opts</name>
	    <value>-Xmx2048m</value>
	</property>
	
	<property>
	    <name>mapreduce.map.cpu.vcores</name>
	    <value>2</value>
	</property>
	
	<property>
	    <name>mapreduce.reduce.cpu.vcores</name>
	    <value>2</value>
	</property>
	
	<property>
	    <name>mapreduce.map.maxattempts</name>
	    <value>4</value>
	</property>
	
	<property>
	    <name>mapreduce.reduce.maxattempts</name>
	    <value>4</value>
	</property>
	
	<property>
	    <name>mapreduce.job.reduce.slowstart.completedmaps</name>
	    <value>0.2</value>
	</property>
	
	<property>
	    <name>mapreduce.task.timeout</name>
	    <value>600000</value>
	</property>
	
	<property>
	    <name>mapreduce.task.io.sort.mb</name>
	    <value>200</value>
	</property>
	
	<property>
	    <name>mapreduce.map.sort.spill.percent</name>
	    <value>0.85</value>
	</property>
	
	<property>
	    <name>mapreduce.task.io.sort.factor</name>
	    <value>20</value>
	</property>
	
	<property>
	    <name>mapreduce.map.memory.mb</name>
	    <value>2048</value>
	</property>
	
	<property>
	    <name>mapreduce.reduce.memory.mb</name>
	    <value>2048</value>
	</property>
相关推荐
隐语SecretFlow5 小时前
【隐语SecretFlow】由蚂蚁集团牵头制定的“隐私保护计算安全分级”IEEE国际标准已正式发布!
大数据·网络·安全
微三云、小叶9 小时前
裂变速度提升300%!279模式如何盘活一个私域商城
大数据·软件开发·商业模式·小程序商城·本地生活·商业思维
还是大剑师兰特10 小时前
Hadoop面试题及详细答案 110题 (106-110)-- Hadoop高级与实战
大数据·hadoop·分布式
努力成为一个程序猿.11 小时前
【问题排查】hadoop-shaded-guava依赖问题
大数据·hadoop·spark
达芬奇科普12 小时前
俄罗斯全面禁止汽油出口对俄、欧、中能源市场的多维影响分析
大数据·人工智能
RE-190113 小时前
《深入浅出统计学》学习笔记(二)
大数据·数学·概率论·统计学·数理统计·知识笔记·深入浅出
yumgpkpm16 小时前
CMP(类ClouderaCDP7.3(404次编译) )完全支持华为鲲鹏Aarch64(ARM)使用 AI 优化库存水平、配送路线的具体案例及说明
大数据·人工智能·hive·hadoop·机器学习·zookeeper·cloudera
临风赏月17 小时前
Hudi、Iceberg、Delta Lake、Paimon四种数据湖的建表核心语法
大数据
极客数模19 小时前
【浅析赛题,一等奖水平】思路模型数据相关资料!2025 年“大湾区杯”粤港澳金融数学建模竞赛B 题 稳定币的综合评价与发展分析~
大数据·算法·数学建模·金融·数据挖掘·图论·1024程序员节
临风赏月19 小时前
Hudi、Iceberg、Delta Lake、Paimon 建表语法与场景示例
大数据