Hadoop源代碼分析(一)

Google的核心競爭技術是它的計算平臺。Google的大牛們用了下面5篇文章,介紹了它們的計算設施。
GoogleCluster: http://research.google.com/archive/googlecluster.html
Chubby:http://labs.google.com/papers/chubby.html
GFS:http://labs.google.com/papers/gfs.html
BigTable:http://labs.google.com/papers/bigtable.html
MapReduce:http://labs.google.com/papers/mapreduce.html
很快,Apache上就出現了一個類似的解決方案,目前它們都屬於Apache的Hadoop項目,對應的分別是:
Chubby-->ZooKeeper
GFS-->HDFS
BigTable-->HBase
MapReduce-->Hadoop
目前,基於類似思想的Open Source項目還很多,如Facebook用於用戶分析的Hive。
HDFS作爲一個分佈式文件系統,是所有這些項目的基礎。分析好HDFS,有利於瞭解其他系統。由於Hadoop的HDFS和MapReduce是同一個項目,我們就把他們放在一塊,進行分析。
下圖是MapReduce整個項目的頂層包圖和他們的依賴關係。Hadoop包之間的依賴關係比較複雜,原因是HDFS提供了一個分佈式文件系統,該系統提供API,可以屏蔽本地文件系統和分佈式文件系統,甚至象Amazon S3這樣的在線存儲系統。這就造成了分佈式文件系統的實現,或者是分佈式文件系統的底層的實現,依賴於某些貌似高層的功能。功能的相互引用,造成了蜘蛛網型的依賴關係。一個典型的例子就是包conf,conf用於讀取系統配置,它依賴於fs,主要是讀取配置文件的時候,需要使用文件系統,而部分的文件系統的功能,在包fs中被抽象了。
Hadoop的關鍵部分集中於圖中藍色部分,這也是我們考察的重點。

附件中有,詳細內容
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章