Yarn詳解
1.Yarn架構(gòu)設計(mr的提交到Y(jié)arn的流程)
RM:調(diào)度器 + APPS Manager
NM:
Container(容器):
1個NM --> 多個容器 --> 只能運行一個task
APP Master | map task | reduce task
1臺機器64G內(nèi)存 16核 --> 8個容器 --> 8G + 2核
1臺機器64G內(nèi)存:DN + NM = 64*(75%~85%)
數(shù)據(jù)本地化
生產(chǎn):
DN:4G
NM:50G
2.調(diào)優(yōu)
NM:
yarn.nodemanager.resource.memory-mb:50 * 1024MB (生產(chǎn)調(diào))
container:memory+cpu
Memory:
任務計算最小是1024MB:
yarn.scheduler.minimum-allocation-mb: 1024 1G-->2G-->3G (生產(chǎn)調(diào))
任務計算最多是8192MB,如果超過就kill:
yarn.scheduler.maximum-allocation-mb: 8192<=50G (生產(chǎn)調(diào))
每次增加2048M传透,默認是1024MB:
yarn.scheduler.increment-allocation-mb: 2048 (CDH平臺)
增加到最大時執(zhí)行kill呀非,默認為true;
yarn.nodemanager.pmem-check-enabled: true
yarn.nodemanager.vmem-pmem-ratio 2.1 使用1G內(nèi)存 2.1虛擬內(nèi)存
yarn.nodemanager.vmem-check-enabled true
SWAP:硬盤做的,說白了芳绩,就是拿一個比如20G的盤作為內(nèi)存
參數(shù):http://blog.csdn.net/javastart/article/details/51375287
高度計算
1.不允許計算慢葱她,允許掛掉:swap 沒有
2.允許計算慢,不允許任務掛掉:swap 有
vm.swappiness=0-100
0:不是禁用辕羽,說明調(diào)用swap的積極性是最差的
10:調(diào)用swap的積極性是稍微好點
100:太積極
生產(chǎn):選擇2+vm.swappiness=10
CPU:
yarn.nodemanager.resource.cpu-vcores -1
yarn.scheduler.minimum-allocation-vcores 1
yarn.scheduler.maximum-allocation-vcores 4<=32 (生產(chǎn)調(diào))
vcore:虛擬核
1個物理核為2個虛擬核 CDH有個參數(shù)逛尚,一般默認就行
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.項目:
開發(fā)
測試 開發(fā)/測試隊列
部署生產(chǎn) 生產(chǎn)隊列
就是一套集群環(huán)境
2.多個項目:
項目1生產(chǎn) 隊列1 資源少點
項目2生產(chǎn) 隊列2 資源多點
就是一套集群環(huán)境
開發(fā)和測試就是另外一套
默認:default
調(diào)度:
計算調(diào)度
公平調(diào)度 Fair (生產(chǎn))
http://dongxicheng.org/mapreduce-nextgen/hadoop-yarn-configurations-fair-scheduler/
【來自@若澤大數(shù)據(jù)】