yarn参数调节

scheduler设置:

单个容器(container)可申请的最小与最大内存,应用在运行申请内存时不能超过最大值,小于最小值则分配最小值

yarn.scheduler.minimum-allocation-mb 
yarn.scheduler.maximum-allocation-mb

单个任务可申请的最小/最大虚拟CPU个数(运行MapRedce作业时,每个Task最少可申请虚拟CPU个数,最多可申请的虚拟CPU个数)

yarn.scheduler.minimum-allocation-vcores 
yarn.scheduler.maximum-allocation-vcores

nodemanager设置:

每个节点可用的最大物理(虚拟)内存,默认是8192MB(2.1)。此数值可以用于计算container最大数目

yarn.nodemanager.resource.memory-mb
yarn.nodemanager.vmem-pmem-ratio

NodeManager总的可用CPU个数

yarn.nodemanager.resource.cpu-vcores

启动一个线程检查每个任务正使用的物理(虚拟)内存量,如果任务超出分配值,则直接将其杀掉,默认是true

 yarn.nodemanager.pmem-check-enabled
 yarn.nodemanager.vmem-check-enabled

CDH Yarn资源队列划分管理

yarn.scheduler.fair.user-as-default-queue :参数设置为false后,没有创建资源队列的用户,提交任务时,任务最重提交到默认队列(如果勾了这个,切没有创建对应用户名的资源池,任务直接提交失败)
yarn.scheduler.fair.allow-undeclared-pools  : 参数设置为ture后,应用程序在执行时会创建权重为1的对应用户名的资源池,这样起不到资源管控的效果,所以这里我们要设置为false

 Task 可使用的内存上限(单位:MB)及container的最大值,默认为 1024。如果Task 实际使用的资源量超过该值,则会被强制杀死

mapreduce.(map)reduce.memory.mb

task 可用的最多 cpu core 数目, 默认值: 1

mapreduce.map(reduce).cpu.vcores

java jvm 堆内存非堆内存的调整

mapreduce.reduce.java.opts='-Xmx5120m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/tmp/@taskid@.gc -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/@taskid@.dump' 
原文地址:https://www.cnblogs.com/zyanrong/p/14831960.html