OpenStack大数据项目 Sahara 概念和架构

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) 获取任务执行结果

OpenStack大数据项目 Sahara 概念和架构

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

鉴权模块:负责鉴权和授权,和keystone进行交换。

DAL(Data Access Layer):和数据库访问相关。

供应引擎(Provisioning Engine):用于和组件Nova, Heat, Cinder、Glance交换

供应商插件:插件形式提供,用于在虚拟机上配置和启动Hadoop服务。已有的解决方案包括:Apache的Ambari和Cloudera(Hadoop数据管理软件与服务提供商) Management Console。

EDP(Elastic Data Processing):负责调度和管理Sahara提供的Hadoop集群上的计算任务。

REST API:提供REST使用Sahara功能。

Sahara的Python客户端:和OpenStack其他组件的CLI一样。

相关推荐