OpenStack Sahara是個命令行工具,通過簡化流程,跟蹤復雜的細節,使Hadoop和 Spark的安裝、部署變得更加簡單。
OpenStack如何構建Hadoop和Spark系統
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分布式
從技術層面講,不需要使用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? ? (?點擊即可加入群聊)
里面整理了一大份學習資料,全都是些干貨,包括大數據技術入門,海量數據高級分析語言,海量數據存儲分布式存儲,以及海量數據分析分布式計算等部分,送給每一位大數據小伙伴,這里不止是小白聚集地,還有大牛在線解答!歡迎初學和進階中的小伙伴一起進群學習交流,共同進步!
最后祝福所有遇到瓶頸的大數據程序員們突破自己,祝福大家在往后的工作與面試中一切順利。