OpenStack Sahara是個命令行工具,通過簡化流程,跟蹤復雜的細節,使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、英特爾等等。
開始可以在一臺機器上安裝OpenStack,但是,在做任何承諾之前,需要對其進行測試。有幾種測試的方法??梢允褂肦HEL或CentOS的Packstack ,也叫RDO?;蛘呖梢允褂肈evStack Fedora、Ubuntu和CentOS。還可以使用Ubuntu 的Mirantis Fuel。
第一步是將虛擬機鏡像上傳到OpenStack Glance??梢允褂肏orizon儀表板或者Glance命令行。對于虛擬機,需要一個具有可用cloud-init的圖像。Cloud-init便于部署到云,通過生成Secure Shell鍵,設置默認的定位和設置主機名。
使用Sahara通過其他OpenStack組件,可以使用命令行界面,或者可以使用Horizon儀表板。儀表板顯然更加容易。無論使用哪種方式,都需要安裝Sahara。這是一個漫長的過程,OpenStack在其網站上提供了這樣做的詳盡說明。
部署Hadoop的基本步驟,首先是配置及部署VM,之后,才能確定每個VM提供哪種Hadoop角色。如下:
Namenode: Hadoop分布式文件系統(HDFS)的存儲細節,運行JobTrackerDatanode: 運行工作的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??梢允荢park、Pig、Java、MapReduce等等。然后,啟動集群工作。最后,輸出結果到Cinder或者其他存儲。
Spark、Hadoop和SaharaOpenStack 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,但是,這些都不是云的操作系統。