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作業的預存儲。
常規工作流
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 (編譯/仲浩 審校/王旭東)