1. 程式人生 > >Sahara的基本概念和架構

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架構包含一下幾個模組:

  1. 鑑權模組:負責鑑權和授權,和keystone進行交換。
  2. DAL(Data Access Layer):和資料庫訪問相關。
  3. 供應引擎(Provisioning Engine):用於和元件Nova, Heat, Cinder、Glance交換
  4. 供應商外掛:外掛形式提供,用於在虛擬機器上配置和啟動Hadoop服務。已有的解決方案包括:Apache的Ambari和Cloudera(Hadoop資料管理軟體與服務提供商)     Management Console。
  5. EDP(Elastic Data Processing):負責排程和管理Sahara提供的Hadoop叢集上的計算任務。
  6. REST API:提供REST使用Sahara功能。
  7. Sahara的Python客戶端:和OpenStack其他元件的CLI一樣。
  8. Sahara的GUI頁面:Horizon上提供Sahara相關的GUI。

【參考資料】