Openstack Sahara開啟大數據云端之旅
Sahara是Openstack中BDaaS(BigData-as-a-Service)項目,它能夠以更加敏捷的方式管理大數據平台,將大數據平台遷移到雲平台,讓使用者感受到更加貼心的用戶體驗。
Sahara基礎
雲的擴展性、開放性、靈活性。Sahara將雲的這些先天性的優點,很好融合到大數據平台。
Sahara可以根據Hadoop/Spark對資源的一些特定要求,比如高性能的CPU,高速的讀寫能力硬碟(ssd),高速網路傳輸能力,Sahara通過Heat實現自動調度,將集群部署到具備這些特性的計算節點上。
大數據時代,數據是業務的基礎,數據無所不在,隨處可見,比如網遊、網購、移動支付、物流行業、金融系統等等,隨著數據的快速增長,增長量可能達到PB級。每個企業不得不面臨兩個問題,第一是如何簡單快捷的擴容,第二如何保證數據的安全。Openstack本身可以對接多種後端存儲,不管是自身的Swift對象存儲,還是分散式的Ceph存儲。都具備無限橫向擴展的能力,並且具有數據自我修復的能力。
Sahara架構
如下圖所示,用戶可以從Horizon Web UI或OpenStack命令行界面訪問和管理大數據資源。要使用OpenStack中的任何服務,需要對Keystone服務進行身份驗證。它也適用於Sahara,它需要註冊Keystone服務目錄。
為了能夠創建Hadoop集群,Sahara需要通過聯繫Glance來在其自己的映像註冊表中檢索和註冊虛擬機映像。 Nova也是為Hadoop集群配置和啟動虛擬機的另一個重要的OpenStack核心組件。此外,Sahara可以使用Heat來自動部署Hadoop集群。
Sahara組成
REST API:從儀錶板啟動的每個客戶端請求都將被轉換為REST API調用。
身份驗證:與其他任何OpenStack服務一樣,Sahara必須通過身份驗證服務Keystone進行身份驗證。這還包括使用Sahara服務的客戶和用戶授權。
供應商插件:供應商插件位於Sahara體系結構的中間,顯示要啟動的集群類型。像Cloudera和Apache Ambari這樣的供應商在Sahara提供他們的發行版,以便用戶可以基於他們的插件配置和啟動Hadoop。
彈性數據處理(EDP):支持在Hadoop/Spark集群上運行作業。 EDP確保將作業調度到集群中,並維護作業及其資源的狀態,數據源應從何處提取,應該將處理後的數據輸出寫入到何處。
協調管理器/配置引擎:Sahara集群配置和管理的核心組件。它通過Heat引擎與包括計算、網路、塊存儲和映像服務在內的其它OpenStack服務進行通信來部署集群。
數據訪問層(DAL):Sahara內部的數據存儲。
Sahara部署
從上面的架構可以看出,部署Sahara需要提前安裝好一些必要的組件,如Keystone、Glance、Nova、Cinder、Neutron、Heat、Horizon等,如果需要滿足生產環境的要求,還必須有後端存儲。
安裝完Sahara,檢查支持的plugin類型與版本號,通過瀏覽器界面,如下圖:
也可使用命令行查詢:
在http://sahara-files.mirantis.com/images/upstream/中提供了不同版本的plugins,能夠根據需要進行下載。
在EDP中Job抽取數據後,數據默認存放在Sahara資料庫,同時也支持文件共享存儲Manila和Swift對象存儲,也可使用Radosgw與Swift對接。實際環境中,優先考慮使用對象存儲。
還需要注意的是,採用Sahara部署大數據平台,需要有2個網路,一個是管理網路,一個是數據網路,平台能夠通過管理網路與節點進行通信。
Sahara優勢
快速配置
通過瀏覽器執行一些操作,亦或是通過命令行進行交互,部署Hadoop / Spark集群變得非常容易。不需要專業大數據的人員,傳統安裝的方法,安裝人員必須具備一定開發語言的能力,比如scala、java、python、ruby等。如果使用Sahara,只需一個模板或者通過Horizon界面點點滑鼠,創建一個Hadoop集群,彈指之間,分分鐘搞定。
集中管理
高效地從統一管理界面控制和監控Hadoop / Spark集群。在Sahara管理界面里可以看到,如下圖:
集群管理
Sahara提供了一個強勁的模板機制,配置、啟動、停止、縮放、調整大小等可能會改變Hadoop / Spark集群生態系統的生命周期管理,以可重複的方式執行相關操作,可以定義Hadoop / Spark配置的模板來簡化管理複雜度。
工作量管理
Sahara另一個關鍵特性是工作量管理。它能夠定義如何進行彈性數據處理,運行和調度作業,以及它們應該如何在集群中協同工作。用於數據處理的不同類型的作業有許多,例如MapReduce作業、Pig腳本、Oozie、JAR文件等,Sahara將決定這些不同類型的作業應該如何在定義的集群上運行。
Sahara還支持配置臨時集群,並根據需要終止它,例如,運行作業進行某些特定分析,並在作業完成後關閉集群。工作負載管理包含數據源,這些數據源定義了作業將從那讀取數據,並將處理結果寫入到什麼位置。
結束語
微信ID:maxchain
長按左側二維碼關注


TAG:Maxchain |