来小米实习快两个月了,分配的一个大任务就是调研Slider,下面我简单的描述下Apache下的孵化项目Slider吧
背景
YARN是HADOOP2中的通用资源管理平台,但是基于YARN开发应用,需要用户自己编写AM来处理资源申请、容错等,难度和复杂性比较大,因此YARN上运行良好的计算框架只有MapReduce、Spark、Tez等少数几个,而不像其宣传的那样能让各种计算框架运行的非常顺畅
Hortonworks公司最初开发了Hoya,该工具可以在YARN上部署HBase,但是后来出于某种原因,将其废弃掉了,改而开发Slider:基于YARN的通用部署工具。
同类型的软件还有:Apache Twill和 Apache Helix。
目的
在不对程序进行修改的情况下,在YARN上即可快速部署应用程序(app),一个app对应的实例叫做cluster。这种app有以下几个特点:
- app是长服务,即服务不会短期内挂掉,如公司的离线任务、日志收集系统等
- app由各个组件(component)组成,组件数目可能只有一个,而每个component由若干个实例构成,实例数可以在参数中指定。如一个HBase cluster可以由2个HMaster和50个HRegionserver组成。
现状
- 基于社区进行开发。如果公司需要使用Slider,建议也基于社区进行开发,这样公司的slider升级起来就会比较方便。开发人员可以在JIRA上提需要、bug,和社区进行讨论,并打上patch
- 2014年11月才发布通用版本release-0.60.0
- 现在已知只有HP等4个公司在使用,也许有一些公司在调研和评估Slider
- 现在还停留在概念阶段,能否经受真实环境的考验,还需要进一步验证
运行流程
如何使用,可以参考社区文档: Getting Started。由SliderAM负责给cluster申请资源,并负责容错(component挂掉之后,SliderAM重新找RM申请资源,并进行相应的分配),每个component的实例运行在YARN container中,一个cluster在YARN中的运行流程大致如下:
参考
- http://slider.incubator.apache.org/
- https://github.com/apache/incubator-slider
- https://www.youtube.com/watch?v=J9wDw6oRQ6Q