Corona 笔记

2013-05-12 by Leon

Corona 初探

本周关注了一下另一种号称下一代MapReduce的框架:Corona。它是facebook的开源框架,代码在:

https://github.com/facebook/hadoop-20/tree/master/src/contrib/corona

Cornna的设计需求与Apache的YARN框架十分相似,它的发布文档:

Under the Hood: Scheduling MapReduce jobs more efficiently with Corona

其中提到,当前Map-Reduce所使用的single Job Tracker在Facebook的运行环境下已经遇到瓶颈,在Hadoop Corona中,集群的资源是由central Cluster Manager统一分配调度,每个job拥有各自单独的Corona Job Tracker,这些与YARN框架的设计思路非常相近,解决了Map-Reduce中存在的扩展性、单点故障等不足。

相比于YARN,Corona似乎更贴近Map-Reduce的原版,其代码在原版Map-Reduce基础上修改而来,似乎更贴近原有Map-Reduce的用户;另一大优势在于Corona所采用的Push-based通信机制,在原版Map-Reduce和YARN中,采用轮询方式使client获取信息 ...

read more

Network Aware Resource Allocation in Distributed Clouds 笔记

2013-04-06 by Leon

INFOCOM 2012

Mansoor Alicherry, T.V. Lakshman

Bell Labs.

这篇文章主要介绍了通讯负载和延迟最小化的高效的resource allocation算法。

Key contribution:

  1. Develop an efficient 2-approximation algorithm for the optimal selection of data centers in the distributed cloud.
  2. Use of an optimal algorithm for rack and server selection.
  3. develop a heuristic for partitioning the requested resources for the task ...
read more

Yarn初探(一)资源调度

2013-03-29 by Leon

资源调度器

YARN的资源管理器本质上像一个事件处理器,需要处理6种SchedulerEvent类型的事件:

  • NODE_REMOVED:表示集群中被移除一个计算节点,资源调度器收到该事件时需要从可分配资源总量中移除相应的资源量。
  • NODE_ADDED:表示集群中增加了一个计算节点,资源调度器收到该事件时需要将新增的资源量添加到可分配资源总量中。
  • APPLICATION_ADDED:表示ResourceManager收到一个新的Application。资源管理器需将该Application添加到相应的数据结构中。通常,资源管理器需要为每个application维护一个独立的数据结构,以便于统一管理和资源分配。
  • APPLICATION_REMOVED:事件APPLICATION_REMOVED表示一个Application运行结束,资源管理器需将该Application从相应的数据结构中清除。
  • CONTAINER_EXPIRED:当资源调度器将一个container分配给某个ApplicationMaster后,如果该ApplicationMaster在一定时间间隔内没有使用该container,则资源调度器会对该container进行再分配。
  • NODE_UPDATE:NodeManager通过心跳机制向ResourceManager汇报各个container运行情况,会触发一个NODE_UDDATE事件。

其中,NODE_UPDATE事件发生时表示可能有新的container得到释放,因此该事件会触发资源分配,该事件是6个事件中最重要的事件,它会触发资源调度器最核心的资源分配机制。

资源管理与分配

相比于MapReduce v1中的资源调度器,YARN采用了事件驱动的模型,因此编写起来更加复杂。同MapReduce v1一样,YARN也自带了三种常用的调度器,分别是FIFO,Capacity Scheduler和Fair Scheduler,其中,第一个是默认的调度器,它属于批处理调度器,而后两个属于多租户调度器,采用树形多队列的形式组织资源。

YARN的资源表示模型目前只支持CPU和内存的管理与分配,NodeManager启动时,会向ResourceManager注册 ...

read more

Hello World

2013-03-14 by Leon

Hello World

开个博客,想想还是用 Hello 镇宅

read more