Openstack Sahara組件和架構簡介


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組件交互,如圖:
sahara交互圖

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架構如圖所示:
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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM