博客
关于我
CDH集群之YARN性能调优
阅读量:797 次
发布时间:2023-04-04

本文共 3967 字,大约阅读时间需要 13 分钟。

CDH集群YARN调优配置指南

本文将围绕CDH集群的YARN调优配置进行详细讨论,重点涵盖CPU和内存的优化配置。YARN作为Hadoop的资源管理框架,以容器化的形式分配资源,任务在容器内部执行。本文将从集群配置、YARN配置、MapReduce配置等多个方面展开分析。

集群配置

工作主机配置

根据提供的主机配置参数表,每台主机配置如下:

主机 组件 数量 大小 总计 描述
RAM 256G 256G 内存大小
CPU 4 6 48 总CPU核数
HyperThreading CPU YES 超线程CPU,使操作系统认为处理器的核心数是实际核心数的2倍
网络 2 1G 2G 网络带宽

工作主机安装组件配置

根据每台主机的资源配置,服务分配如下表所示:

服务 类别 CPU核数 内存(MB) 描述
操作系统 Overhead 1 8192 为操作系统分配1核8G内存
其它服务 Overhead 0 0 非CDH集群、非操作系统占用的资源
Cloudera Manager agent Overhead 1 1024 分配1核1G
HDFS DataNode CDH 1 1024 默认1核1G
YARN NodeManager CDH 1 1024 默认1核1G
Impala daemon CDH 0 0 可选服务,建议至少为Impala daemon分配16G内存
Hbase RegionServer CDH 0 0 可选服务,建议12~16G内存
Solr Server CDH 0 0 可选服务,最低1G内存
Kudu Server CDH 0 0 可选服务,kudu Tablet server最低1G内存
Available Container Resources 44 250880 剩余分配给YARN的container

container资源分配参数设置为:

-
Physical Cores to Vcores Multiplier:每个container的CPU core的并发线程数,本文设置为1-
YARN Available Vcores:YARN可用的CPU核数=Available Container Resources * Physical Cores to Vcores Multiplier,即为44-
YARN Available Memory:250880

集群大小

集群的工作节点个数为10台。

YARN配置

YARN NodeManager配置属性

配置参数 描述
yarn.nodemanager.resource.cpu-vcores 44 yarn 的nodemanager分配44核,每台节点剩余的CPU
yarn.nodemanager.resource.memory-mb 250800 分配的内存大小,每台节点剩余的内存

YARN container配置

配置参数 描述
yarn.scheduler.minimum-allocation-vcores 1 分配给container的最小vcore个数
yarn.scheduler.maximum-allocation-vcores 44 分配给container的最大vcore数
yarn.scheduler.increment-allocation-vcores 1 容器虚拟CPU内核增量
配置参数 描述
yarn.scheduler.minimum-allocation-mb 1024 分配给container的最小内存大小,为1G
yarn.scheduler.maximum-allocation-mb 250880 分配给container的最大内存,等于245G,即为每台节点剩余的最大内存
yarn.scheduler.increment-allocation-mb 512 容器内存增量,默认512M

验证YARN配置

登录YARN的resourcemanager的WEBUI:http://

:8088/,验证'Memory Total'与'Vcores Total',如果节点都正常,那么Vcores Total应该为440,Memory应该为2450G,即250800/1024*10

MapReduce配置

ApplicationMaster配置

配置参数 取  值 描述
yarn.app.mapreduce.am.resource.cpu-vcores 1 ApplicationMaster 的虚拟CPU内核数
yarn.app.mapreduce.am.resource.mb 1024 ApplicationMaster的物理内存要求(MiB)
yarn.app.mapreduce.am.command-opts 800 传递到 MapReduce ApplicationMaster 的 Java 命令行参数,AM Java heap 大小,为800M

Map task配置

配置参数 描述
mapreduce.map.cpu.vcores 1 分配给map task的vcore数
mapreduce.map.memory.mb 1024 分配给map task的内存数,1G
mapreduce.task.io.sort.mb 400 I/O 排序内存缓冲 (MiB),默认256M,一般不用修改

Reduce task配置

配置参数 描述
mapreduce.reduce.cpu.vcores 1 分配给reduce task的vcore数
mapreduce.reduce.memory.mb 1024 分配给reduce task的内存数,1G

MapReduce配置合理性检查

  • Application Master配置的合理性检查

  • yarn.scheduler.minimum-allocation-vcores <=  yarn.app.mapreduce.am.resource.cpu-vcores<= yarn-scheduler.maximum-allocation-vcores

  • yarn.scheduler.minimum-allocation-mb <= yarn.app.mapreduce.am.resource.cpu-vcores <= yarn.scheduler.maximum-allocation-mb  

  • Java Heap大小是container大小的75%~90%: 太低会造成资源浪费, 太高会造成OOM
  • Reduce Task配置的合理性检查

  • yarn.scheduler.minimum-allocation-vcores <= mapreduce.map.cpu.vcores <= yarn-scheduler.maximum-allocation-vcores

  • yarn.scheduler.minimum-allocation-mb <= mapreduce.map.memory.mb <= yarn.scheduler.maximum-allocation-mb

  • Spill/Sort内存为每个task堆内存的40%~60%

YARN和MapReduce配置参数总结

YARN/MapReduce参数配置 描述
yarn.nodemanager.resource.cpu-vcores 分配给container的虚拟cpu数
yarn.nodemanager.resource.memory-mb 分配给container的内存大小
yarn.scheduler.minimum-allocation-vcores 分配给container的最小虚拟cpu数
yarn.scheduler.maximum-allocation-vcores 分配给container的最大虚拟cpu数
yarn.scheduler.increment-allocation-vcores 分配给container的递增虚拟cpu数
yarn.scheduler.minimum-allocation-mb 分配给container的最小内存大小
yarn.scheduler.maximum-allocation-mb 分配给container的最大内存
yarn.scheduler.increment-allocation-mb 分配给container的递增内存大小
yarn.app.mapreduce.am.resource.cpu-vcores ApplicationMaste的虚拟cpu数
yarn.app.mapreduce.am.resource.mb ApplicationMaste的内存大小
mapreduce.map.cpu.vcores map task的虚拟CPU数
mapreduce.map.memory.mb map task的内存大小
mapreduce.reduce.cpu.vcores reduce task的虚拟cpu数
mapreduce.reduce.memory.mb reduce task的内存大小
mapreduce.task.io.sort.mb I/O排序内存大小

note:在CDH5.5或者更高版本中,参数mapreduce.map.java.opts, mapreduce.reduce.java.opts, yarn.app.mapreduce.am.command-opts会基于container堆内存的比例进行自动配置

转载地址:http://bnrfk.baihongyu.com/

你可能感兴趣的文章
mac mysql 进程_Mac平台下启动MySQL到完全终止MySQL----终端八步走
查看>>
Mac OS 12.0.1 如何安装柯美287打印机驱动,刷卡打印
查看>>
MangoDB4.0版本的安装与配置
查看>>
Manjaro 24.1 “Xahea” 发布!具有 KDE Plasma 6.1.5、GNOME 46 和最新的内核增强功能
查看>>
mapping文件目录生成修改
查看>>
MapReduce程序依赖的jar包
查看>>
mariadb multi-source replication(mariadb多主复制)
查看>>
MariaDB的简单使用
查看>>
MaterialForm对tab页进行隐藏
查看>>
Member var and Static var.
查看>>
memcached高速缓存学习笔记001---memcached介绍和安装以及基本使用
查看>>
memcached高速缓存学习笔记003---利用JAVA程序操作memcached crud操作
查看>>
Memcached:Node.js 高性能缓存解决方案
查看>>
memcache、redis原理对比
查看>>
memset初始化高维数组为-1/0
查看>>
Metasploit CGI网关接口渗透测试实战
查看>>
Metasploit Web服务器渗透测试实战
查看>>
Moment.js常见用法总结
查看>>
MongoDB出现Error parsing command line: unrecognised option ‘--fork‘ 的解决方法
查看>>
mxGraph改变图形大小重置overlay位置
查看>>