2013年4月,OpenStack社区知名厂商Mirantis正式宣布了基于OpenStack的开源BDaaS(BigData-as-a-Service)项目——Sahara(原名Savanna),正式开始了在OpenStack上构建大数据服务能力的努力。 近日,开源技术专家章宇(@一棹凌烟)在其博客上分享了对Sahara项目的研究心得。整个介绍系列分为7篇文章,除前言部分外,其余六篇分别是:
在《Sahara概述》中,章宇介绍了Sahara的定位、功能的演进、社区支持力度与整体发展的趋势。 Sahara最初的基本定位是基于OpenStack提供简单的Hadoop集群创建方式,不过随着项目不断演进,Sahara所涵盖的范畴也有所扩大。章宇从两个层面介绍了Sahara项目的发展方向:
Sahara项目的发展较快,其项目PTL Sergey Lukjanov已经宣布Sahara将于OpenStack Juno版本中正式成为integrated项目,目前代码已经提交,并在等待review,其版本演进可以参见其wiki页面介绍。目前Sahara已经被集成在RDO中,因此可以被更为简单方便的安装部署。 《Sahara使用方式》简单介绍了Sahara的使用模式、基本概念与操作流程。 Sahara有两种使用模式:
简单来说,基本模式要求用户自己从底层搭建Hadoop虚拟机、建立集群,技术门槛较高;而EDP模式有点类似于AWS EMR服务,对底层的Hadoop集群操作和Hadoop业务操作进行了封装,暴露给用户的只有非常简单的接口,使用简便。 章宇介绍了Sahara当中的节点(node)、节点组(node group)、节点组模板(node group template)、集群(cluster)、集群模板(cluster template)、任务(job)等关键概念,并简单列出了在基本模式下用Sahara建立Hadoop集群的操作流程。整个介绍比较概括,step by step的操作文档可参考Sahara官方的QuickStart。 接下来,章宇开始从研究代码的层面介绍Sahara的设计与实现。Sahara的设计有两大特点: 1、模块化、可配置:
2、代码重用:
Sahara对Horizon(界面)、Glance(镜像管理)、Keystone(身份认证)、Heat(集群配置)、Ceilometer(监控)、Nova(虚拟机管理)、Neutron(网络)、Cinder(块存储)和Swift(对象存储)都有不同程度的代码复用,其中Nova、Glance和Keystone是必要组件,其他组件可选用。 Sahara的整体架构可参考其架构图。其中,章宇建议:
接下来,章宇从产品和技术的层面将Sahara与EMR、Serengeti进行了对比,要点如下:
介绍到这里,章宇对Sahara目前的状态进行了概述,认为目前的Sahara还面临以下几点挑战:
|