資源描述:
《用hadoop進(jìn)行分布式并行編程-1》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、用Hadoop進(jìn)行分布式并行編程(一)(注:本文檔來自hadoopinchina)基本概念與安裝部署級(jí)別:初級(jí)曹羽中(caoyuz@cn.ibm.com),軟件工程師,IBM中國開發(fā)中心2008年5月22日Hadoop是一個(gè)實(shí)現(xiàn)了MapReduce計(jì)算模型的開源分布式并行編程框架,借助于Hadoop,程序員可以輕松地編寫分布式并行程序,將其運(yùn)行于計(jì)算機(jī)集群上,完成海量數(shù)據(jù)的計(jì)算。本文將介紹MapReduce計(jì)算模型,分布式并行計(jì)算等基本概念,以及Hadoop的安裝部署和基本運(yùn)行方法。Hadoop簡介Hadoop是一個(gè)開源
2、的可運(yùn)行于大規(guī)模集群上的分布式并行編程框架,由于分布式存儲(chǔ)對(duì)于分布式編程來說是必不可少的,這個(gè)框架中還包含了一個(gè)分布式文件系統(tǒng)HDFS(HadoopDistributedFileSystem)。也許到目前為止,Hadoop還不是那么廣為人知,其最新的版本號(hào)也僅僅是0.16,距離1.0似乎都還有很長的一段距離,但提及Hadoop一脈相承的另外兩個(gè)開源項(xiàng)目Nutch和Lucene(三者的創(chuàng)始人都是DougCutting),那絕對(duì)是大名鼎鼎。Lucene是一個(gè)用Java開發(fā)的開源高性能全文檢索工具包,它不是一個(gè)完整的應(yīng)用程序,
3、而是一套簡單易用的API。在全世界范圍內(nèi),已有無數(shù)的軟件系統(tǒng),Web網(wǎng)站基于Lucene實(shí)現(xiàn)了全文檢索功能,后來DougCutting又開創(chuàng)了第一個(gè)開源的Web搜索引擎(http://www.nutch.org)Nutch,它在Lucene的基礎(chǔ)上增加了網(wǎng)絡(luò)爬蟲和一些和Web相關(guān)的功能,一些解析各類文檔格式的插件等,此外,Nutch中還包含了一個(gè)分布式文件系統(tǒng)用于存儲(chǔ)數(shù)據(jù)。從Nutch0.8.0版本之后,DougCutting把Nutch中的分布式文件系統(tǒng)以及實(shí)現(xiàn)MapReduce算法的代碼獨(dú)立出來形成了一個(gè)新的開源項(xiàng)H
4、adoop。Nutch也演化為基于Lucene全文檢索以及Hadoop分布式計(jì)算平臺(tái)的一個(gè)開源搜索引擎?;贖adoop,你可以輕松地編寫可處理海量數(shù)據(jù)的分布式并行程序,并將其運(yùn)行于由成百上千個(gè)結(jié)點(diǎn)組成的大規(guī)模計(jì)算機(jī)集群上。從目前的情況來看,Hadoop注定會(huì)有一個(gè)輝煌的未來:"云計(jì)算"是目前灸手可熱的技術(shù)名詞,全球各大IT公司都在投資和推廣這種新一代的計(jì)算模式,而Hadoop又被其中幾家主要的公司用作其"云計(jì)算"環(huán)境中的重要基礎(chǔ)軟件,如:雅虎正在借助Hadoop開源平臺(tái)的力量對(duì)抗Google,除了資助Hadoop開發(fā)團(tuán)
5、隊(duì)外,還在開發(fā)基于Hadoop的開源項(xiàng)目Pig,這是一個(gè)專注于海量數(shù)據(jù)集分析的分布式計(jì)算程序。Amazon公司基于Hadoop推出了AmazonS3(AmazonSimpleStorageService),提供可靠,快速,可擴(kuò)展的網(wǎng)絡(luò)存儲(chǔ)服務(wù),以及一個(gè)商用的云計(jì)算平臺(tái)AmazonEC2(AmazonElasticComputeCloud)。在IBM公司的云計(jì)算項(xiàng)目--"藍(lán)云計(jì)劃"中,Hadoop也是其中重要的基礎(chǔ)軟件。Google正在跟IBM合作,共同推廣基于Hadoop的云計(jì)算。迎接編程方式的變革在摩爾定律的作用下,以
6、前程序員根本不用考慮計(jì)算機(jī)的性能會(huì)跟不上軟件的發(fā)展,因?yàn)榧s每隔18個(gè)月,CPU的主頻就會(huì)增加一倍,性能也將提升一倍,軟件根本不用做任何改變,就可以享受免費(fèi)的性能提升。然而,由于晶體管電路已經(jīng)逐漸接近其物理上的性能極限,摩爾定律在2005年左右開始失效了,人類再也不能期待單個(gè)CPU的速度每隔18個(gè)月就翻一倍,為我們提供越來越快的計(jì)算性能。Intel,AMD,IBM等芯片廠商開始從多核這個(gè)角度來挖掘CPU的性能潛力,多核時(shí)代以及互聯(lián)網(wǎng)時(shí)代的到來,將使軟件編程方式發(fā)生重大變革,基于多核的多線程并發(fā)編程以及基于大規(guī)模計(jì)算機(jī)集群的
7、分布式并行編程是將來軟件性能提升的主要途徑。許多人認(rèn)為這種編程方式的重大變化將帶來一次軟件的并發(fā)危機(jī),因?yàn)槲覀儌鹘y(tǒng)的軟件方式基本上是單指令單數(shù)據(jù)流的順序執(zhí)行,這種順序執(zhí)行十分符合人類的思考習(xí)慣,卻與并發(fā)并行編程格格不入?;诩旱姆植际讲⑿芯幊棠軌蜃屲浖c數(shù)據(jù)同時(shí)運(yùn)行在連成一個(gè)網(wǎng)絡(luò)的許多臺(tái)計(jì)算機(jī)上,這里的每一臺(tái)計(jì)算機(jī)均可以是一臺(tái)普通的PC機(jī)。這樣的分布式并行環(huán)境的最大優(yōu)點(diǎn)是可以很容易的通過增加計(jì)算機(jī)來擴(kuò)充新的計(jì)算結(jié)點(diǎn),并由此獲得不可思議的海量計(jì)算能力,同時(shí)又具有相當(dāng)強(qiáng)的容錯(cuò)能力,一批計(jì)算結(jié)點(diǎn)失效也不會(huì)影響計(jì)算的正常進(jìn)行以
8、及結(jié)果的正確性。Google就是這么做的,他們使用了叫做MapReduce的并行編程模型進(jìn)行分布式并行編程,運(yùn)行在叫做GFS(GoogleFileSystem)的分布式文件系統(tǒng)上,為全球億萬用戶提供搜索服務(wù)。Hadoop實(shí)現(xiàn)了Google的MapReduce編程模型,提供了簡單易用的編程接口,也提供了它自己的分布式文