随着YARN的成熟和稳定(2013年8月25日已经发布beta版),必将形成一个以YARN为核心的生态系统,在该生态系统中,所有计算相关的框架可 运行在一个YARN集群中(由于YARN本身设计上的一些问题,目前还难以运行通用的服务,比如Web Server、HBase等,未来趋势肯定是各类系统或者服务可运行在一个集群中,进行统一资源管理和调度)。为了关注该方向的技术动态和发展趋势,本博 客开辟一个“运行在YARN上的框架”(framework-on-yarn)专栏,欢迎各位关注。作为这个专栏***篇文章,将介绍一下这种模式的好处以 及当前运行在YARN上相对而言较为成熟的计算框架。
1. 将框架运行在YARN上带来的好处
随着YARN的的成熟和稳定,各类应用程序可以运行在一个YARN集群中进行统一资源管理和调度,这样带来的变化如下:
(1)应用程序部署变得更加简单
管理员只需部署YARN服务即可,各类应用程序框架不再自带服务,无需实现部署,它们已经变成了客户端编程库(library),由YARN提供的分布式缓存机制分发到各个节点上;
(2)服务部署变得简单
用户可以通过运行一个应用程序的方式部署一套服务,比如Storm服务,至于jar包拷贝等工作,完全由YARN自动完成,部署完成后,用户像使用普通的Storm集群那样使用Storm-On-YARN
(3)多版本共享集群资源(简单的隔离)
由于YARN只负责资源管理和调度,至于其上运行什么应用或者服务,完全由用户自己决定,这使得用户可在YARN上运行多个同类服务实例,比如运行 多个Storm实例供不同类型的应用,YARN本身可以为这些实例提供隔离机制(Cgroups)。有了YARN之后,用户开发新的框架或者应用程序时, 可不必在考虑资源隔离问题。
(4)资源弹性管理
由于多类应用运行在一个YARN集群中,比如离线计算、实时计算、DAG计算等,YARN可根据不同类型的应用程序压力情况,调整对应的资源使用量,实现资源弹性管理。
2. 目前可运行在YARN上的计算框架
运行在YARN上的框架,包括MapReduce-On-YARN, Spark-On-YARN, Storm-On-YARN和Tez-On-YARN。
(1)MapReduce-On-YARN:YARN上的离线计算,YARN发行版中自带该实现,随着YARN的稳定,MRv1运行方式会被淘汰;
(2)Spark-On-YARN:YARN上的内存计算;
(3)Storm-On-YARN:YARN上的实时/流式计算;
(4)Tez-On-YARN:YARN上的DAG计算
3. 其他相关文章阅读
我之前写过一些类似的文章,有兴趣的读者可阅读以下几篇:
(1)Storm On YARN:http://dongxicheng.org/mapreduce-nextgen/storm-on-yarn/
(2)Tez On YARN:http://dongxicheng.org/mapreduce-nextgen/apache-tez-newest-progress/
(3)利用下一代Hadoop YARN构建弹性计算平台:http://dongxicheng.org/mapreduce-nextgen/use-hadoop-yarn-to-build-a-cloud-system/
(4)从问题域触发理解Hadoop生态系统:http://dongxicheng.org/mapreduce-nextgen/rethinking-hadoop-from-problems-solved/
(5)解析Google资源管理系统Omega:http://dongxicheng.org/mapreduce-nextgen/google-omega/
(6)浅谈Omega/Torca/Mesos/YARN一类系统:http://dongxicheng.org/mapreduce-nextgen/borg-yarn-mesos-torca-corona/
(7)多集群下资源共享方案介绍:http://dongxicheng.org/mapreduce-nextgen/multi-clusters-sharing-resources/
原文链接:http://dongxicheng.org/framework-on-yarn/distributed-computing-framework-on-yarn/