Hadoop實現云中分布式“大數據”處理
開源Hadoop在大量服務器上實現了“大數據”應用程序的分布式數據處理。它將給云中的應用程序帶來冗余和更高的性能,從而防止出現故障。
Hadoop是Apache軟件基金會的一個開源項目,它的出現是基于谷歌、雅虎、AOL和Facebook等公司的需求。這些公司需要在分布式服務器上支持大量數據的日常訪問。
有兩個因素使許多公司必須具備和使用Hadoop:大數據集應用程序不斷增多;很多分布式處理器和無限存儲量的云的可用性。
云中的Hadoop能夠在大量服務器之間實現并行處理,加快任務完成速度。Hadoop可以顯著提升數據搜索和處理的性能,如在數百萬零售商店活動中挖掘出零售產業數據的流行趨勢,或者情報機構從各種信息源收集安全信息以偵查恐怖活動。
Hadoop分布式處理是如何實現的?
Hadoop分布式文件系統(HDFS)由多個HDFS集群組成,其中每一個集群包含一個或多個數據節點。到達的數據會被劃分成段,并分布于數據節點,以支持并行處理。然后,每一個段會被復制到多個數據節點上,這樣,即使節點出現故障,仍然能夠繼續執行處理。
為了進一步防止故障發生,副本會被保存在多個機架的數據節點上。假設有三份默認備份,那么同一個機架上會保存兩份段副本,另一個機架的節點保存另一份副本。
雖然HDFS能夠抵御各種類型的故障,但是它也不是完全容錯的。一個服務器必須部署一個NameNode。如果這個服務器出現故障,那么整個文件系統就會關閉。另一個NameNode會周期性備份主節點數據。備份數據將用于重啟主節點,但是不能用于保存操作。
Hadoop部署一般都會使用HDFS,但是也支持其他的文件系統。MapR Technologies最近發布了一個兼容Hadoop的文件系統。這種文件系統增加了一些新特性,包括一個分布式NameNode,它去除了HDFS的單故障點。
它也支持Amazon S3文件系統,但是它無法保存數據段的位置信息,從而降低了Hadoop抵御服務器或機架故障的能力。但其他的文件系統都能夠保存位置信息,如開源的CloudStore和MapR文件系統。
MapReduce引擎能夠管理分布式數據處理
MapReduce由一個JobTracker和多個TaskTracker組成。客戶端應用程序會將任務提交到JobTracker,由JobTracker將每個任務分配到一個TaskTracker節點。當HDFS或另一個感知位置的文件系統正處于在使用中時,JobTracker會利用每一個數據段已知的位置并嘗試將處理分配到同一個包含所需數據的節點上。
每一個TaskTracker支持可配置數量的并發任務。如果數據所在的同一個節點上的TaskTracker無法分配更多的任務,那么JobTracker會嘗試將任務分配給數據所在同一個機架的節點上。這種策略有利于資源數據中心骨干網絡的數據流量,并且能夠更多利用機架內可用網絡帶寬。
TaskTracker建立了一個獨立的Java虛擬機,以防止任務崩潰導致整個TaskTracker失效。如果有一個任務出錯,那么TaskTracker會通知JobTracker,然后JobTracker會將任務分配到其他位置。如果有一個TaskTracker失效,那么它分配的所有任務都會被重新分配。JobTracker會定期檢查進度,如果它失效了,那么就會有一個新JobTracker啟動,接管上一個記錄點的處理。
每一個映射/減少任務的輸出都會與其他任務輸出進行組合,以實現進一步處理。組合多個任務的輸出會將大量的數據輸入到少量的處理器上。網絡交換機所承受的壓力會隨著下一個處理階段所在節點的數據覆蓋率的增加而增大。同樣,在不阻擋或丟棄數據包的情況下,交換機必須支持這些傳輸。
供應商提供Hadoop數據處理部署支持
雖然Hadoop用戶能夠從Apache下載軟件,但是許多供應商的產品部署更簡單,并且支持Hadoop安裝。下面是這樣一些供應商及其產品:
•Hortonworks Inc.這是雅虎的一個子公司,它雇傭了許多設計和實現Hadoop關鍵組件的雅虎前員工。Hortonworks的Hadoop數據平臺是一組打包和經過測試的Hadoop開源軟件組件。Hortonworks還為Hadoop用戶提供支持和培訓服務。
•Cloudera Inc. 它推出了CDH和Cloudera Enterprise、Cloudera Management and Service和Configuration Manager (SCM) Express等產品。CDH是一個免費下載的Hadoop開源集成和測試組件包。Cloudera Enterprise是一個訂閱產品,它在開源組件的基礎上增加了Cloudera Management套件,有Cloudera員工的持續支持。Cloudera的產品交付方式同時支持客戶內部數據中心和各種公共云,如Amazon EC2、Rackspace、SoftLayer或VMware vCloud。Cloudera還提供Hadoop培訓與專業服務。
•EMC Corp. 它與MapR合作開發EMC Greenplum HD社區版、EMC Greenplum HD企業版和EMC Greenplum HD數據計算設備。社區版是一組經過測試的開源Apache Hadoop組件。企業版是一套兼容Apache開源Hadoop的界面。它用MapR文件系統替代HDFS,主要特點是提升了高可用性,增加了控制數據位置的功能,從而使需要密集計算的應用程序能夠部署在一臺包含高性能處理器的服務器上。EMC還宣稱其產品的性能遠遠高于Apache組件。
•IBM和戴爾也推出了Hadoop集成包。IBM推出了InfoSphere BigInsights基礎版和企業版,而戴爾與Cloudera合作推出了Cloudera Enterprise。
軟件供應商也在推進Hadoop支持。微軟正與Hortonworks合作將Hadoop移植到Windows平臺。Oracle、Sybase和Informatica都宣布了Hadoop支持計劃。對于Hadoop的關注預計會繼續增長。集成和經過測試的發行版、供應商產品、支持和培訓等都讓企業簡化了部署和運營Hadoop。再加上大型數據庫的分析需求及公共與私有云的可用性,這些都使大規模應用Hadoop成為可能。