Hadoop開源已經實現
本節和大家一起學習一下Hadoop, 一個分布式系統基礎架構,由Apache基金會開發的,在這里和大家分享一下它的開源實現以及Hadoop研究方面的內容,希望通過本節的學習大家對Hadoop這一概念有清楚的認識。
Hadoop概念
一個分布式系統基礎架構,由Apache基金會開發。用戶可以在不了解分布式底層細節的情況下,開發分布式程序。充分利用集群的威力高速運算和存儲。
簡單地說來,Hadoop是一個可以更容易開發和運行處理大規模數據的軟件平臺。
Hadoop實現了一個分布式文件系統(HadoopDistributedFileSystem),簡稱HDFS。HDFS有著高容錯性(fault-tolerent)的特點,并且設計用來部署在低廉的(low-cost)硬件上。而且它提供高傳輸率(highthroughput)來訪問應用程序的數據,適合那些有著超大數據集(largedataset)的應用程序。HDFS放寬了(relax)POSIX的要求(requirements)這樣可以流的形式訪問(streamingaccess)文件系統中的數據。
開源實現
Hadoop是項目的總稱,起源于作者兒子的一只吃飽了的大象的名字。主要是由HDFS、MapReduce和Hbase組成。
HDFS是GoogleFileSystem(GFS)的開源實現。
MapReduce是GoogleMapReduce的開源實現。
HBase是GoogleBigTable的開源實現。
這個分布式框架很有創造性,而且有極大的擴展性,使得Google在系統吞吐量上有很大的競爭力。因此Apache基金會用Java實現了一個開源版本,支持Fedora、Ubuntu等Linux平臺。目前Hadoop受到Yahoo的支持,有Yahoo員工長期工作在項目上,而且Yahoo內部也準備使用Hadoop代替原來的的分布式系統。
Hadoop實現了HDFS文件系統和MapRecue。用戶只要繼承MapReduceBase,提供分別實現Map和Reduce的兩個類,并注冊Job即可自動分布式運行。
目前Release版本是0.20.1。還不成熟,但是已經集群規模已經可以達到4000個節點,是由Yahoo!實驗室中構建的。下面是此集群的相關數據:
•4000節點
•2xquadcoreXeons@2.5ghzper節點
•4x1TBSATADiskper節點
•8GRAMper節點
•千兆帶寬per節點
•每機架有40個節點
•每個機架有4千兆以太網上行鏈路
•RedhatLinuxAS4(Nahantupdate5)
•SunJavaJDK1.6.0_05-b13
•所以整個集群有30000多個CPU,近16PB的磁盤空間!
HDFS把節點分成兩類:NameNode和DataNode。NameNode是唯一的,程序與之通信,然后從DataNode上存取文件。這些操作是透明的,與普通的文件系統API沒有區別。
MapReduce則是JobTracker節點為主,分配工作以及負責和用戶程序通信。
HDFS和MapReduce實現是完全分離的,并不是沒有HDFS就不能MapReduce運算。
Hadoop也跟其他云計算項目有共同點和目標:實現海量數據的計算。而進行海量計算需要一個穩定的,安全的數據容器,才有了Hadoop分布式文件系統(HDFS,HadoopDistributedFileSystem)。
HDFS通信部分使用org.apache.hadoop.ipc,可以很快使用RPC.Server.start()構造一個節點,具體業務功能還需自己實現。針對HDFS的業務則為數據流的讀寫,NameNode/DataNode的通信等。
MapReduce主要在org.apache.hadoop.mapred,實現提供的接口類,并完成節點通信(可以不是hadoop通信接口),就能進行MapReduce運算。
目前這個項目還在進行中,還沒有到達1.0版本,和Google系統的差距也非常大,但是進步非常快,值得關注。
另外,這是云計算(CloudComputing)的初級階段的實現,是通向未來的橋梁。
Hadoop的發音音標[hædu:p]
Hadoop研究
Hadoop是原Yahoo的DougCutting根據Google發布的學術論文研究而來。DougCutting給這個Project起了個名字,
就叫Hadoop。其實Hadoop也是DougCutting的孩子的玩具的名字,一個可愛的黃色小象。
現在,DougCutting在Cloudera公司。Cloudera的Hadoop是商用版。不同開Apache的開源版。
如果要研究Hadoop的話,在下載Apache的版本是一種不錯的選擇。
只研究Apache版本的,不足以對Hadoop的理念理解。再對Cloudera版本的研究,會更上一層樓。
現在美國的AsterData,也是Hadoop的一個商用版,AsterData的MPP理念,ApplicationsWithin理念等等,
也都是值得研究。
Google的成功已經說明了RDB的下一代就是Nosql(NotOnlySQl),比說說GFS,Hadoop等等。
Hadoop作為開源的版本來說,其魅力更是不可估量。
上文中說到Google的學術論文,其中包涵有
GoogleFileSystem(大規模分散文件系統)
MapReduce(大規模分散FrameWork)
BigTable(大規模分散數據庫)
Chubby(分散鎖服務)
這四大InfrastructureSoftware的陳述。
說起Google的GFS和Hadoop,不僅讓我想起了,Unix和Linux。
由Unix而來的開源Linux,現在更是家喻戶曉了。很多大型公司都起用Linux作為服務器。
相信不久的將來,Hadoop會像Linux一樣,席卷全球,惠而全球。
【編輯推薦】