1.yarn架构
2.yarn执行流程
-
用户向Yarn的RM提交应用程序,其中包括
ApplicationMaster程序,启动ApplicationMaster命令等
2.RM首先为该app程序分配第一个container容器,并与对应的NM通信,要求NM在这个Container中启动应用程序的application master
3.App master首先向Apps manager注册,这样的话,我们就可以通过web 8088,查看应用程序的运行状态,且监控它的运行状态
4.ApplicationMaster向Resource Scheduler申请和领取资源
5.一旦ApplicationMaster申请到资源后,便与对应的NM通信,要求它启动任务
6.NM节点启动container容器,运行task任务
7.各个容器的任务,通过rpc向app master汇报自己的状态和进度,以让APP master随时掌握各个任务的运行状态,从而在任务失败时 重启任务。
那么用户可以通过web界面实时查看应用的当前运行状态
8.app运行完成后,app master向 apps manager注销并关闭
3.调优
0)Container调优
定义:
Container:容器 Yarn的资源的抽象,
封装了某个节点的多维度资源,如内存 cpu,磁盘,网络
当AM向RM申请资源时,RM为AM返回的资源就是使用container来标识
1)例如:
48G内存:
25%给Linux
75%给大数据进程 : 36G内存
DN: 4G 设置:hadoop-env.sh 重启生效
NM: 2G 设置:yarn-env.sh 重启生效
还剩: 36-4-2=30G 是给容器的
一大瓶装的29L
小瓶的规格29L 1瓶 1个container
小瓶的规格8L 3瓶 3个container 33.3
小瓶的规格3L 10瓶 10个container 10
内存:
yarn.nodemanager.resource.memory-mb 30G--总内存
yarn.scheduler.minimum-allocation-mb 2G--最小内存(生产上)
yarn.scheduler.maximum-allocation-mb 30G--最大内存(一般==总内存)
2) 数据本地化:DN和NM在一个节点上
3)Vcore(虚拟core):
如:根据设置core:VCore=1:2 比例 把物理内存虚拟化出2*Core个Vcore
4.yarn调度器
1).FIFO:先进先出
2).Capacity:计算
3).Fair:公平(生产上使用)
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31558266/viewspace-2216342/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31558266/viewspace-2216342/