OpenStack Sahara是個命令行工具,經過簡化流程,跟蹤複雜的細節,使Hadoop和 Spark的安裝、部署變得更加簡單。前端
OpenStack如何構建Hadoop和Spark系統node
OpenStack是一種雲操做系統,用於提供虛擬機,而OpenStack Sahara是一個附加組件,使管理員可以在這些虛擬機上部署 Spark和Hadoop。換句話說,你能夠將OpenStack Sahara做爲一箇中心點,構建Hadoop和Spark分佈架構,作大數據分析。程序員
Sahara自己提供的插件,能夠用於不一樣供應商分配的Hadoop和Spark:面試
Vanilla: Apache Hadoop;服務器
Ambari: Hortonworks Hadoop;架構
Spark: Apache Spark with Cloudera HDFS、Apache Spark with Cloudera Hadoop等分佈式
MapR:MapR plugin和 MapR File System等, Hadoop和Spark 準前端工具
Cloudera:Cloudera Hadoop分佈式oop
從技術層面講,不須要使用Hadoop來運行Spark,可是,因爲Spark被分配存儲在一個分佈式架構中,所以,使用Hadoop來運行Spark,是最佳的選擇。另外,Spark自身沒有存儲機制。佈局
在架構中,Sahara 運行在OpenStack控制器節點上,而Hadoop集羣運行在OpenStack計算節點上。
固然,還有其餘的方法來部署Hadoop,好比說使用Docker containers,或者,還能夠將Hadoop手動安裝在虛擬或物理機器上。例如經過Ansible或者Puppet工具,使得這一切變得更加簡單化。還有不少供應商以及供應商輔助工具可供選擇,如Cloudera和MapR。另外,能夠在不一樣雲供應商的雲中運行Hadoop。
使用OpenStack Sahara提供了一箇中心點,能夠部署並啓動Hadoop,給每一個VM分配一個Hadoop角色。做爲一個開源的產品—一個不依賴於任何供應商的產品—可以得到OpenStack貢獻者的支持,例如RedHat、Ubuntu、Suse、惠普、Workday、SAP、英特爾等等。歡迎加入大數據學習交流分享羣: 658558542 一塊兒吹水交流學習(☛點擊便可加入羣聊)
開始
能夠在一臺機器上安裝OpenStack,可是,在作任何承諾以前,須要對其進行測試。有幾種測試的方法。可使用RHEL或CentOS的Packstack ,也叫RDO。或者可使用DevStack Fedora、Ubuntu和CentOS。還可使用Ubuntu 的Mirantis Fuel。
第一步是將虛擬機鏡像上傳到OpenStack Glance。可使用Horizon儀表板或者Glance命令行。對於虛擬機,須要一個具備可用cloud-init的圖像。Cloud-init便於部署到雲,經過生成Secure Shell鍵,設置默認的定位和設置主機名。
使用Sahara
經過其餘OpenStack組件,可使用命令行界面,或者可使用Horizon儀表板。儀表板顯然更加容易。不管使用哪一種方式,都須要安裝Sahara。這是一個漫長的過程,OpenStack在其網站上提供了這樣作的詳盡說明。
部署Hadoop的基本步驟,首先是配置及部署VM,以後,才能肯定每一個VM提供哪一種Hadoop角色。以下:
Namenode: Hadoop分佈式文件系統(HDFS)的存儲細節,運行JobTracker
Datanode: 運行工做的HDFS一部分
二級節點名稱:做爲名稱節點備份,以防名稱節點出現異常
Oozie:工做流調度程序
資源管理器:使用Apache、Yarn或者Mesos 分配資源—內存和CPU
節點管理器:定位每一個服務器的角色—節點—Hadoop系統中
工做歷史服務器:密切關注MapReduce和其餘工做的執行狀況,而且,在必要時,進行從新安排。
繼續使用OpenStack Sahara部署Hadoop,上傳一個VM映像,例如帶cloud-init的Ubuntu。接下來,使用Safari註冊一個圖像,將你使用的插件添加匹配的標籤,例如Vanilla。向Horizon添加Sahara時,可使用儀表板。VM模板、節點組模板具備相同的RAM和CPU特色,例如,m1.medium。最後,將節點組模板與集羣模板相結合。
一旦完成這些步驟,在Horizon建立實例,設置主從Hadoop節點。而後,啓動集羣—實例。能夠建立一個Hadoop job。能夠是Spark、Pig、Java、MapReduce等等。而後,啓動集羣工做。最後,輸出結果到Cinder或者其餘存儲。
Spark、Hadoop和Sahara
OpenStack Sahara並非Hadoop或者Spark的加強版。相反,你能夠把OpenStack Sahara看做一個圖形或者命令行工具,使用OpenStack Sahara,創建一個分佈式Hadoop或者Spark系統,變得更加簡單。OpenStack Sahara不只有助於安裝這些系統;OpenStack Sahara還能跟蹤服務器的服務功能。所以,經過屏幕,能夠看到整個佈局。
沒有OpenStack Sahara的話,安裝Spark或者Hadoop存在的最大困難是,你須要手動安裝虛擬機。藉助於OpenStack Sahara,能夠跳過這一步,而後,你能夠在上面安裝Hadoop和 Spark。
OpenStack Sahara使你可以爲每一個服務器分配一個角色,所以,你要知道哪些服務器是用來存儲數據的,哪些服務器是用來收集數據的,哪些服務器是用來協調全部活動的。一旦這一切已經敲定,當你須要規模擴展的時候,你能夠重複這個過程。這是由於,你能夠將你的想法另存爲模板,就像OpenStack將不一樣的VM配置保存爲模板。
OpenStack Sahara也可以幫助你跟蹤其餘複雜的細節,而且將這些複雜的細節歸入決策。例如,Hadoop背後的指導原則是,Hadoop使得每一塊冗餘數據分爲三份。所以,把全部數據放置在同一臺機器上、電源或者架子上,毫無心義。Sahara能起到很大的做用,由於Sahara自己就知道數據中心架配置,爲了提升性能,能夠將數據集中,爲了不冗餘的話,也能夠將數據分開。
綜上所述,對那些已經使用OpenStack的用戶來講,Sahara使得安裝Hadoop和Spark變得更加容易。固然,你也可使用Puppet、Ansible或者Docker,可是,這些都不是雲的操做系統。
結語
感謝您的觀看,若有不足之處,歡迎批評指正。
若是有對大數據感興趣的小夥伴或者是從事大數據的老司機能夠加羣:
658558542 (☛點擊便可加入羣聊)
裏面整理了一大份學習資料,全都是些乾貨,包括大數據技術入門,海量數據高級分析語言,海量數據存儲分佈式存儲,以及海量數據分析分佈式計算等部分,送給每一位大數據小夥伴,這裏不止是小白彙集地,還有大牛在線解答!歡迎初學和進階中的小夥伴一塊兒進羣學習交流,共同進步!
最後祝福全部遇到瓶頸的大數據程序員們突破本身,祝福你們在日後的工做與面試中一切順利。