hadoop之yarn

YARN被引入Hadoop 2,最初是为了改善MapReduce 的实现,但它具有足够的通用性,同样可以支持其他的分布式计算模式。
YARN提供请求和使用集群资源的API,但这些API很少直接用于用户代码。相反,用户代码中用的是分布式计算框架提供的更高层API,这些API建立YARN之上且向用户隐藏了资源管理细节。
在这里插入图片描述
yarn中的调度:
YARN调度器的工作就是根据既定策略为应用分配资源
分别为:FIFO调度器(FIFOScheduler),容量调度器(CapacityScheduler)和公平调度器(FairScheduler)
FIFO调度器:队列排序,先进先出。简单易懂,优点:不需要任何配置,但不适合共享集群。缺点:小作业一直被堵塞,知道大作业完成。
容量调度器:一个独立的专门队列保证小作业已提交就可以启动。由于队列容量是为那个队列中的作业保留的。因此这种策略是以整个集群的利用率为代价的。这意味着与使用FIFO调度器相比,大作业执行时间要长。(同时执行,不用等)。
公平调度器(不看大小,只看数量):不需要预留一定量的资源,因为调度器会在所有运行的作业之间动态平衡资源。第一个(大)作业启动时,它也是唯一运行的作业,因而获得集群中所有的资源。当第二个(小)作业启动时,它被分配到集群的一半资源,这样每个作业都能公平共享资源。注意,从第二个作业的启动到获得公平共享资源之间会有时间滞后,因为它必须等待第一个作业使用的容器用完并释放出资源。当小作业结束且不再申请资源后,大作业将回去再次使用全部的集群资源。最终的效果是:既得到了较高的集群利用率,又能保证小作业能及时完成。
抢占:如果队列在fair share preemption timeout指定的时间内获得的资源仍然低于其公平共享份额的一半,那么调度器就会抢占其他容器。
延迟调度:所有的 YARN调度器都试图以本地请求为重。在一个繁忙的集群上,如果一个应用请求某个节点,那么极有可能此时有其他容器正在该节点上运行。显而易见的处理是,立刻放宽本地性需求,在同一机架中分配–个容器。然而,通过实践发现,此时如果等待一小段时间(不超过几秒),能够戏剧性的增加在所请求的节点上分配到一个容器的机会,从而可以提高集群的效率。这个特性称之为延迟调度
shuffle(混洗)和排序
shuffle(Hadoop计算框架):map的输出到reduce的输入之间的过程。相当于一个缓冲区。内部资源占用率达到80%时,开始向磁盘传输数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值