Yarn详解

Yarn详解 1.Yarn架构设计(mr的提交到Yarn的流程)

RM:调度器 + APPS Manager NM: Container(容器): 1个NM --> 多个容器 --> 只能运行一个task APP Master | map task | reduce task 1台机器64G内存16核 --> 8个容器 --> 8G + 2核1台机器64G内存:DN + NM = 64*(75%~85%) 数据本地化 生产: DN:4G NM:50G

2.调优
NM: yarn.nodemanager.resource.memory-mb:50 * 1024MB(生产调) container:memory+cpu

Memory:
任务计算最小是1024MB: yarn.scheduler.minimum-allocation-mb:1024 1G-->2G-->3G(生产调) 任务计算最多是8192MB,如果超过就kill: yarn.scheduler.maximum-allocation-mb:8192<=50G(生产调) 每次增加2048M,默认是1024MB: yarn.scheduler.increment-allocation-mb: 2048(CDH平台) 增加到最大时执行kill,默认为true; yarn.nodemanager.pmem-check-enabled:trueyarn.nodemanager.vmem-pmem-ratio2.1使用1G内存 2.1虚拟内存 yarn.nodemanager.vmem-check-enabled trueSWAP:硬盘做的,说白了,就是拿一个比如20G的盘作为内存 参数:http://blog.csdn.net/javastart/article/details/51375287高度计算 1.不允许计算慢,允许挂掉:swap 没有 2.允许计算慢,不允许任务挂掉:swap 有vm.swappiness=0-100 0:不是禁用,说明调用swap的积极性是最差的 10:调用swap的积极性是稍微好点 100:太积极生产:选择2+vm.swappiness=10

CPU:
yarn.nodemanager.resource.cpu-vcores-1 yarn.scheduler.minimum-allocation-vcores1 yarn.scheduler.maximum-allocation-vcores4<=32(生产调)vcore:虚拟核 1个物理核为2个虚拟核CDH有个参数,一般默认就行http://blog.itpub.net/30089851/viewspace-2127851/ http://blog.itpub.net/30089851/viewspace-2127850/

JVM系列:
http://blog.itpub.net/30089851/cid-180723-abstract-1/

3.Yarn的常用命令
yarn application -list yarn application -kill application_1513862674371_0003(App的id)

4.queue:队列 见CDH (补充)
需求: 1.项目: 开发 测试开发/测试队列 部署生产生产队列 就是一套集群环境 2.多个项目: 项目1生产队列1 资源少点 项目2生产队列2 资源多点 就是一套集群环境开发和测试就是另外一套 默认:default调度: 计算调度 公平调度 Fair (生产) http://dongxicheng.org/mapreduce-nextgen/hadoop-yarn-configurations-fair-scheduler/

【Yarn详解】【来自@若泽大数据】

    推荐阅读