首页 > 代码库 > Sahara的基本概念和架构

Sahara的基本概念和架构

声明:

本博客欢迎转载,但请保留原作者信息,并请注明出处!

作者:郭德清

团队:华为杭州OpenStack团队


        Sahara旨在为用户提供简单部署Hadoop集群的能力,比如通过简单的配置:Hadoop版本、集群结构、节点硬件信息等。在用户提供了这些参数后,Sahara迅速把Hadoop集群部署起来。同时也支持集群的扩容和减容。

        其应用场景包括:

1)  提供在OpenStack上快速配置和部署Hadoop集群的能力。

2)  充分利用OpenStack Iaas层的计算能力。

3)  提供分析即服务的数据分析业务,有点像亚马逊的EMR。

        Sahara主要的特性包括:

1)  Sahara作为OpenStack的一个组件。

2)  通过OpenStack的Dashboard调用REST API来管理。

3)  支持不同的Hadoop版本

4)  可配置的Hadoop配置模板。

        Sahara课OpenStack的Horizon(提供GUI)、Keystone(提供鉴权功能)、Nova(为了创建Hadoop集群虚拟机)、Heat(Sahara可以配置成使用Heat来协调Hadoop集群所需要的服务)、Glance(存放Hadoop虚拟机镜像)、Swift(可以用于存放Hadoop任务处理的数据)、Cinder(用于提供块存储)、Neutron(提供网络服务)、Ceilometer(用于收集集群的信息来达到计量和监控的目的)有交互。



        主要的工作流程介绍:

        常见的快速配置集群步骤如下:

1)  选择Hadoop版本

2)  选择镜像(如果镜像中没有预安装Hadoop,Sahara也支持通过可插入的部署引擎)

3)  设置集群的参数:大小、拓扑等。

4)  创建集群:Sahara会进行虚拟机的安装和Hadoop的配置。

5)  集群管理:包括添加或者删除节点。

6)  删除集群

        通用的分析服务工作流程:

1)  选择一个预定义的Hadoop版本

2)  编辑任务

a)       选择任务类型:pig、hive、jar-file等

b)       提供任务的脚本地址或者jar包的位置

c)       选择输入输出数据的位置

d)       选择日志的位置

3)  设置集群的大小

4)  执行任务

5)  获取任务执行结果

        Sahara系统架构图:


        Sahara架构包含一下几个模块:

  1. 鉴权模块:负责鉴权和授权,和keystone进行交换。
  2. DAL(Data Access Layer):和数据库访问相关。
  3. 供应引擎(Provisioning Engine):用于和组件Nova, Heat, Cinder、Glance交换
  4. 供应商插件:插件形式提供,用于在虚拟机上配置和启动Hadoop服务。已有的解决方案包括:Apache的Ambari和Cloudera(Hadoop数据管理软件与服务提供商)     Management Console。
  5. EDP(Elastic Data Processing):负责调度和管理Sahara提供的Hadoop集群上的计算任务。
  6. REST API:提供REST使用Sahara功能。
  7. Sahara的Python客户端:和OpenStack其他组件的CLI一样。
  8. Sahara的GUI页面:Horizon上提供Sahara相关的GUI。

【参考资料】

http://docs.openstack.org/developer/sahara/overview.html

http://docs.openstack.org/developer/sahara/architecture.html



Sahara的基本概念和架构