Hadoop中初步實現(xiàn)云計算
本節(jié)和大家學習一下有關Hadoop方面的內(nèi)容,主要包括Hadoop起源,開源實現(xiàn)和Hadoop未來預見,相信通過本節(jié)的介紹大家對Hadoop一定會有一個初步的了解。
Hadoop--云計算的初級實現(xiàn)、通向未來的橋梁
Hadoop是一個分布式系統(tǒng)基礎架構(gòu),由Apache基金會開發(fā)。用戶可以在不了解分布式底層細節(jié)的情況下,開發(fā)分布式程序。充分利用集群的威力高速運算和存儲。
起源:Google的集群系統(tǒng)
Google的數(shù)據(jù)中心使用廉價的LinuxPC機組成集群,在上面運行各種應用。即使是分布式開發(fā)的新手也可以迅速使用Google的基礎設施。核心組件是3個:
1、GFS(GoogleFileSystem)。一個分布式文件系統(tǒng),隱藏下層負載均衡,冗余復制等細節(jié),對上層程序提供一個統(tǒng)一的文件系統(tǒng)API接口。Google根據(jù)自己的需求對它進行了特別優(yōu)化,包括:超大文件的訪問,讀操作比例遠超過寫操作,PC機極易發(fā)生故障造成節(jié)點失效等。GFS把文件分成64MB的塊,分布在集群的機器上,使用Linux的文件系統(tǒng)存放。同時每塊文件至少有3份以上的冗余。中心是一個Master節(jié)點,根據(jù)文件索引,找尋文件塊。詳見Google的工程師發(fā)布的GFS論文。
2、MapReduce。Google發(fā)現(xiàn)大多數(shù)分布式運算可以抽象為MapReduce操作。Map是把輸入Input分解成中間的Key/Value對,Reduce把Key/Value合成最終輸出Output。這兩個函數(shù)由程序員提供給系統(tǒng),下層設施把Map和Reduce操作分布在集群上運行,并把結(jié)果存儲在GFS上。
3、BigTable。一個大型的分布式數(shù)據(jù)庫,這個數(shù)據(jù)庫不是關系式的數(shù)據(jù)庫。像它的名字一樣,就是一個巨大的表格,用來存儲結(jié)構(gòu)化的數(shù)據(jù)。
以上三個設施Google均有論文發(fā)表。
開源實現(xiàn)
這個分布式框架很有創(chuàng)造性,而且有極大的擴展性,使得Google在系統(tǒng)吞吐量上有很大的競爭力。因此Apache基金會用Java實現(xiàn)了一個開源版本,支持Fedora等Linux平臺。目前Hadoop受到Y(jié)ahoo的支持,有Yahoo員工長期工作在項目上,而且Yahoo內(nèi)部也準備使用Hadoop代替原來的基于FreeBSD的系統(tǒng)。
Hadoop實現(xiàn)了HDFS文件系統(tǒng)和MapRecue。目前版本是0.16。還不成熟,但是已經(jīng)可以在2000個節(jié)點上運行。用戶只要繼承MapReduceBase,提供分別實現(xiàn)Map和Reduce的兩個類,并注冊Job即可自動分布式運行。
HDFS把節(jié)點分成兩類:NameNode和DataNode。NameNode是***的,程序與之通信,然后從DataNode上存取文件。這些操作是透明的,與普通的文件系統(tǒng)API沒有區(qū)別。
MapReduce則是JobTracker節(jié)點為主,分配工作以及負責和用戶程序通信。
未來
目前這個項目還在進行中,還沒有到達1.0版本,和Google系統(tǒng)的差距也非常大,但是進步非???,值得關注。
另外,這是云計算(CloudComputing)的初級階段的實現(xiàn),是通向未來的橋梁。本節(jié)關于Hadoop的相關內(nèi)容介紹到這。
【編輯推薦】
- 技術(shù)分享 使用Linux和ApacheHadoop實現(xiàn)云計算
- Hadoop0.20.2集群配置入門指導手冊
- Hadoop文件系統(tǒng)如何快速安裝?
- Hadoop集群搭建過程中相關環(huán)境配置詳解
- Hadoop完全分布模式安裝實現(xiàn)詳解