① JobHistoryServer:管理已完成的Yarn任务。
历史任务的日志和执行时的各种统计信息同一由JobTracker管理,Yarn将管理历史任务的功能抽象成一独立实体JobHistoryServer。 ② WebAppProxyServer:任务执行时的Web页面代理。
通过使用代理,不仅进一步降低了ResourceManager的压力,还能降低Yarn受到的Web攻击。负责羁系详细MapReduce任务执行全过程,将从Container那边收集过的任务执行信息汇总并显示到一个Web界面上。 3、编程模板
ApplicationMaster 是一个可变动的部分,只要实现差异的ApplicationMaster,就可以实现差异的编程模式。
(1)容量调度算法CapacityScheduler 概述:
CapacityScheduler是一种多用户多任务调度策略,它以队列为单元分别任务,以Container为单元分配资源,它也是Hadoop 2.0默认的调度策略,为多个用户共享集群资源提供安全可靠的保障。
通过共建集群的方式,不光可以进步资源利用率,还能在须要时候使用更多的集群资源,同时,构造机构间共建集群也大大降低了运维成本。容量调度策略通过队列来分别资源,队列间关系类似于一棵多叉树,队列间一层层继续,根队列称为root队列,Yarn初次启动时默认启动队列为root.default队列。
容量调度算法特性:
① 多级队列:容量调度策略以队列来分别集群资源,差异机构可以在集群里新建差异队列。
② 容量确定性:规定某队列占用集群资源的上下限,可以或许确保即使其他队列用到其最高峰时,也能预留充足资源留给此队列。
③ 安全性:每个队列都有相应的访问控制列表ACL文件。
④ 弹性:通过设置队列额外资源使用量,可以或许让此队列使用超出规定的资源量。
⑤ 多用户:通过设置差异队列拥有资源的比例,制止某用户或某进程独占集群资源,实现多用户多任务调度。
⑥ 易操作性:主要包括及时配置和及时更改队列状态。 及时配置:管理员可以或许以安全的方式,在不制止集群的情况下,及时更新队列配置。
① 及时更改队列状态:管理员可以在不制止集群的情况下,将队列从运行状态切换成制止状态。Yarn可以管理用户权限和作业提交。
② 基于资源调度:Yarn支持资源密集型作业,作业在分配Container时其Container所包罗的资源量是肯定的,但Yarn允许此Container在执行时占用更多的资源,现在只支持内存。 管理接口:
① Web接口:yarn-site.xml指定使用容量调度策略。capacity-scheduler.xml配置全局多级队列和队列的ACL文件。mapred-site.xml配置客户端提交MapReduce任务时使用的队列。Hadoop-policy.xml配置全局ACL文件。
② Shell下令接口:$HADOOP_YARN_HOME/bin/yarn rmadmin –refreshQueues,管理员可以通过此下令在不制止集群的情况下,使多级队列的配置立即生效。 (2)公平调度策略FairScheduler 概述:
FairScheduler是一种允许多个Yarn任务公平使用集群资源的可插拔式调度策略。
从宏观上看,集群资源公平地为每一个任务所拥有,它不仅可以让短作业在公道的时间内完成,也制止了长作业恒久得不到执行的尴尬局面。 多级队列包括以下几个方面的内容。
① 默认队列:公平调度策略也通过队列来构造和管理任务,并且也支持多级队列,其队列之间为多叉树结构。
② 队列间权重配置:设置某队列资源权重,权重越大,获得资源的比例越大。
③ 队列内多调度策略:队列内部的调度策略是可配置的,默认为FairSharePolicy策略。
④ 队列下限:为每个队列设置资源下限值,大大进步集群资源利用率。
⑤ 支持多用户:通过多级队列可以将差异的用户分配到差异的队列里。
⑥ 访问控制列表ACL:管理员可以设置队列的ACL文件,严格控制用户访问。 接口:
① yarn-site.xml:设定属性yarn.resourcemanager.scheduler.classYarn启动公平调度策略,设置属性yarn.scheduler.fair.allocation.file来指定多级队列文件位置。
② fair-scheduler.xml:配置多级队列的文件,此文件名与位置是通过Yarn配置文件yarn-site.xml里yarn.scheduler.fair.allocation.file属性指定。
(四)Hadoop 2.0安全机制简介