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