背景
在线集群资源严重不足。可能会有添加磁盘、添加CPU、添加节点等操作。添加这些硬件资源后,我们的集群无法立即使用这些资源,需要修改集群的Yarn资源配置。 ,然后使其生效。
现有环境
服务器:12,内存=768G,物理=192,磁盘=144T
组件:-2.7.7,Hive-2.3.4,-220,-1.3.6,Sqoop- 1.4.7
分配政策
因为我们的版本是-2.7.7,一些默认配置是固定值,比如8G可用内存,8个可用CPU核心,如果调优需要我们配置更多。
官方 Yarn 参数配置:
未来版本(-3.0+)其实有自动检测硬件资源的机制,需要开启配置:yarn…–,然后自动计算资源配置,但是这个默认是禁用的,每个节点的可用内存配置yarn…-mb和CPU核数yarn…cpu-也会受到这个配置的影响。默认配置为-1,则可用内存为8G,CPU核数为8核。如果开启了对硬件资源的自动监控,其他配置无需配置即可忽略,简化了配置。
官方 Yarn 参数配置:
还有一个重要的配置 yarn..vmem-pmem-ratio ,意思是当服务器上的物理内存不足时,可以使用虚拟内存。默认是2.物理内存的1倍。
修改配置yarn-site.xml
修改yarn-site.xml,有则修改,没有则添加,这里我们设置单个节点的可用内存为30G,可用CPU核数为16个
yarn.nodemanager.resource.memory-mb
30720
每个节点可用内存,默认8192M(8G),这里设置30G
yarn.scheduler.minimum-allocation-mb
1024
单个任务可申请最少内存,默认1024MB
yarn.scheduler.maximum-allocation-mb
20480
单个任务可申请最大内存,默认8192M(8G),这里设置20G
yarn.app.mapreduce.am.resource.mb
2048
默认为1536。MR运行于YARN上时,为AM分配多少内存。默认值通常来说过小,建议设置为2048或4096等较大的值。
yarn.nodemanager.resource.cpu-vcores
16
默认为8。每个节点可分配多少虚拟核给YARN使用,通常设为该节点定义的总虚拟核数即可。
yarn.scheduler.maximum-allocation-vcores
32
分别为1/32,指定RM可以为每个container分配的最小/最大虚拟核数,低 于或高于该限制的核申请,会按最小或最大核数来进行分配。默认值适合 一般集群使用。
yarn.scheduler.minimum-allocation-vcores
1
分别为1/32,指定RM可以为每个container分配的最小/最大虚拟核数,低 于或高于该限制的核申请,会按最小或最大核数来进行分配。默认值适合 一般集>群使用。
yarn.nodemanager.vcores-pcores-ratio
2
每使用一个物理cpu,可以使用的虚拟cpu的比例,默认为2
yarn.nodemanager.vmem-pmem-ratio
5.2
物理内存不足时,使用的虚拟内存,默认是2.1,表示每使用1MB的物理内存,最多可以使用2.1MB的虚拟内存总量。
-site.xml
修改-site.xml,有则修改,无则添加
为单个任务设置内存资源,注意这里的值不能大于yarn..–mb上面对应的内存
mapreduce.map.memory.mb
2048
默认均为1024,调度器为每个map/reduce task申请的内存数。各Job也可以单独指定。
mapreduce.reduce.memory.mb
2048
默认均为1024,调度器为每个map/reduce task申请的内存数。各Job也可以单独指定。
集群有效分布
修改配置后,一定要将配置分发到其他集群节点,使用scp或xsync工具分发到其他节点,这里以分发到一个节点为例
cd /data/soft//-2.7.7/etc/
scp -r yarn-site.xml -site.xml :`pwd`
动态重启
为了不影响集群的使用,我们分别启动和停止Yarn。 Yarn 的服务主要有两个and,单独的启动和停止命令
yarn-.sh 停止 yarn-.sh 开始
yarn-.sh 停止 yarn-.sh 开始
根据集群节点一一执行以上命令,对应的节点执行对应的命令。通过这种方式,我们确保了集群资源的动态调优。
当然,如果单次重启比较麻烦,也可以执行Yarn的重启命令
stop-yarn.sh start-yarn.sh
对应的从节点可以独立启动和停止。
更多信息请在公众号平台搜索:玩家一号,本文编号:2004,回复即可获取。
暂无评论内容