Corona可看做下一代MapReduce框架,它解决了MRv1中存在的扩展性、单点故障等不足,但是,相比于YARN,它仍存在一些不足或者当前未考虑的点,具体如下:

  • 资源模型

当前Corona支持内存、CPU和磁盘等资源,但是,它仍然缺乏灵活性,比如用户无法设置作业所需的内存量、CPU等信息(当前采用了静态值)。此外,在进行任务调度时,它并未按照任务实际需要的资源进行资源匹配,而仍采用了类似于MRv1中slot概念进行资源分配和资源约束。

  • 多框架支持

当前Corona的调度器中融入了太多的有关MapReduce计算框架所独有的运行机制,比如各个CoronaTaskTracker执行的还是MRv1中的Map Task和Reduce Task,因此,可以推断,Corona最初的设计出发点并不涉及对多框架的支持,也就是说,Corona仅是对MRv1设计架构方面的改进,并没有逃出MapReduce计算框架的范畴。

当然,Corona有自己独特的优势,具体如下:

  • 上手容易。 在MRv1基础上修改而来的,重用了大量原有的代码,对于熟悉MRv1的用户,可以很快地熟悉Corona。
  • Push-based通信机制。MRv1和YARN均采用了pull-based通信模型,即client采用轮询的方式从server端获取需要的信息,比如TaskTracker周期性地向JobTracker发送心跳领取新的任务,当集群规模达到一定程度后,这必然造成较大延时。为解决该问题,Corona采用了push-based通信机制,server可直接将信息推送给client以降低延迟,当然,这需要增加一倍数目的通信协议,使得通信双方既是client,又是server。

原创文章,转载请注明: 转载自董的博客

本文链接地址: Corona深入剖析系列-Corona总结

微信公众号:hadoop-123,专注于大数据技术分享,欢迎加入!

说点什么

avatar
  Subscribe  
提醒