声明:
本博客欢迎转载,但请保留原作者信息,并请注明出处!
作者:郭德清
团队:华为杭州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架构包含一下几个模块:
- 鉴权模块:负责鉴权和授权,和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一样。
- Sahara的GUI页面:Horizon上提供Sahara相关的GUI。
【参考资料】
http://docs.openstack.org/developer/sahara/overview.html
http://docs.openstack.org/developer/sahara/architecture.html