Sahara的基本概念和架構
宣告:
本部落格歡迎轉載,但請保留原作者資訊,並請註明出處!
作者:郭德清
團隊:華為杭州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。
【參考資料】