• Hadoop MapReduce 调优参数


    前言:

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

    MapReduce 调优参数详解

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

    <property>
        <name>mapreduce.reduce.shuffle.parallelcopiesname>
        <value>10value>
    property>
    
    • 1
    • 2
    • 3
    • 4

    默认值: 5
    建议配置: 10


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

    <property>
        <name>mapreduce.reduce.shuffle.input.buffer.percentname>
        <value>0.8value>
    property>
    
    • 1
    • 2
    • 3
    • 4

    默认值: 0.7
    建议配置: 0.8


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

    <property>
        <name>mapreduce.reduce.shuffle.merge.percentname>
        <value>0.75value>
    property>
    
    • 1
    • 2
    • 3
    • 4

    默认值: 0.66
    建议配置: 0.75


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

    <property>
        <name>mapreduce.map.java.optsname>
        <value>-Xmx2048mvalue>
    property>
    
    • 1
    • 2
    • 3
    • 4

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


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

    <property>
        <name>mapreduce.reduce.java.optsname>
        <value>-Xmx2048mvalue>
    property>
    
    • 1
    • 2
    • 3
    • 4

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


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

    <property>
        <name>mapreduce.map.cpu.vcoresname>
        <value>2value>
    property>
    
    • 1
    • 2
    • 3
    • 4

    默认值: 1
    建议配置: 2


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

    <property>
        <name>mapreduce.reduce.cpu.vcoresname>
        <value>2value>
    property>
    
    • 1
    • 2
    • 3
    • 4

    默认值: 1
    建议配置: 2


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

    <property>
        <name>mapreduce.map.maxattemptsname>
        <value>4value>
    property>
    
    • 1
    • 2
    • 3
    • 4

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


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

    <property>
        <name>mapreduce.reduce.maxattemptsname>
        <value>4value>
    property>
    
    • 1
    • 2
    • 3
    • 4

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


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

    <property>
        <name>mapreduce.job.reduce.slowstart.completedmapsname>
        <value>0.2value>
    property>
    
    • 1
    • 2
    • 3
    • 4

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

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

    <property>
        <name>mapreduce.task.timeoutname>
        <value>600000value>
    property>
    
    • 1
    • 2
    • 3
    • 4

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

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

    <property>
        <name>mapreduce.task.io.sort.mbname>
        <value>200value>
    property>
    
    • 1
    • 2
    • 3
    • 4

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


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

    <property>
        <name>mapreduce.map.sort.spill.percentname>
        <value>0.85value>
    property>
    
    • 1
    • 2
    • 3
    • 4

    默认值: 0.8
    建议配置: 0.85


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

    <property>
        <name>mapreduce.task.io.sort.factorname>
        <value>20value>
    property>
    
    • 1
    • 2
    • 3
    • 4

    默认值: 10
    建议配置: 20

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

    <property>
        <name>mapreduce.map.memory.mbname>
        <value>2048value>
    property>
    
    • 1
    • 2
    • 3
    • 4

    默认值: 1024
    建议配置: 2048

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

    <property>
        <name>mapreduce.reduce.memory.mbname>
        <value>2048value>
    property>
    
    • 1
    • 2
    • 3
    • 4

    默认值: 1024
    建议配置: 2048

    MapReduce 调优参数一键复制

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

    	<property>
    	    <name>mapreduce.reduce.shuffle.parallelcopiesname>
    	    <value>10value>
    	property>
    	
    	<property>
    	    <name>mapreduce.reduce.shuffle.input.buffer.percentname>
    	    <value>0.8value>
    	property>
    	
    	<property>
    	    <name>mapreduce.reduce.shuffle.merge.percentname>
    	    <value>0.75value>
    	property>
    	
    	<property>
    	    <name>mapreduce.map.java.optsname>
    	    <value>-Xmx2048mvalue>
    	property>
    	
    	<property>
    	    <name>mapreduce.reduce.java.optsname>
    	    <value>-Xmx2048mvalue>
    	property>
    	
    	<property>
    	    <name>mapreduce.map.cpu.vcoresname>
    	    <value>2value>
    	property>
    	
    	<property>
    	    <name>mapreduce.reduce.cpu.vcoresname>
    	    <value>2value>
    	property>
    	
    	<property>
    	    <name>mapreduce.map.maxattemptsname>
    	    <value>4value>
    	property>
    	
    	<property>
    	    <name>mapreduce.reduce.maxattemptsname>
    	    <value>4value>
    	property>
    	
    	<property>
    	    <name>mapreduce.job.reduce.slowstart.completedmapsname>
    	    <value>0.2value>
    	property>
    	
    	<property>
    	    <name>mapreduce.task.timeoutname>
    	    <value>600000value>
    	property>
    	
    	<property>
    	    <name>mapreduce.task.io.sort.mbname>
    	    <value>200value>
    	property>
    	
    	<property>
    	    <name>mapreduce.map.sort.spill.percentname>
    	    <value>0.85value>
    	property>
    	
    	<property>
    	    <name>mapreduce.task.io.sort.factorname>
    	    <value>20value>
    	property>
    	
    	<property>
    	    <name>mapreduce.map.memory.mbname>
    	    <value>2048value>
    	property>
    	
    	<property>
    	    <name>mapreduce.reduce.memory.mbname>
    	    <value>2048value>
    	property>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
  • 相关阅读:
    第08章 中文分词
    OD机考真题:MELON的难题
    常用的POST请求和GET请求
    【无标题】
    8路光栅尺磁栅尺编码器或16路高速DI脉冲信号转Modbus TCP网络模块 YL99-RJ45
    Centos7下通过Docker安装并配置MINIO和NextCloud
    数据结构题型11-顺序队列
    k8s 资源管理
    就在刚刚,雷军又做了个10亿的公司
    ObjectMapper
  • 原文地址:https://blog.csdn.net/weixin_46389691/article/details/132589100