1.简介

Apache Hadoop是目前被广泛使用的主流大数据处理计算框架,Sahara项目旨在使用用户能够在Openstack平台上便于创建和管理Hadoop以及其他计算框架集群,实现类似AWS的EMR(Amazon Elastic MapReduce service)服务。用户只需要提供简单的参数,如版本信息、集群拓扑、节点硬件信息等,利用Sahara服务能够在数分钟时间内快速地部署Hadoop、Spark、Storm集群。Sahara还支持节点的弹性扩展,能够方便地按需增加或者减少计算节点,实现弹性数据计算服务。它特别适合开发人员或者QA在Openstack平台上快速部署大数据处理计算集群。

它特效包括:

  • Openstack的标准组件之一;
  • 通过REST API和Dashboard UI界面管理集群;
  • 支持多种数据处理计算框架,包括:
    • 多种Hadoop厂商发行版,比如CDH等;
    • Apache Spark和Storm;
    • 可插除的Hadoop安装引擎;
    • 集成厂商的特定管理工具,如Apache Ambari and Cloudera Management Console。
  • 支持配置模板。

它和其他Openstack组件交互,如图:

2.工作流程

sahara提供两个层次的API,分别为集群管理(cluster provisioning)和任务管理(analytics as a service)。

集群管理工作流包括:

  1. 选择Hadoop发行版本;
  2. 选择base镜像,base镜像用于生成工作节点,base镜像或者已经预先安装了Hadoop的必要组件,或者提供可插除的可自动快速部署Hadoop的工具。base镜像可以自己制作,也可以直接下载: http://sahara-files.mirantis.com/images/upstream/liberty/
  3. 集群配置,包括集群大小、集群拓扑(配置组件角色)和一些附加参数(如堆大小、HDFS冗余份数等);
  4. 创建集群,sahara将自动创建虚拟机、部署和配置数据分析计算框架集群;
  5. 集群管理,如增加或者删除节点;
  6. 集群销毁,用户不需要时,可以删除集群,释放所有的资源。

任务管理工作流包括:

  1. 选择预先定义的数据处理计算框架以及版本;
  2. 任务配置:

    • 选择任务类型:pig,hive,java-jar等;
    • 提供任务脚本源或者jar包地址;
    • 选择输入、输出地址。
  3. 限制集群大小;
  4. 执行任务,注意所有底层的集群管理和任务执行流程对用户是完全透明的,当任务执行完后,集群将会自动移除提交的任务;
  5. 获取处理结果(如Swift)。

3.用户视角

通过sahara管理集群,用户主要需要操作以下三个实体对象:Node Group Templates, Cluster Templates and Clusters:

  • Node Group Templates:设置单一节点的模板,包括启动虚拟机的flavor、安全组、可用域、镜像等,以及配置Hadoop角色,比如namenode、secondarynamenode、resourcemanager。比如我们可以创建Master节点模板,flavor为m1.large,启动镜像为sahara-mitaka-vanilla-hadoop-2.7.1-ubuntu-14.04,配置namenode、resourcemanager、secondarynamenode角色,创建Slave节点模板,flavor为m1.large,镜像为sahara-mitaka-vanilla-hadoop-2.7.1-ubuntu-14.04,配置角色为datanode、nodemanager等。
  • Cluster Templates:即集群拓扑,包括节点数量(如Master数量、Slave数量)、Hadoop参数配置,比如HDFS配置、YARN配置等。
  • Clusters:集群管理,包括集群扩容、集群启动、集群删除等。

sahara允许用户自由组合节点角色,比如Job Tracker和NameNode可以运作在同一个虚拟机中,也可以分离在不同的虚拟机中。但是sahara会检查集群是否有效,比如不允许创建只有一系列DataNode节点但不存在NameNode节点的集群。

sahara遵从Openstack的通用访问策略,即支持租户、用户等权限管理。

4.集成对象存储服务

sahara支持从Swift对象存储读取数据和保存结果数据,集成文档参考http://docs.openstack.org/developer/sahara/userdoc/hadoop-swift.html。

5.集群监控

除了支持Hadoop厂商提供的监控工具,sahara还提供可插除集成其他外部监控工具,比如Nagios Zabbix,这些外部工具完全和集群分离,可以单独部署在一个单独的虚拟机,因此可以同时监控多个集群。

6.架构

sahara架构如图所示:

主要包括以下几个组件:

  • Auth component(认证组件) - 负责和认证服务交互完成客户认证。
  • DAL - 数据访问层, 负责为持久化数据提供数据库访问接口。
  • Secure Storage Access Layer(安全存储访问层) - 保存用户认证信息,比如用户密码、密钥等。
  • Provisioning Engine - 该组件负责和Openstack其他组件交互,比如Nova组件、Heat组件、Cinder组件以及Glance组件等。
  • Vendor Plugins(厂商插件) - 负责配置和启动计算框架,不同的计算框架启动方式和配置都不一样,因此提供插件机制,使sahara同时可支持多种计算框架。已经完成集成的插件包括Apache Ambari和Cloudera Management Console等。
  • EDP - Elastic Data Processing,负责调度和管理任务。
  • REST API - 通过REST HTTP API接口暴露sahara管理功能。
  • Python Sahara Client - sahara命令行管理工具。
  • Sahara pages - Openstack Dashboard显示页面。

参考

    1. sahara开发文档:http://docs.openstack.org/developer/sahara

Openstack Sahara组件和架构简介的更多相关文章

  1. openstack发展历程及其架构简介

    1.0 Openstack介绍 OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集.其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云.私有云,也 ...

  2. OpenStack组件系列☞glance简介

    Glance项目提供虚拟机镜像的发现,注册,取得服务. Glance提供restful API可以查询虚拟机镜像的metadata,并且可以获得镜像. 通过Glance,虚拟机镜像可以被存储到多种存储 ...

  3. OpenStack共享组件

    一.云计算的前世今生 1.物理机架构,应用部署和运行在物理机上  2.虚拟化架构,物理机上运行若干虚拟机,应用系统直接部署到虚拟机上  3.云计算架构,虚拟化提高了单台物理机的资源使用率 二.Open ...

  4. crtmpserver的架构简介

    crtmpserver的架构简介 一.层 Layers . 机器层 Machine layer . 操作系统层 Operating System Layer   This layer is compo ...

  5. OpenStack最新版本Folsom架构解析

    OpenStack最新版本Folsom架构解析摘要:OpenStack的第6版,版本代号为Folsom的最新版于今年九月底正式发布,Folsom将支持下一代软件定义网络(SDN)作为其核心组成部分.F ...

  6. Extjs6官方文档译文——应用架构简介(MVC,MVVM)

    应用架构简介 Extjs 同时提供对于MVC和MVVM应用架构的支持.这两个架构方式共享某些概念,而且都旨在沿着逻辑层面划分应用程序代码.每种方法在选择如何划分应用组件上都有其各自的优势. 本指南的目 ...

  7. 二、OpenStack—keystone组件介绍与安装

    一.Keystone介绍 keystone 是OpenStack的组件之一,用于为OpenStack家族中的其它组件成员提供统一的认证服务,包括身份验证.令牌的发放和校验.服务列表.用户权限的定义等等 ...

  8. openstack 之~openstack各组件关系

    认识openstack 第一:openstack是什么? OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项 ...

  9. OpenStack各组件逻辑关系、通信部署关系及工作流程

    一. OpenStack组件之间的逻辑关系 OpenStack 是一个不断发展的系统,所以 OpenStack 的架构是演进的,举个例子: E 版本有5个组件  Compute 是 Nova:Imag ...

随机推荐

  1. jenkins使用--部署

    软件: centos 7.x java jenkins Pipeline ansible 1.安装请看上一文 2.主要是讲部署() 目的:实现 参数化发布 说明 :构建jar包是由gitlab-ci  ...

  2. 【Gamma阶段】第四次Scrum Meeting

    冰多多团队-Gamma阶段第四次Scrum会议 工作情况 团队成员 已完成任务 待完成任务 卓培锦 修改可移动button以及button手感反馈优化 编辑器风格切换(夜间模式) 牛雅哲 修复bug并 ...

  3. Fiddler添加过滤条件

  4. sublime px转rem的方法【亲测有效】

    在开发手机网站的时候,我们经常会用到rem来作为单位,但是手动转rem太麻烦了,那么怎么办呢?sublime安装cssrem来进行快捷操作. 安装过程: 第一步:去git上克隆 https://git ...

  5. Spark无法读取hive 3.x的表数据

    通过Ambari2.7.3安装HDP3.1.0成功之后,通过spark sql去查询hive表的数据发现竟然无法查询 HDP3.0 集成了hive 3.0和 spark 2.3,然而spark却读取不 ...

  6. CentOS6非root用户下安装及配置CDH5.3.0

    #install lsb packagesudo yum install -y redhat-lsb #install net-tools package sudo yum install -y ne ...

  7. openvswitch2.11.0修改源码后重新编译(2)

    一:前提 已经正常安装了SDN环境(mininet和openswitch2.11.0和Ryu) 使用前面教程安装环境SDN实验---使用git安装Mininet (一)测试ovs是否正常使用 1.ry ...

  8. 深度相机Astra Pro测试教程

    最近在微信群内,很多群友在群友的推荐下,购买了Astra pro的深度相机,价格地道,物超所值!群友反馈积极,所以这里出一波简单的教程.   以下内容知识抛砖引玉,主要讲解windows下和Ubunt ...

  9. python初级(302) 6 对象(二)

    一.复习 1.什么是对象 2.什么是类 3.什么是属性 4.什么是方法 5.创建一个dog类,dog的属性有颜色,方法有汪汪叫 随堂练习: class Dog: def __init__(self, ...

  10. Springboot中IDE支持两种打包方式,即jar包和war包

    Springboot中IDE支持两种打包方式,即jar包和war包 打包之前修改pom.xml中的packaging节点,改为jar或者war    在项目的根目录执行maven 命令clean pa ...