Openstack Sahara組件和架構簡介

1.簡介

Apache Hadoop是目前被普遍使用的主流大數據處理計算框架,Sahara項目旨在使用用戶可以在Openstack平臺上便於建立和管理Hadoop以及其餘計算框架集羣,實現相似AWS的EMR(Amazon Elastic MapReduce service)服務。用戶只須要提供簡單的參數,如版本信息、集羣拓撲、節點硬件信息等,利用Sahara服務可以在數分鐘時間內快速地部署Hadoop、Spark、Storm集羣。Sahara還支持節點的彈性擴展,可以方便地按需增長或者減小計算節點,實現彈性數據計算服務。它特別適合開發人員或者QA在Openstack平臺上快速部署大數據處理計算集羣。html

它特效包括:java

  • Openstack的標準組件之一;
  • 經過REST API和Dashboard UI界面管理集羣;
  • 支持多種數據處理計算框架,包括:
    • 多種Hadoop廠商發行版,好比CDH等;
    • Apache Spark和Storm;
    • 可插除的Hadoop安裝引擎;
    • 集成廠商的特定管理工具,如Apache Ambari and Cloudera Management Console。
  • 支持配置模板。

它和其餘Openstack組件交互,如圖:
sahara交互圖node

2.工做流程

sahara提供兩個層次的API,分別爲集羣管理(cluster provisioning)和任務管理(analytics as a service)。ios

集羣管理工做流包括:數據庫

  1. 選擇Hadoop發行版本;
  2. 選擇base鏡像,base鏡像用於生成工做節點,base鏡像或者已經預先安裝了Hadoop的必要組件,或者提供可插除的可自動快速部署Hadoop的工具。base鏡像能夠本身製做,也能夠直接下載: http://sahara-files.mirantis.com/images/upstream/liberty/
  3. 集羣配置,包括集羣大小、集羣拓撲(配置組件角色)和一些附加參數(如堆大小、HDFS冗餘份數等);
  4. 建立集羣,sahara將自動建立虛擬機、部署和配置數據分析計算框架集羣;
  5. 集羣管理,如增長或者刪除節點;
  6. 集羣銷燬,用戶不須要時,能夠刪除集羣,釋放全部的資源。

任務管理工做流包括:ubuntu

  1. 選擇預先定義的數據處理計算框架以及版本;
  2. 任務配置:swift

    • 選擇任務類型: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架構如圖所示:
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
相關文章
相關標籤/搜索