Project Savanna:讓Hadoop運行在OpenStack之上

Apache Hadoop基本上已經成爲MapReduce實現的產業標準,並且被各個機構廣泛採用,而Savanna項目旨在讓用戶可以在OpenStack上運行和管理Hadoop集羣。值得一提的是,Amazon通過EMR(Elastic MapReduce)提供Hadoop服務已達數年之久。

用戶需要給Savanna提供一些信息來建立集羣,比如Hadoop版本、集羣拓撲、節點硬件詳情以及一些其它的信息。在用戶提供這些參數之後,Savanna將幫助用戶在幾分鐘之內建立起集羣,同樣還可以幫助用戶根據需求對集羣進行擴展(增加或者刪除工作節點)。

方案針對以下幾種用例:

 

  • 爲Dev和QA快速配置Hadoop集羣

  • 利用通用OpenStack IaaS雲中從未使用過的計算能力

  • 爲專用或突發性的分析負載提供“分析即服務”(類似AWS中的EMR)。

 

主要特性如下:

 

  • 作爲OpenStack組件出現

  • 通過REST API進行管理,用戶界面作爲OpenStack Dashboard的一部分。

  • 支持多種Hadoop分佈:

 

 

  • 作爲Hadoop安裝引擎的可插拔系統。

  • 集成了提供商特定的管理工具,比如Apache Ambari或者Cloudera Managent Console。

 

 

  • Hadoop配置的預定義模板來,具備配置參數功能。

 

Savanna REST API和定製Horizon視頻鏈接: YouTube視頻

細節說明

Savanna產品主要於以下幾個OpenStack組件進行通信:

 

  • Horizon——提供GUI以使用所有Savanna的特性。

  • Keystone——認證用戶並提供安全令牌,用以與OpenStack通信,用以給用戶分配特定的OpenStack權限。

  • Nova——爲Hadoop集羣配置虛擬機。

  • Glance——用於儲存Hadoop虛擬機鏡像,每個鏡像都包含了已安裝的OS和Hadoop;預安裝的Hadoop應該給予我們在節點佈置上的便利。

  • Swift——可以作爲需要進行Hadoop作業的預存儲。

517098a4b13ce.jpg

 

常規工作流

Savanna會根據用例給用戶提供兩種不同抽象等級的API和UI:集羣配置和分析作爲服務。

集羣快速配置的工作流程包括以下選項:

 

  • 選擇Hadoop版本

  • 選擇包含或者不包含預安裝Hadoop的基礎鏡像

 

 

  • 對於未預安裝Hadoop的基礎鏡像,Savanna將提供整合了供應商工具的可插拔部署引擎。

 

 

  • 定義集羣配置,包括集羣的大小和拓撲,並且設置不同的Hadoop參數(比如heap大小)。

 

 

  • 將提供可配置的模板用以簡易參數配置機制。

 

 

  • 集羣的配置:Savanna將提供虛擬機,安裝和配置Hadoop。

  • 集羣上的操作:添加和移除節點。

  • 在不需要時終止集羣。

 

對於分析即服務的工作流程包括以下選項:

 

  • 選擇一個預定義版本

  • 配置作業:

  • 選擇作業的類型:pig、hive、jar-file等等

  • 提供作業腳本源或者是jar路徑

  • 選擇輸入和輸出數據路徑(最初只支持Swift)

  • 爲日誌選擇路徑

 

 

  • 設置集羣大小限制

  • 執行作業:

 

 

  • 所有集羣配置和作業執行都會清楚的呈現給用戶

  • 作業結束後會自動移除集羣

 

 

  • 取回計算結果(比如從Swift)

 

用戶方面

在使用Savanna配置集羣時,用戶在兩種類型實體上進行操作:Node Template和Cluster。

Node Template用於描述集羣中的節點,包含了幾個參數。節點類型就屬於Node Template的屬性之一,這將決定Hadoop將在節點上運行什麼樣的處理,確定節點在集羣中的扮演的角色,它可以是Job Tracker、NameNode、TaskTracker、DataNode或者這些節點的邏輯組合。Node Template同樣還保存了硬件參數,這些參數用於節點虛擬機以及Hadoop在節點上的工作內容。

Cluster實體用於描述Hadoop Cluster,描述了預裝Hadoop虛擬機特徵,用於集羣的部署和集羣拓撲。拓撲是節點模板和每個模板該部署節點數量的列表。關於拓撲,Savanna會驗證集羣中的NameNode和JobTracker是否唯一。

每個節點模板和集羣都歸屬於用戶給其分配的tenant,用戶只能訪問已接入tenant裏面的對象。用戶只能編輯或刪除他們建立的對象,當然管理員用戶可以訪問所有的對象,Savanna需要遵守同樣的OpenStack訪問策略。

Savanna提供了多種Hadoop集羣拓撲,Job Tracker和NameNode進程可以選擇在一或兩個獨立的虛擬機上運行。同樣集羣可以包含多種類型的工作節點,工作節點可以同時充當TaskTracker和DataNode,同樣也可以扮演一個角色。Savanna允許用戶任意選項的組合去建立集羣。

與Swift整合

在OpenStack中,Swift作爲標準對象存儲,類似Amazon S3。通常部署在實體主機上,Swift被作爲“OpenStack上的HDFS”,具備很多使用的增強功能。

首先爲Swift實現的文件系統: HADOOP-8545,這樣的話Hadoop作業就可以運行在Swift上。在Swift方面,我們必須將請求更改爲 Change I6b1ba25b。它將端點映射爲Object、Account或者是Container列表,這樣就可以將Swift與依賴數據位置信息的軟件整合,從而達到避免網絡開銷。

可插拔部署和監控

監視功能來自供應商定製的Hadoop管理工具,Savanna整合了類似Nagios及Zabbix可插拔外部監視系統。

部署和監控工具都將被安裝在獨立的虛擬機上,從而允許單一的實例同時管理或監控不同的集羣。 

原文鏈接: Savanna (編譯/仲浩 審校/王旭東)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章