Hadoop YARN的核心参数配置对于优化集群性能、管理资源分配以及确保作业顺利执行至关重要。以下是一些关键参数及其配置说明:
1. 资源管理器配置(ResourceManager)
- yarn.resourcemanager.resource-tracker.client.thread-count
- 作用: 控制ResourceManager中资源跟踪器的客户端线程数,影响客户端请求的处理能力。
- 配置示例: 无需单独配置,除非有特殊性能需求。
2. 调度器配置
- yarn.resourcemanager.scheduler.class
- 作用: 指定使用的资源调度器类,如CapacityScheduler或FairScheduler。
- 配置示例:
org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler
用于启用Fair Scheduler。
3. 应用程序管理配置
- yarn.app.mapreduce.am.resource.mb / yarn.app.mapreduce.am.command-opts
- 作用: 分别配置Application Master的内存大小和JVM选项,影响AM的运行性能。
- 配置示例:
yarn.app.mapreduce.am.resource.mb=1024
设置AM内存为1GB。
4. 容器资源配置
-
yarn.scheduler.minimum-allocation-mb / yarn.scheduler.maximum-allocation-mb
- 作用: 定义单个容器可申请的最小和最大物理内存量。
- 配置示例:
yarn.scheduler.minimum-allocation-mb=1024
和yarn.scheduler.maximum-allocation-mb=8192
分别设置最小1GB和最大8GB。
-
yarn.scheduler.minimum-allocation-vcores / yarn.scheduler.maximum-allocation-vcores
- 作用: 定义单个容器可申请的最小和最大虚拟CPU核数。
- 配置示例:
yarn.scheduler.minimum-allocation-vcores=1
和yarn.scheduler.maximum-allocation-vcores=32
。
5. NodeManager配置
-
yarn.nodemanager.resource.detect-hardware-capabilities
- 作用: 是否让YARN自动检测NodeManager所在主机的内存和CPU信息。
- 配置示例:
true
或false
。
-
yarn.nodemanager.resource.count-logical-processors-as-cores
- 作用: 是否将逻辑处理器(如超线程)当作物理CPU核数。
- 配置示例:
true
或false
。
-
yarn.nodemanager.resource.pcores-vcores-multiplier
- 作用: 如果希望将一个物理核心映射为多个虚拟核心,可以调整这个乘数。
- 配置示例:
1.0
表示不进行额外映射,2.0
表示每个物理核心视为2个虚拟核心。
-
yarn.nodemanager.resource.memory-mb
- 作用: 指定NodeManager可以使用的总内存量。
- 配置示例: 根据物理内存配置,如
8192
表示8GB。
6. 日志聚合配置
- yarn.log-aggregation-enable
- 作用: 控制是否开启日志聚合功能。
- 配置示例:
true
或false
。
注意事项
- 配置时需根据集群的具体硬件配置、预期工作负载以及应用程序的需求来调整参数。
- 修改配置后,需要重启YARN相关服务(ResourceManager和NodeManager)使新配置生效。
- 测试和监控是调整配置过程中不可或缺的部分,以确保优化效果符合预期。