Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。
Yarn基本架构
YARN主要由ResourceManager NodeManager ApplicationMaster 和 Container等组件构成
Yarn工作机制(job作业提交全过程)
资源调度器
Hadoop作业调度器主要有三种:FIFO,Capacity Scheduler(容量调度器)和Fair Scheduler(公平调度器)。Hadoop2.7.2默认的资源调度器是Capacity Scheduler。
yarn-default.xml
<property>
<description>The class to use as the resourcescheduler.</description>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
</property>
FIFO调度器
Capacity Scheduler 容量调度器
Fair Scheduler(公平调度器)
任务推测执行
1.作业完成时间取决于最慢的任务完成时间
一个作业由若干个Map任务和Reduce任务构成。因硬件老化,软件Bug等,某些任务可能运行非常慢
2.推测执行机制
发现拖后腿的任务,比如某个任务运行速度远慢于任务平均速度。为拖后腿任务启动一个备份任务,同时运行。谁先运行完,则采用谁的结果。
3.执行推测任务的前提条件
1)每个Task只能有一个备份任务
2)当前Job已完成的Task必须不小于0.05(5%)
3)开启推测执行参数设置。mapred-size.xml文件中默认是打开的
<property>
<name>mapreduce.map.speculative</name>
<value>true</value>
<description>If true, then multiple instances of some maptasks may be executed in paralled.</description>
</property>
<property>
<name>mapreduce.reduce.speculative</name>
<value>true</value>
If true, then multiple instances of some reducetasks may be executed in paralled.
</property>
4.不能启用推测执行机制情况
1)任务间存在严重的负载倾斜
2)特殊任务,比如任务向数据库中写数据
5.算法原理













网友评论