微信号:infoqchina

介绍:有内容的技术社区媒体

OpenStack大数据项目Sahara概述

2014-04-17 18:03 杨赛

2013年4月,OpenStack社区知名厂商Mirantis正式宣布了基于OpenStack的开源BDaaS(BigData-as-a-Service)项目——Sahara(原名Savanna),正式开始了在OpenStack上构建大数据服务能力的努力。


近日,开源技术专家章宇(@一棹凌烟)在其博客(http://yizhaolingyan.net/?p=134)上分享了对Sahara项目的研究心得。整个介绍系列分为7篇文章,除前言部分外,其余六篇分别是:


  • Sahara概述:介绍项目的目的、概况、发展等基本情况

  • Sahara使用方式:介绍具体如何使用Sahara进行大数据业务操作

  • Sahara设计实现:介绍Sahara的架构设计与实现

  • Sahara与AWS EMR和Serengeti的对比:将Sahara与目前最知名的公有云大数据服务和Hadoop虚拟化项目进行简单对比分析

  • 对Sahara的若干思考

  • 小结与展望


在《Sahara概述》中,章宇介绍了Sahara的定位、功能的演进、社区支持力度与整体发展的趋势。


Sahara最初的基本定位是基于OpenStack提供简单的Hadoop集群创建方式,不过随着项目不断演进,Sahara所涵盖的范畴也有所扩大。章宇从两个层面介绍了Sahara项目的发展方向:


从服务层次的维度看,Sahara已经开始从利用OpenStack的IaaS能力,提供简单的大数据工具集群创建和管理服务,扩展到提供分析即服务(Analytic-as-a-Service)层面的大数据业务应用能力。Sahara v0.3中引入的EDP(Elastic Data Processing)就是一个明确的体现。


从承载的业务类型维度看,Sahara也很有可能会迅速突破单一的Hadoop工具范畴,拓展支持其他新兴的大数据工具。例如,关于提供Spark支持的BP已经被提交至社区,目前正在等待review。


Sahara项目的发展较快,其项目PTL Sergey Lukjanov已经宣布Sahara将于OpenStack Juno版本中正式成为integrated项目,目前代码已经提交,并在等待review,其版本演进可以参见其wiki页面介绍。目前Sahara已经被集成在RDO中,因此可以被更为简单方便的安装部署。


《Sahara使用方式》简单介绍了Sahara的使用模式、基本概念与操作流程。


Sahara有两种使用模式:

  • 基本的大数据集群应用模式(基本模式)

  • 通过EDP机制引入的分析即服务模式(EDP模式)


简单来说,基本模式要求用户自己从底层搭建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、模块化、可配置:

Sahara中的大量功能和机制,都基于可选择、可配置的模块化插件实现,例如:可以通过对engine的配置来选择不同的Hadoop集群编配引擎,通过对plugin的配置来选择不同的Hadoop发行版安装与部署方式和工具,等等。


2、代码重用:

Sahara也尽可能重用了OpenStack自身提供的IaaS层组件及其服务,例如:利用Nova提供虚拟机资源,利用Horizon提供人机界面,等等。


Sahara对Horizon(界面)、Glance(镜像管理)、Keystone(身份认证)、Heat(集群配置)、Ceilometer(监控)、Nova(虚拟机管理)、Neutron(网络)、Cinder(块存储)和Swift(对象存储)都有不同程度的代码复用,其中Nova、Glance和Keystone是必要组件,其他组件可选用。


Sahara的整体架构可参考其架构图。其中,章宇建议:


在分析集群创建流程时,主要应关注sahara.api、sahara.service.api、sahara.service.engine和sahara.plugins这四个package的各自行为及相互关系。其中,sahara.service.api中的_provision_cluster()驱动了整个cluster创建的过程。


接下来,章宇从产品和技术的层面将Sahara与EMR、Serengeti进行了对比,要点如下:

  • EMR在Sahara基本模式的基础上融合了EDP模式的特点

  • EDP的用户只需要指定“哪些数据”、“哪个集群”、“哪个程序包”这三要素,而完全不用关心集群如何创建、如何管理这样的与自己核心业务诉求无关的问题

  • EMR的用户则除了需要在创建集群时指定大量信息外,还需要负责集群和业务的运行管理

  • 比较而言,EDP的用户是纯粹的大数据业务应用者,而EMR的用户则身兼业务应用和系统运维两种职责

  • 基于EMR的大数据解决方案,全面涵盖了数据的存储、计算、分析、共享等各个处理环节,这是Sahara还难以企及的

  • Sahara和Serengeti的区别,可以说是“应用云化”和“应用虚拟化”的区别。Serengeti项目的主要关注点在于如何为搭建在虚拟机环境下的Hadoop集群提高性能和可靠性,这里面的思考是Sahara可以借鉴的


介绍到这里,章宇对Sahara目前的状态进行了概述,认为目前的Sahara还面临以下几点挑战:

  • Sahara的管理平面性能存在疑问,创建和发布集群的等待时间有待测试

  • 复杂管理的成功率方面,目前Sahara中没有看到明确的处理机制,这是一个缺失

  • Sahara搭建的Hadoop在虚拟化环境下的性能有待优化,不过这个问题可以等到前面两个关键问题解决了之后再来优化

  • Auto-scaling的缺失。目前Sahara要扩展需要人工执行

  • Sahara最大的亮点在EDP,其价值有待进一步挖掘


***********************************

本文来自InfoQ微信公众账号:infoqchina

1、回复“今日新闻”,查看今天更新的新闻;

2、回复“今日英文”,查看今天英文站的更新;

3、回复“文章 +关键词”,搜索关键词相关内容;

4、回复“QCon”,了解QCon大会相关信息;

5、回复“活动”,了解最近InfoQ组织的线下沙龙;

6、回复“架构师”,获取《架构师》下载地址;

7、回复“投稿”,了解投稿和加入编辑团队的流程。

***********************************

 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 【精华】一篇文章读懂过去三天 唱衰文:大数据至死 沉迷数据不能让我们正确把握未来 微服务架构下的数据一致性保证(一) 你中奖啦【编程大赛番外篇】 LitePal 1.3.1发布了,从此支持图片存储!