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. 如何新建WebAPI,生成注释,TestAPI的项目

    一.新建WebAPI的项目 1. 在Web下,ASP.NET Web 应用程序,点击确定 2. 点击确定 3. 如图所示, 新建Controller 4 . 运行项目 二.注释 1. 在生成中,勾选x ...

  2. 如何完美更换WordPress网站的域名

    前几天,一位WordPress王牌主机的用户问我,他的WordPress网站已经建立一年多了,现在想要修改网站使用的域名,该如何操作?这是WordPress用户经常遇到的问题.今天我们来给大家介绍一下 ...

  3. 字符串反转(java和js)

    写在前面 关于字符串反转的奇技淫巧很多, 会一种就行了, 但是解锁更多姿势可谓艺多不压身啊~~ 正文 java https://www.cnblogs.com/binye-typing/p/92609 ...

  4. 解决git 出现 Your account has been blocked问题

    使用git 出现 Your account has been blocked 无法从远程pull代码下来, 解决方案如下: $ git push origin masterGitLab: Your a ...

  5. VS2015 创建C++动态库及使用

    转载:https://blog.csdn.net/w_x_myself/article/details/82252646 1.dll的特点 代码复用是提高软件开发效率的重要途径.一般而言,只要某部分代 ...

  6. [转]import xxx from 和 import {xxx} from的区别

    原文地址:https://www.cnblogs.com/Abner5/p/7256043.html 1.vue import FunName from ‘../xxx’ 1.js export de ...

  7. 【GMT43智能液晶模块】例程十五:LAN_TCPC实验——以太网数据传输

    源代码下载链接: 链接:https://pan.baidu.com/s/1bFX8_UpUlML29oqoDGaw5g提取码:mrf5 复制这段内容后打开百度网盘手机App,操作更方便哦 GMT43购 ...

  8. 解决ImportError: No module named utils

    转载:https://blog.csdn.net/weixin_43979572/article/details/86159265 在Python中遇到了导包错误,其实包已经有了.原因是我再B文件的a ...

  9. jzy3D从入门到弃坑_3使用jzy3D0.9画2D散点图--多条线条

    jzy3D从入门到弃坑_3 使用jzy3D0.9画2D散点图--多条线条 觉得有用的话,欢迎一起讨论相互学习~Follow Me 主要思路 将多个线条的二维数组读入Scatter对象 存入到同一个画布 ...

  10. EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器软件对数据库Sqlite3和MySQL的支持说明

    背景分析 EasyDSS商用流媒体服务器提供一站式的转码.点播.直播.时移回放服务,极大地简化了开发和集成的工作,并且EasyDSS支持多种特性,完全能够满足企业视频信息化建设方面的需求.其中,点播功 ...