來源:中興大數(shù)據(jù) 時(shí)間:2016-01-19 09:44:09 作者:牛家浩 每一個(gè)知道大數(shù)據(jù)的人都聽說過Hadoop,,作為基礎(chǔ)框架,,其憑借著低成本、高可靠,、高擴(kuò)展,、高有效、高容錯(cuò)等特性成為最流行的大數(shù)據(jù)分析系統(tǒng),。要入門大數(shù)據(jù),,最好的辦法就是理清Hadoop的生態(tài)系統(tǒng)。 Hadoop是Apache軟件基金會(huì)的頂級(jí)開源項(xiàng)目,,是由原雅虎公司Doug Cutting根據(jù)Google發(fā)布的學(xué)術(shù)論文而創(chuàng)建的開源項(xiàng)目,。Doug Cutting被稱為Hadoop之父,,他打造了目前在云計(jì)算和大數(shù)據(jù)領(lǐng)域里如日中天的Hadoop,。 Hadoop的發(fā)音是[h?du:p],Hadoop 這個(gè)名字不是一個(gè)縮寫,,而是一個(gè)虛構(gòu)的名字,。Doug Cutting解釋Hadoop的得名:“這個(gè)名字是我孩子給一個(gè)棕黃色的大象玩具命名的。我的命名標(biāo)準(zhǔn)就是簡短,、容易發(fā)音和拼寫,,沒有太多的意義,并且不會(huì)被用于別處,,小孩子恰恰是這方面的高手”,。 Apache Hadoop官方定義是:Hadoop項(xiàng)目??是一套可靠的,可擴(kuò)展的,,支持分布式計(jì)算的開源軟件,。 Hadoop是一個(gè)基礎(chǔ)框架,允許用簡單的編程模型在計(jì)算機(jī)集群對大型數(shù)據(jù)集使進(jìn)行分布式處理,。它的設(shè)計(jì)規(guī)模從單一服務(wù)器到數(shù)千臺(tái)機(jī)器,,每個(gè)都提供本地計(jì)算和存儲(chǔ),框架本身提供計(jì)算機(jī)集群高可用的服務(wù)而不是依靠硬件來提供高可用性,。用戶可以在不了解分布式底層細(xì)節(jié)的情況下,,輕松地在Hadoop上開發(fā)和運(yùn)行處理海量數(shù)據(jù)的應(yīng)用程序,低成本,、高可靠,、高擴(kuò)展、高有效,、高容錯(cuò)等特性讓Hadoop成為最流行的大數(shù)據(jù)分析系統(tǒng),。 Hadoop特點(diǎn): ●Hadoop是一個(gè)能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件框架,它是以一種可靠,、高效,、可伸縮的方式進(jìn)行數(shù)據(jù)處理,。 ●Hadoop 是可靠的,它假設(shè)計(jì)算元素和存儲(chǔ)會(huì)失敗,,因此它維護(hù)多個(gè)數(shù)據(jù)副本,,確保能夠針對失敗的節(jié)點(diǎn)重新分布處理。 ●Hadoop 是高效的,,它以并行的方式工作,,通過并行處理加快處理速度。 ●Hadoop 還是可伸縮的,,能夠處理PB級(jí)數(shù)據(jù),。 ●Hadoop是一個(gè)能夠讓用戶輕松架構(gòu)和使用的分布式計(jì)算平臺(tái)。用戶可以輕松地在Hadoop上開發(fā)和運(yùn)行處理海量數(shù)據(jù)的應(yīng)用程序,。 ●Hadoop帶有用Java語言編寫的框架,,因此運(yùn)行在 Linux 生產(chǎn)平臺(tái)上是非常理想的。Hadoop 上的應(yīng)用程序也可以使用其他語言編寫,,比如C++,。 ●Hadoop 依賴于社區(qū)服務(wù),它的成本比較低,。 Hadoop版本演進(jìn) 當(dāng)前Hadoop有兩大版本:Hadoop 1.0和Hadoop 2.0,,如下圖所示。 Hadoop版本演進(jìn)圖 Hadoop1.0被稱為第一代Hadoop,,由分布式文件系統(tǒng)HDFS和分布式計(jì)算框架MapReduce組成,,其中,HDFS由一個(gè)NameNode和多個(gè)DataNode組成,,MapReduce由一個(gè)JobTracker和多個(gè)TaskTracker組成,,對應(yīng)Hadoop版本為0.20.x、0.21.X,,0.22.x和Hadoop 1.x,。其中0.20.x是比較穩(wěn)定的版本,最后演化為1. x,,變成穩(wěn)定版本,。0.21.x和0.22.x則增加了NameNode HA等新特性。 第二代Hadoop被稱為Hadoop2.0,,是為克服Hadoop 1.0中HDFS和MapReduce存在的各種問題而提出的,,對應(yīng)Hadoop版本為Hadoop 0.23.x和2.x。 針對Hadoop1.0中NameNode HA不支持自動(dòng)切換且切換時(shí)間過長的風(fēng)險(xiǎn),,Hadoop2.0提出了基于共享存儲(chǔ)的HA方式,,支持失敗自動(dòng)切換切回。 針對Hadoop 1.0中的單NameNode制約HDFS的擴(kuò)展性問題,,提出了HDFS Federation機(jī)制,,它允許多個(gè)NameNode各自分管不同的命名空間進(jìn)而實(shí)現(xiàn)數(shù)據(jù)訪問隔離和集群橫向擴(kuò)展,。 針對Hadoop 1.0中的MapReduce在擴(kuò)展性和多框架支持方面的不足,提出了全新的資源管理框架YARN,,它將JobTracker中的資源管理和作業(yè)控制功能分開,,分別由組件ResourceManager和ApplicationMaster實(shí)現(xiàn)。其中,,ResourceManager負(fù)責(zé)所有應(yīng)用程序的資源分配,,而ApplicationMaster僅負(fù)責(zé)管理一個(gè)應(yīng)用程序。相比于 Hadoop 1.0,,Hadoop 2.0框架具有更好的擴(kuò)展性,、可用性、可靠性,、向后兼容性和更高的資源利用率以及能支持除了MapReduce計(jì)算框架外的更多的計(jì)算框架,,Hadoop 2.0目前是業(yè)界主流使用的Hadoop版本。(牛家浩) 責(zé)任編輯:王培 |
|