☆☆☆★☆☆☆

唯有努力才能活成自己想要活成的样子

导航

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' 

这个参数是指reduce每次fetceh数据的时候,达到reduce jvm内存的百分之多少的时候,就把数据写入到磁盘;默认是0.25 可以在代码里面设置

  mapreduce.reduce.shuffle.memory.limit.percent=0.1

reduce进程启动数据copy线程(Fetcher)最大的时间段

mapreduce.reduce.shuffle.read.timeout(default180000秒)

shuffile在reduce内存中的数据最多使用内存量为:JVM的heapsize的70%

mapreduce.reduce.shuffle.input.buffer.percent(default 0.7f

内存到磁盘merge的限度阈值

mapreduce.reduce.shuffle.merge.percent(default0.66

保存map输出文件的堆内存比例

mapreduce.reduce.input.buffer.percent

 

posted on 2021-05-31 16:21  Yr-Zhang  阅读(404)  评论(0编辑  收藏  举报