版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 2011屆</b></p><p><b> 華北科技學院</b></p><p> 本科畢業(yè)設計(論文)</p><p> 設計(論文)題目: 基于Hadoop的云計算研究與實現(xiàn) </p><p> 專 題題 目:
2、 </p><p> 姓名: XXX 學號: 200707024115 </p><p> 專業(yè)班級: 網絡B071 系(部、院): 計算機系 </p><p> 指導老師: XXX </p>
3、<p> 2015年6月20日</p><p><b> 摘 要</b></p><p> 云計算是2007年底正式提出的一個新的概念,它可以說是一個革命性的創(chuàng)新,意味著計算能力也可以作為一種商品進行流通,就像煤氣、水電一樣,取用方便,費用低廉,不同之處只是在于它是使用互聯(lián)網進行傳輸?shù)?。至今為止,Google、Microsoft、IBM、亞馬遜等IT
4、商業(yè)巨頭都推出了自己的云計算平臺,并把云計算作為其未來發(fā)展的最主要戰(zhàn)略之一。因此,云計算的研究不但緊跟業(yè)界技術發(fā)展的趨勢,同時還具有較高的應用價值。</p><p> Hadoop是一個在集群上運行大型數(shù)據庫處理應用程序的開放式源代碼框架。它是通過Google的MapReduce編程范例來創(chuàng)建并執(zhí)行的應用程序,在很多大型網站上都已經得到了應用,可以說是目前最為廣泛應用的開源云計算軟件平臺,但其發(fā)展時間較短,研究
5、還不夠深入,還有較多值得改進的地方。</p><p><b> Abstract</b></p><p> As a new concept proposed in the end of 2007,cloud computing is a great revolution in the IT field.It means that computing call b
6、e used as a commodity, like coal gas or electricity.The only difference between them is that cloud computing transports by the computer networks.Up to now, Google、Microsoft、IBM、Amazon and some other famous cooperations h
7、ave proposed their cloud computing application, and take cloud computing as one of the most important strategy in the future.</p><p> Hadoop is an open source code frame for very large data process applicat
8、ion, which runs on a cluster of commercial PCs.It create parallel program through Google`s MapReduce method and has already been used by many famous IT companies.Hadoop can be taken as the most popular open source could
9、computing software,but there are many points to be improved since it is a young program.</p><p><b> 目 錄</b></p><p><b> 摘 要ii</b></p><p> Abstractiii&l
10、t;/p><p> 第1章 緒 論3</p><p> 1.1本文工作的來源3</p><p> 1.2目的和意義3</p><p> 1.3國內外進展4</p><p> 1.3.1國外進展4</p><p> 1.3.2國內進展6</p><p>
11、; 1.4本文工作的主要內容7</p><p> 第2章 云計算相關背景9</p><p> 2.1云計算概述9</p><p> 2.1.1云計算基本概念9</p><p> 2.1.2云計算的特點和優(yōu)勢11</p><p> 2.1.3云計算的典型應用12</p><p&
12、gt; 2.2云計算關鍵技術14</p><p> 2.2.1簡單的編程模式14</p><p> 2.2.2數(shù)據存儲和管理15</p><p> 2.2.3虛擬化技術15</p><p> 第3章 Hadoop平臺研究17</p><p><b> 3.1概述17</b>
13、</p><p> 3.1.1Hadoop概述17</p><p> 3.1.2HDFS介紹18</p><p> 3.1.3MapReduce介紹19</p><p> 3.2Hadoop構架以及原理21</p><p> 3.3GFS 文件系統(tǒng)23</p><p>
14、; 3.3.1系統(tǒng)架構23</p><p> 3.4Hadoop API 的使用26</p><p> 3.4.1 API 中的包26</p><p> 3.4.2MapReduce框架結構26</p><p> 第4章 基于Hadoop分布式運行程序36</p><p> 4.1搭建Hadoo
15、p環(huán)境36</p><p> 4.1.1裝機階段36</p><p> 4.1.2配置階段38</p><p> 4.2 一個wordcount實例40</p><p> 4.2.1系統(tǒng)概述40</p><p> 4.2.2實現(xiàn)Map類41</p><p> 4.2.3實
16、現(xiàn) Reduce 類42</p><p> 4.2.4運行 Job42</p><p> 4.2.5設計與編碼43</p><p> 4.2.6測試運行44</p><p><b> 結 論47</b></p><p> 參 考 文 獻48</p><p
17、><b> 致 謝49</b></p><p><b> 附錄A代碼50</b></p><p> 外文科技資料翻譯54</p><p><b> 英文原文54</b></p><p><b> 中文譯文63</b></
18、p><p><b> 第1章 緒 論</b></p><p> 1.1本文工作的來源</p><p> 云計算是2007年底正式提出的一個新的概念,至今為止,幾乎所有的IT行業(yè)巨頭都將云計算作為未來發(fā)展的主要戰(zhàn)略之一 [5][6],相關商業(yè)媒體也將云計算視為計算機未來發(fā)展的主要趨勢 [7],其商業(yè)前景和應用需求已勿庸置疑。</p>
19、;<p> 云計算是一種全新的商業(yè)模式,其核心部分依然是云后端的數(shù)據中心,它使用的硬件設備主要是成千上萬的工業(yè)標準服務器,它們由英特爾或AMD生產的處理器以及其他硬件廠商的產品組成。企業(yè)和個人用戶通過高速互聯(lián)網得到計算能力,從而避免了大量的硬件投資。</p><p> 云計算的基本原理是,通過將計算分布在大量的分布式計算機上,使企業(yè)數(shù)據中心的運行更加類似于使用互聯(lián)網。從而使企業(yè)能夠將隨時資源切換
20、到需要的應用上,根據需求訪問計算機和存儲系統(tǒng)。</p><p> 云計算已經深刻地影響著整個IT產業(yè)。云計算是在分布式計算、網格計算、并行計算等發(fā)展的基礎上提出的一種新型計算模型,是一種新興的共享基礎架構的方法。它將帶來工作方式和商業(yè)模式的根本性改變。我們的生活已經與互聯(lián)網密不可分,云計算的發(fā)展足一種不可逆轉的趨勢。因此,我們需要更進一步地認識云計算技術,探索它的發(fā)展與問題。</p><p&
21、gt;<b> 1.2目的和意義</b></p><p> Hadoop是Apache開源組織的一個分布式計算開源框架,它可以運行在大中型集群的廉價硬件設備上,為應用程序提供了一組穩(wěn)定可靠的接口。同時,它是Google集群系統(tǒng)的一個開源項目總稱,Google集群系統(tǒng)是使用低成本的成熟技術構建的一個穩(wěn)定、高性能、高可用性、可擴展的系統(tǒng),它的底層是Google文件系統(tǒng)(Google File
22、 System,GFS)。HDFS是GFS的開源實現(xiàn),它是Hadoop的底層實現(xiàn)部分,存儲Hadoop集群中所有存儲節(jié)點上的文件。Hadoop平臺雖然是一項新興的技術,但它的發(fā)展非常迅速,究其原因首先在于它將并行計算“平民化",它對程序員屏蔽了并行應用開發(fā)的細節(jié),程序員只需將精力放在業(yè)務邏輯上。其次Hadoop平臺可以運行在普通的PC機群上,極大地降低開發(fā)成本,這也讓個人研究、實施分布式系統(tǒng)更加容易。</p>&
23、lt;p> 總的來說,本文有以下幾方面的意義:</p><p> 1).現(xiàn)代企業(yè)的數(shù)據量十分龐大,如何對海量數(shù)據進行有效管理成為了企業(yè)的關鍵問題。如果利用云存儲技術解決這個問題,無疑會提高企業(yè)的經濟效益。</p><p> 2).HDFS可以實施運行在普通的PC集群上,極大降低了實施運行分布式系統(tǒng)的成本。</p><p> 3).對HDFS的研究方法可
24、以推廣到別的集群存儲技術研究上,為下一步研究打好基礎。</p><p> 4).Hadoop平臺還沒有被廣泛地應用于各行各業(yè),一旦我們在基于HDFS的云存儲應用研究取得一定的成效,就會對Hadoop技術起到推廣作用。</p><p><b> 1.3國內外進展</b></p><p><b> 1.3.1國外進展</b&g
25、t;</p><p> 云計算在國外的從2007年就興起了,下面對其發(fā)展狀況作一個簡要的介紹:IBM于2007年8月高調推出“藍云(Blue Cloud)計劃。IBM的Willy Chiu透露,云計算將是IBM接下來的一個重點業(yè)務。這也是IBM擴張自身領地的絕佳機會,IBM具有發(fā)展云計算業(yè)務的一切有利因素:應用服務器、存儲、管理軟件、中間件等等,IBM抓住了這樣一個良好的機會,提出了“藍云”計劃。2008年8月
26、,IBM斥資3.6億美元在美國北卡羅來納州開始建立云計算數(shù)據中心,并將該數(shù)據中心稱為史上最復雜的數(shù)據中心,投入了大量人力物力。IBM還在東京建立了一所新的研究機構,建立幫助用戶使用云計算基礎設施。該數(shù)據中心占地6萬平方英尺,預計將于2009年下半年投入運營。IBM表示:“使用該數(shù)據中心的用戶能夠獲得空前的互聯(lián)網計算能力,并獲得業(yè)內領先的環(huán)保優(yōu)勢和成本。”IBM在東京的專家將為大企業(yè)、大學和政府提供云計算咨詢,幫助他們利用云計算設施,設計
27、云計算應用,以及向他們的用戶提供基于云計算的服務。在2009年的計劃中,IBM計劃于推出數(shù)種云計算服務產品。</p><p> Google于2007年10月在全球宣布了云計劃,同時與IBM合作,把全球很多大學納入“云計算”計劃當中。當月,Google與IBM開始在美國大學校園,包括卡耐基梅隆大學、麻省理工學院、斯坦福大學、加州大學伯克利分校及馬里蘭大學等,推廣云計算的計劃。希望從而降低分布式計算技術在學術研究
28、方面的成本,并為這些大學提供相關的軟硬件設備及技術支援(包括數(shù)百臺個人計算機及BladeCenter與System x服務器,以及Linux、Xen、Hadoop等開源平臺)。而這些學校的學生則可以通過網絡開發(fā)各項以大規(guī)模計算為基礎的研究計劃。2008年1月30日,Google宣布在臺灣啟動“云計算學術計劃”。與臺灣臺大、交大等學校合作,將這種先進的大規(guī)模、快速計算技術推廣到校園。2009年4月,Google App Engine(GA
29、E)的最新升級已經開始支持Java,并且添</p><p> 加了一系列專門瞄準企業(yè)業(yè)務的新功能:此后,Google還發(fā)布了一款Eclipse插件,可以對Google App Engine的Java開發(fā)提供強力支持,由此可見Google已經為企業(yè)級云計算做好了準備。</p><p> 亞馬遜于2007年開放了名為“彈性計算機云"(Elastic Compute Cloud,E
30、C2)的服務,以便讓小的軟件公司可以按需購買亞馬遜數(shù)據中心的處理能力,而不需要從硬件開始搭建自己的系統(tǒng)。如今,Linux,Window,JBoss,Eclipse等常用操作系統(tǒng)和軟件都已經在EC2平臺上得到了支持,其他應用軟件也在不斷地加入。截至2008年底,亞馬遜云計算相關業(yè)務收入已達l億美元。</p><p> 2007年11月,雅虎建立了一個小規(guī)模的云,開放給卡內基梅隆大學的研究人員。2008年7月,雅虎
31、與惠普、英特爾、伊利諾斯州大學香檳分校、新加坡信息通信發(fā)展管理局以及德國卡爾斯魯理工學院共同創(chuàng)立了開源試驗場Open Cirrus,主要進行云計算方面的研究和教育。2009年4月雅虎宣布了與加州大學伯克利分校、康奈爾大學以及馬薩諸塞大學阿姆赫斯特分校合作,與卡內基梅隆大學一起使用雅虎的云計算群來進行大規(guī)模系統(tǒng)軟件研究,開發(fā)新的應用程序以分析互聯(lián)網上的各種數(shù)據集如投票記錄和在線新聞源等等。</p><p> 微軟
32、公司正在開發(fā)脫離普通桌面的互聯(lián)網操作系統(tǒng)“Midori”,該系統(tǒng)不同于已經有20多年歷史的Windows。Midori目的是為了大規(guī)模應用云計算技術。微軟的競爭優(yōu)勢很明顯,全世界有數(shù)以億計的Windows用戶,微軟所要做的就是將這些用戶通過互聯(lián)網更緊密地連接起來,并通過Windows Live向他們提供云計算服務。微軟正在努力創(chuàng)造一種從一般的硬盤存儲方式轉移到任何時間地點都可以接入的存儲的模式用戶體驗,從而在互聯(lián)網戰(zhàn)略上拉近同Googl
33、e的距離。微軟的云平臺Azure開發(fā)己初步完成,如今已可以隨時訪問其站點。</p><p><b> 1.3.2國內進展</b></p><p> 在我國[2],云計算發(fā)展也非常迅猛。2008年6月24日,IBM在北京IBM中國創(chuàng)新中心成立了第二家中國的云計算中心——IBM大中華區(qū)云計算中心;2008年11月28日,廣東電子工業(yè)研究院與東莞松山湖科技產業(yè)園管委會簽
34、約,廣東電子工業(yè)研究院將在東莞松山湖投資2億元建立云計算平臺;2008年12月30日,阿里巴巴集團旗下子公司阿里軟件與江蘇省南京市政府正式簽訂了2009年戰(zhàn)略合作框架協(xié)議,計劃于2009年初在南京建立國內首個“電子商務云計算中心”,首期投資額將達上億元人民幣;2009年11月11日,全國首家云計算產業(yè)協(xié)會在深圳成立,協(xié)會的成立標志深圳市政府對于云計算產業(yè)在未來發(fā)展的高度重視,同時標志著深圳市企業(yè)對于云計算研究及應用領域的關注與信心,深圳
35、市高科技產業(yè)發(fā)展邁向成熟,而云計算產業(yè)則給深圳信息產業(yè)帶來新的商機,當前深圳是全國首個大力發(fā)展云計算的城市,現(xiàn)在有100多家企業(yè)從事云計算相關產業(yè)研究和技術開發(fā)等,未來產業(yè)將蘊藏巨大的商機。 2009年12月中國云計算技術與產業(yè)聯(lián)盟在京成立,四十多家企業(yè)一起共同倡議成立中國云計算技術與產業(yè)聯(lián)盟。2010年8月上海公布云計算發(fā)展</p><p> 我國主導的云計算發(fā)展企業(yè),同美國類似,包括互聯(lián)網公司
36、,IT 公司, 電信運營商等, 但由于起步較晚,這些公司的業(yè)務方向都不明確,產業(yè)鏈中的位置也不明確。具體計劃向外提供業(yè)務的公司包括互聯(lián)網公司(世紀互聯(lián)、騰訊、新浪、盛大、藍汛、阿里巴巴),基礎電信運營商(中國移動、中國電信、中國聯(lián)通)等。世紀互聯(lián)網專門為云計算成立了Cloudex 子公司, 云計算服務節(jié)點已經遍布國內多個數(shù)據中心,可為用戶提供包括聯(lián)通、移動、電信等多種帶寬接入。產品包括面向中小型WebHosting 客戶的云主機租用服務
37、, 同時還為中大規(guī)模的服務器托管客戶提供云托管。世紀互聯(lián)的云計算業(yè)務已經為包括網絡游戲、應用軟件開發(fā)、物流平臺應用、行業(yè)網站應用等多類客戶提供了云計算基礎設施服務。世紀互聯(lián)的云計算業(yè)務目前規(guī)模仍然非常有限,正處于上升階段。世紀互聯(lián)是國內最大的專業(yè)IDC 提供商,具備大量的服務器資源,因此世紀互聯(lián)的云計算業(yè)務是提高原有服務器和其他設備利用率, 提供云計算業(yè)務有基礎條件,也有長期積累的客戶基礎,基本不存在泡沫。阿里巴巴是國內云計算業(yè)務走在前
38、面的另一企業(yè), 阿里巴巴專門成立了從事云計算業(yè)務的新公司“阿里云”,</p><p> 投資額即達上億元人民幣。阿里巴巴的云計算業(yè)務以大規(guī)模的低成本計算機集群為依托,構建互聯(lián)網上的分布式存儲和計算的服務,降低用戶大規(guī)模數(shù)據處理和大運算量計算的成本。阿里巴巴的云計算業(yè)務以原有的大規(guī)模服務器為基礎,目標客戶是大量原有的中小企業(yè)用戶,是順應IT 技術發(fā)展的產物。</p><p> 1.4本文
39、工作的主要內容</p><p> 在廣泛的文獻調研基礎上,本論文主要對基于Hadoop的云計算理論和基于Hadoop的分布式云計算環(huán)境進行研究,具體包括:Hadoop構架及實現(xiàn)原理MapReduce,Google File System相關資料、搭建Hadoop運行環(huán)境和實現(xiàn)簡單的一個基于Hadoop分布式運行程序。</p><p> 在云計算系統(tǒng)的后端架設了大量的服務器,這些服務器分
40、布在各個地方,負責不同的地域和服務,結構比較復雜。如何將如此大量的服務器有效地組織起來是保證云計算系統(tǒng)高效穩(wěn)定運行關鍵問題之一。</p><p> Hadoop是一個在集群上運行大型數(shù)據庫處理應用程序的開放式源代碼框架。它支持通過Google的MapReduce編程范例來創(chuàng)建并執(zhí)行的應用程序,在很多大型網站上都已經得到了應用,可以說是目前最為廣泛應用的開源云計算軟件平臺。Hadoop平臺最大的優(yōu)點就是實現(xiàn)了并行
41、對平臺程序設計人員的透明處理,應用開發(fā)者可以像開發(fā)普通程序一樣來開發(fā)云計算的應用系統(tǒng),底層會自動完成并行化。</p><p> 本文主要以云計算與Hadoop為主題進行擴展研究,涉及下面三個方面的內容:</p><p> 1).廣泛查閱資料的基礎上,對云計算的背景以及國內外的發(fā)展現(xiàn)狀進行了一個很全面的了解。云計算的基本的概念以及發(fā)展前期其他計算模式的歷程,在這十年間的歷程中云計算逐漸走
42、向應用,它的特點和優(yōu)勢,對我們現(xiàn)今生活方式的改變起了很大的作用。云計算的普遍應用能更加使資源的利用更合理更節(jié)約更安全。其中云計算的發(fā)展至今有許多的相應的技術,它的分布式編程模式的思想,還有數(shù)據存儲和管理,其中虛擬化技術更是為云計算的發(fā)展帶來了鋪墊。</p><p> 2).本文的下一部分對云計算的一個實現(xiàn)平臺Hadoop加以研究,這是一個開放源代碼的平臺,其思想來源于Google的云計算平臺,它的出現(xiàn)使我們分布
43、式編程實現(xiàn)成為了可能,也使云計算更加的普及到商業(yè)中來。這部分對Hadoop的文件系統(tǒng)HDFS做了一些介紹,還有MapReduce相關的知識。Hadoop是怎么構架以及實現(xiàn)的原理通過與GFS 文件系統(tǒng)的比較更深入了解分布式系統(tǒng)的構架,最后詳細的介紹了Hadoop API 的使用,API 中的包,MapReduce框架結構,以便于更詳細的了解Hadoop做任務的原理,編出更好的程序。</p><p> 3).本
44、文的最后一部分是把理論知識轉化為實踐,搭建一下Hadoop的運行環(huán)境,體驗一下Hadoop給我們帶來的方便。首先安裝虛擬機,在虛擬機上安裝ubuntu 11.04系統(tǒng),然后安裝java、ssh等Hadoop所需的環(huán)境,然后配置一下系統(tǒng)的環(huán)境變量,和Hadoop的配置文件,以便能運行Hadoop,最后用MapReduce的思想編一個分布式運行程序WordCount實例,我們只需要寫出其Map類和Reduce的類就行,其他的分布運行的細節(jié)全
45、部由Hadoop來實現(xiàn)。只需簡單的幾行代碼,就可以讓許多機器為你工作。只需要加個結點,就可以讓程序跑在各個計算機上,大大增加了程序運行的效率。</p><p> 第2章 云計算相關背景</p><p><b> 2.1云計算概述</b></p><p> 云計算 [1]是分布處理(Distributed Computing)、并行處理(P
46、arallel Computing)和網格計算(Grid Computing)的綜合發(fā)展,或者說是這些計算機科學概念的商業(yè)實現(xiàn);也是效用計算(Utility Computing)、虛擬化(Virtualization)、Haas(硬件即服務)、SaaS(軟件即服務)、PaaS(平臺即服務)等概念結合創(chuàng)新的結果 [2]。</p><p> 2.1.1云計算基本概念</p><p> 云計
47、算是一種革命性的突破,它表示計算能力也可作為一種商品進行流通,當然這種商品是通過互聯(lián)網進行傳輸?shù)?。云計算的最主要目標就是:在來來,只需要一臺筆記本或者一個手機,就可以通過網絡服務來得到我們需要的一切服務,甚至包括實現(xiàn)超級計算這樣的任務。從這個角度而言,最終用戶將成為云計算的真正擁有者。簡單的說,云計算就是利用互聯(lián)網上的大型數(shù)據中心的軟件和處理數(shù)據的能力,把復雜的運算從用戶終端移到云上去做。</p><p> 云
48、計算既指通過互聯(lián)網以服務方式提供的應用程序,也指在數(shù)據中心用來提供這些服務的硬件和系統(tǒng)軟件,它的概念是在SaaS(Software as a service,軟件即服務)的基礎上發(fā)展起來的。</p><p> 現(xiàn)在很多人都開始了解SaaS對終端用戶和服務提供商的好處:服務提供商可以享受到軟件安裝維護簡單、能集中控制產品更新帶來的優(yōu)點;最終用戶在“任何時間、任何地點”都可以訪問這些服務,可以共享數(shù)據,更易協(xié)作,將
49、他們的數(shù)據安全地存放在基礎設施中。云計算并不改變SaaS這些模式,但它給了應用程序提供者更多的選擇,使得他們不用配置數(shù)據中心就能提供SaaS產品。就像半導體代工的出現(xiàn)使沒有生產線的芯片公司也有機會設計銷售芯片一樣,云計算允許不用構建或提供數(shù)據中心就能部署SaaS,并根據需求縮放SaaS的規(guī)模。而SaaS的用戶可以把一些問題交給提供商來解決,SaaS的提供商也可以把自己的一些問題交給云計算提供商解決。</p><p&g
50、t; 從硬件的角度來看,云計算有三個方面是新的 [4]:</p><p> 1).可以按需獲取的看似無限的計算資源,從而使云計算用戶不需要在提供服務很久之前就要做計算資源的規(guī)劃。</p><p> 2).消除了云用戶的先期的投入,從而使公司可以從小規(guī)模做起,隨著需求增加來擴展他們的硬件資源,降低了風險。</p><p> 3).能夠以很短的時間為單位付費按需
51、使用計算資源(例如,處理器按小時付費以及存儲器按天付費),不需要的時候就將這些資源釋放。這樣,通過將閑置的機器和存儲器釋放來節(jié)省開支,提高整體利用率。對于云計算的具體類型,InfoWorld網站同數(shù)十家公司、分析家和IT用戶討論出了云計算的幾大形式 [2]:</p><p> 1).軟件即服務(Software as a Service,SaaS)</p><p> 軟件即服務的云計算
52、通過瀏覽器把程序傳給成千上萬的用戶。在用戶的角度看來,可以省去在架設服務器和軟件授權上的開支;從供應商角度來看,縮減了程序的維護,能夠減少成本。Salesforce.CON)是這類服務最為出名的公司。一般來講,SaaS在人力資源管理程序和ERP中比較常用。</p><p> 2).實用計算(Utility Computing,UC)</p><p> 實用計算的思想提出很早,但是直到最
53、近才在Amazon、Sun、IBM和其它提供存儲服務和虛擬服務器的公司中被明確使用起來。這種云計算是通過IT行業(yè)創(chuàng)造虛擬的數(shù)據中心使得其能夠把內存、I/O設備、存儲和計算能力集中起來,構建程一個虛擬的資源池來為整個網絡提供服務。</p><p> 3).平臺即服務(Platform as a Service,PaaS)</p><p> 平臺即服務是指集成了SaaS(Software
54、as a Service),HaaS(Hardware as a Service),DaaS(Data as a Service)的復合系統(tǒng),這種形式的云計算把開發(fā)環(huán)境作為一種服務來提供。你可以使用中間商的設備來開發(fā)自己的程序,然后通過互聯(lián)網和其服務器傳到用戶手中。</p><p> 4).管理服務提供商(Manage Service Provider,MSP)</p><p> 管理
55、服務提供商可以稱作最古老的云計算運用之一。這種應用更多的是面向IT行業(yè)而不是終端用戶,常用于郵件病毒掃描、程序監(jiān)控等等。一些大型的公司集團更加可能使用這種服務。</p><p> 5).商業(yè)服務平臺(Commercial Service Platform,CSP)</p><p> 商業(yè)服務平臺一般是SaaS和MSP的混合應用,該類云計算為用戶和提供商之間的互動提供了一個平臺,可以一定
56、程度上做到量身定做,比如用戶個人開支管理系統(tǒng),能夠根據用戶的設置來管理其開支并協(xié)調其訂購的各種服務。</p><p> 6).互聯(lián)網整合(Internet Integration)</p><p> 互聯(lián)網整合指的是將互聯(lián)網上提供類似服務的公司整合起來,以便用戶能夠更方便的比較和選擇自己的服務供應商。現(xiàn)在Google做的很多工具都是類似的工作。</p><p>
57、 對于云計算的應用形式分類有很多種,以上使用的是比較簡單的一種分類。從以上分類我們可以看到,從某種程度上說,云計算確實是將已有的技術和概念的一個整合,或者說規(guī)范化。</p><p> 2.1.2云計算的特點和優(yōu)勢</p><p> 從用戶角度來看云計算的優(yōu)點:</p><p> 1).云計算提供了安全可靠的數(shù)據存儲中心,終端用戶不用再擔心數(shù)據丟失和病毒入侵等
58、麻煩。通過云后端專業(yè)的管理、可靠的儲存技術和嚴格的權限策略,使用戶可以放心地使用云計算的服務。</p><p> 2).云計算對用戶端的設備要求低,使用方便,可以支持手機等無線通信設備。通過云可以在瀏覽器中直接編輯存儲在云后端的文檔,實現(xiàn)隨時隨地的接入。</p><p> 3).云計算可以輕松實現(xiàn)不同設備間的數(shù)據與應用共享。在云計算的網絡應用模式中,數(shù)據只有一份,保存在云的后端,所有電
59、子設備只需要連接互聯(lián)網,就可以同時訪問和使用同一份數(shù)據。</p><p> 4).云計算為用戶使用網絡提供了更多的可能。它為存儲和管理數(shù)據提供了更多的空間,也為完成各類應用提供了強大的計算能力。個人電腦或其他電子設備不可能提供無限量的存儲空間和計算能力,但在云的后端,由數(shù)千臺、數(shù)萬臺甚至更多服務器組成的龐大的集群卻可以輕易地做到這一點。個人和單個設備的能力是有限的,但云計算的潛力卻幾乎是無限的。當用戶把最常用的
60、數(shù)據和最重要的功能都放在云上時,電腦、應用軟件乃至網絡的體系結構將會有翻天覆地的變化,人們的生活也會因此而改變。</p><p> 云計算作為分布式計算的優(yōu)勢:</p><p> 1).分布式系統(tǒng)的最大優(yōu)勢就是因為其具有比集中式系統(tǒng)更好的性能價格比,用戶花少量的錢就能獲得高效能計算。</p><p> 2).多數(shù)應用本身就是分布式的。如工業(yè)企業(yè)應用,管理部門和
61、現(xiàn)場不在同一個地方的應用。</p><p> 3).高可靠性。冗余不僅是生物進化的必要條件,而且也是信息技術。現(xiàn)代分布式系統(tǒng)具有高度容錯機制,控制核反應堆主要采用分布式來實現(xiàn)高可靠性。</p><p> 4).可擴展性。添置一臺性能更高的大型機,或者添置一臺性能相同的大型機的費用都比添加幾臺Pc的費用高得多。</p><p> 云計算在存儲領域的發(fā)展趨勢和優(yōu)勢
62、</p><p> 1).用戶不必為文件存儲硬件投入任何前期的費用。</p><p> 2).主機服務提供商會維護用戶文件服務器的安全和更新問題。</p><p> 3).方便的控制訪問權限和文件資源管理。</p><p> 2.1.3云計算的典型應用</p><p> 云計算是多種技術混合演進的結果.其成熟
63、度較高,又有大公司推動。發(fā)展極為迅速。Amazon、Google、Microsoft和Yahoo等大公司是云計算的先行者。云計算領域的眾多參與公司還包括Salesforce、Face book、YouTube、MySpace,以及國內的趨勢、阿里巴巴等。圖2.1 [8] 是Google trends對云計算和網格計算計算的比較,由該圖可見云計算在應用中擁有了越來越多的關注度。</p><p> 圖2.1 Goo
64、gle trends中的云計算統(tǒng)計</p><p> 云計算已有一些相對成熟的應用,特別是幾家IT大公司的產品,下面對其產品作一個簡單的分析介紹:</p><p> 1).亞馬遜(Amazon) [5]</p><p> 亞馬遜是以在線書店和電子零售業(yè)起家的,兩年多以前,亞馬遜作為首批進軍云計算新興市場的廠商之一,為嘗試進入該領域的企業(yè)開創(chuàng)了良好的開端,如今已
65、成為最大的云計算服務提供商之一,去年相關方面的收入已經突破l億美元。亞馬遜的“云”名為亞馬遜網絡服務(Amazon Web Services,AWS),目前主要由4塊核心服務組成:簡單存儲服務(Simple Storage Service,S3);彈性計算云(Elastic Compute Cloud,EC2):簡單排列服務(Simple Queuing Service)以及簡單數(shù)據庫服務(Simple DB)。換句話說,亞馬遜現(xiàn)在提供
66、的是可以通過網絡訪問的存儲、計算機處理、信息排隊和數(shù)據庫管理系統(tǒng)接入式服務。但由于數(shù)據備份以及相關的狀態(tài)管理方面的語義分析是高度依賴于特定的應用模式,因此,亞馬遜在應用上缺乏自動的可擴展性和容錯性。</p><p> 2).谷歌(Google) [6]</p><p> 谷歌圍繞因特網搜索創(chuàng)造了一個神話,成為了最有影響力的互聯(lián)網公司。如今,他們又以應用托管、企業(yè)搜索以及其他更多形式向企
67、業(yè)開放了他們的“云"計劃。2008年4月,谷歌推出了,谷歌應用軟件引擎(Google App Engine,GAE),這種服務讓開發(fā)人員可以編譯基于Python的應用程序,并可免費使用,谷歌的基礎設施來進行托管(最高存儲空間達500MB)。對于超過此上限的存儲空間,谷歌按“每CPU內核每小時”10至12美分及1GB空間15至18美分的標準進行收費。最近,谷歌還公布了提供可由企業(yè)白定義的托管企業(yè)搜索服務計劃。2009年4月,谷歌
68、應用軟件引擎的最新升級已經開始支持Java,并且添加了一系列專門瞄準企業(yè)業(yè)務的新功能:此后,谷歌還發(fā)布了一款Eclipse插件,可以對Google App Engine的Java開發(fā)提供強力支持,谷歌應用軟件引擎是專門針對傳統(tǒng)的Web應用程序,其結構是將無狀態(tài)的計算層和分狀態(tài)的存儲層清清楚楚地分開。此外,它的應用程序基于請求—應答模式,每個服務請求能用多少CPU時間,需要嚴格的配給制度。谷歌應用軟件引擎令人印象深刻的自動縮放和高可用性機
69、制,專有的供引</p><p> 3).微軟(Microsoft)</p><p> 微軟的Azure是介于系統(tǒng)靈活性與方便程序員使用的一個折中方案。Azure使用.NET函數(shù)庫,并匯編成Common Language Runtime,一個與語言無關的環(huán)境。該系統(tǒng)支持一般用途的計算,而不是一個單獨的類別。用戶可以選擇語言,可是不能控制底層操作系統(tǒng)或運行時環(huán)境。函數(shù)庫提供一定程度的自動網
70、絡配置和容錯/擴展,但要做到這些,開發(fā)者必須明確指定某些應用性能。因此,Azure是介于谷歌應用軟件引擎應用框架和亞馬遜EC2硬件虛擬機應用模式的折中方案。</p><p> 2.2云計算關鍵技術</p><p> 云計算的關鍵技術 [9]:編程模式、數(shù)據存儲技術和管理技術、虛擬化技術。云計算是一種新型的超級計算方式,以數(shù)據為中心,是一種數(shù)據密集型的超級計算。在數(shù)據存儲和管理、編程模式
71、和虛擬化等方面具有自身獨特的技術。下面對這三大關鍵技術作一個簡單的介紹:</p><p> 2.2.1簡單的編程模式</p><p> 編程模式主要針對的是使用云計算的服務進行開發(fā)的用戶,為了使這些用戶能方便的利用云后端的資源,使用合適的編程模式編寫應用程序來達到需要的目的或提供服務,云計算中的編程模式應該盡量方便簡單。最好使得后臺復雜的并行執(zhí)行和任務調度向編程人員透明,從而是編程人員
72、可以將精力集中與業(yè)務邏輯。Google提出的Map Reduce的編程模式是如今最流行的云計算編程模式?,F(xiàn)在幾乎所有IT廠商提出的“云”計劃中采用的編程模式,都是基于Map Reduce思想的。Map Reduce這種編程模式并不僅適用于云計算,在多核計算和并行處理上同樣具有良好的性能。但該編程模式僅適用于編寫數(shù)據處理為主、能夠高度并行化的程序,簡單的說,它是對同類型數(shù)據的分布式處理,對于計算數(shù)據具有相互聯(lián)系,不可分割的應用并不適合。如
73、何改進該編程模式,使程序員得能夠輕松的編寫各種需要的程序,實現(xiàn)真正意義上的并行編程,是Map Reduce編程模式未來的發(fā)展方向。Hadoop軟件平臺對MapReduce技術已有具體的應用,本論文第三章將對其原理和技術有詳細介紹。</p><p> 2.2.2數(shù)據存儲和管理</p><p> 為保證數(shù)據的高可用和高可靠性,云計算的數(shù)據一般采用分布式的方式來存儲和管理。類似于一般的數(shù)據存
74、儲安全保證辦法,云計算也采用冗余存儲的方式來保證存儲數(shù)據的可靠性。由于云計算系統(tǒng)需要同時滿足大量用戶的需求,并行地為大量用戶提供服務,因此云計算的數(shù)據存儲技術必須具有高吞吐率,分布式存儲正好滿足了這一需求特點?,F(xiàn)在,云計算的數(shù)據存儲技術主要有谷歌的非開源的體系GFS(Google File System)和Hadoop團隊的開發(fā)的對于GFS[10]的開源實現(xiàn)HDFS(Hadoop Distributed File System)。有很大
75、一部分IT廠商,包括yahoo,Intel,阿里巴巴的云存儲計劃采用的都是HDFS的數(shù)據存儲技術。本論文在也安裝部署了Hadoop的HDFS平臺并使用其進行數(shù)據存儲。</p><p> 云計算系統(tǒng)對大數(shù)據集進行處理,而且需要向用戶提供高效的服務,因此數(shù)據管理技術也必須能夠對大量數(shù)據進行高效的管理。由于云計算的特點是對大量的數(shù)據進行反復的讀取和分析,數(shù)據的讀操作頻率遠大于數(shù)據的更新頻率,因此云中的數(shù)據管理是一種讀
76、效率優(yōu)先的數(shù)據管理模式。因此一般來講,云計算系統(tǒng)的數(shù)據管理通常采用數(shù)據庫領域中列存儲的數(shù)據管理模式,即將表按列劃分后存儲。在現(xiàn)有的云計算的數(shù)據管理技術中,最著名的是谷歌的Big Table&31數(shù)據管理技術,同時Hadoop開發(fā)團隊開發(fā)了類似Big Table的開源數(shù)據管理模塊。由于采用列存儲的方式管理數(shù)據會造成寫的不方便,因此如何提高數(shù)據的更新速率以及進一步提高隨機讀速率是未來的數(shù)據管理技術需要解決的問題。</p>&l
77、t;p> 2.2.3虛擬化技術</p><p> 虛擬化是云計算的一個非常關鍵的技術 [11],也可以說是云計算區(qū)別于一般并行計算的一個根本性的特點。通過虛擬機的方式進行云計算資源的管理具有特殊的好處。由于虛擬機是一類特殊的軟件,能夠完全模擬硬件的執(zhí)行,因此能夠在上面運行操作系統(tǒng),進而能夠保留一整套運行環(huán)境語義。這樣,可以將整個執(zhí)行環(huán)境通過打包的方式傳輸?shù)狡渌锢砉?jié)點上,使得執(zhí)行環(huán)境與物理環(huán)境隔離,方便
78、整個應用程序模塊的部署。一般來說,通過將虛擬化的技術應用到云計算的平臺,可以獲得如下一些良好的特性:</p><p> 1).云計算的管理平臺能夠動態(tài)地將計算平臺定位到所需要的物理平臺上,而無需停止運行在虛擬機平臺上的應用程序,這比采用虛擬化技術之前的進程遷移方法更加靈活。</p><p> 2).能夠更加有效率地使用主機資源,將多個負載不是很重的虛擬機計算節(jié)點合并到同一個物理節(jié)點上,
79、從而能夠關閉空閑的物理節(jié)點,達到節(jié)約電能的目的。</p><p> 3).通過虛擬機在不同物理節(jié)點上的動態(tài)遷移,能夠獲得與應用無關的負載平衡性能。由于虛擬機包含了整個虛擬化的操作系統(tǒng)以及應用程序環(huán)境,因此在進行遷移的時候帶著整個運行環(huán)境,達到了與應用無關的目的。</p><p> 4).在部署上也更加靈活,即可以將虛擬機直接部署到物理計算平臺當中,或者提供給用戶的資源就直接是一個虛擬機
80、,如亞馬遜的EC2。</p><p> 虛擬化技術現(xiàn)在最成熟的系統(tǒng)包括Xen和VMware,還有開源的系統(tǒng)Linux kvm。</p><p> 第3章 Hadoop平臺研究</p><p><b> 3.1概述</b></p><p> 在云計算技術中,編程平臺是一個非常重要的模塊。Hadoop平臺是當今應用最
81、為廣泛的開源云計算編程平臺,本章詳細介紹了Hadoop平臺的組成。</p><p><b> Hadoop概述</b></p><p> Hadoop [15]是Apache開源組織的一個分布式計算開源框架,在很多大型網站上都已經得到了應用,如Amazon、Face book、Yahoo!、IBM等等。Hadoop框架中最核心的設計是MapReduce [12]和
82、HDFS(Hadoop Distributed File System)。MapReduce的思想是由Google的一篇論文所提及而被廣為流傳的,簡單的說MapReduce就是任務的分解與結果的匯總。HDFS是Hadoop分布式文件系統(tǒng)的縮寫,為分布式計算存儲提供了底層支持。</p><p> Hadoop的優(yōu)點在于:</p><p> 1).可擴展:不論是存儲的可擴展還是計算的可擴展
83、都是Hadoop的設計根本,Hadoop的擴展非常簡單,不需要修改任何已有的結構。</p><p> 2).經濟:框架可以運行在任何普通的PC上,對硬件沒有特殊的要求。</p><p> 3).可靠:分布式文件系統(tǒng)的備份恢復機制以及MapReduce的任務監(jiān)控保證了分布式處理的可靠性,Hadoop默認就提供1個以上的備份。</p><p> 4).高效:分布式
84、文件系統(tǒng)的高效數(shù)據交互實現(xiàn)以及MapReduce結合Local Data處理的模式,為高效處理海量的信息作了基礎準備。</p><p> Hadoop最適合的是用于海量數(shù)據的分析,Google最早提出MapReduce也就是為了海量數(shù)據分析。同時HDFS最早是為了搜索引擎實現(xiàn)而開發(fā)的,后來才被用于分布式計算框架中。海量數(shù)據被分割于多個節(jié)點,然后由每一個節(jié)點并行計算,將得出結果歸并到輸出。同時第一階段的輸出又可以
85、作為下一階段計算的輸入,形成一個樹狀結構的分布式計算圖,在不同階段都有不同產出,同時并行和串行結合的計算也可以很好的在分布式集群的資源下得以高效的處理。</p><p><b> HDFS介紹</b></p><p> Hadoop [16]分布式文件系統(tǒng)(HDFS)被設計成適合運行在通用硬件(commodity hardware)上的分布式文件系統(tǒng)。它和現(xiàn)有的分
86、布式文件系統(tǒng)有很多共同點.但同時它和其他的分布式文件系統(tǒng)的區(qū)別也是很明顯的。HDFS是一個高度容錯性的系統(tǒng),適合部署在廉價的機器上。HDFS能提供高吞吐量的數(shù)據訪問,非常適合大規(guī)模數(shù)據集上的應用,它放寬了一部分POSIX約束,來實現(xiàn)流式讀取文件系統(tǒng)數(shù)據的目的。HDFS在最開始是作為Apache Nutch搜索引擎項目的基礎架構而開發(fā)的,后來獨立出來.作為Apache Hadoop Core項目的一部分。</p><p
87、> HDFS采用master/slave架構。一個HDFS集群是由一個Namenode和一定數(shù)目的Datanodes組成。Namenode是一個中心服務器,負責管理文件系統(tǒng)的名字空間以及客戶端對文件的訪問。集群中的Datanode一般是一個節(jié)點一個,負責管理它所在節(jié)點卜的存儲。HDFS暴露了文件系統(tǒng)的名字空間,用戶能夠以文件的形式在上面存儲數(shù)據。從內部看,一個文件其實被分成一個或多個數(shù)據塊,這些塊存儲在一組Datanode上。N
88、amenode執(zhí)行文件系統(tǒng)的名字空間操作,比如打開、關閉、重命名文件或目錄。它也負責確定數(shù)據塊到具體Datanode節(jié)點的映射。Datanode負責處理文件系統(tǒng)客戶端的讀寫請求。在Namenode的統(tǒng)一調度下進行數(shù)據塊的創(chuàng)建、刪除和復制。圖3.1是HDFS的一個結構示意。</p><p> 圖3.1 HDFS體系結構</p><p> HDFS的Namenode和Datanode被設計
89、成可以在普通的商用機器上運行的節(jié)點。這些機器一般運行GNU/Linux操作系統(tǒng)。HDFS采用Java語言開發(fā),因此任何支持Java的機器都可以部署Namenode或Datanode。由于采用了可移植性極強的Java語言,使得HDFS可以部署到多種類型的機器上。一個典型的部署場景是一臺機器上只運行一個Namenode實例,而集群中的其它機器分別運行一個Datanode實例。這種架構并不排斥在一臺機器上運行多個Datanode,只不過這樣的
90、情況比較少見。</p><p> 集群中單一Namenode的結構大大簡化了系統(tǒng)的架構。Namenode是所有HDFS元數(shù)據的仲裁者和管理者,這樣,用戶數(shù)據永遠不會流過Namenode。為了增加系統(tǒng)的穩(wěn)定性,一般系統(tǒng)中都還存在Namenode的一個備份,Secondary Namenode。</p><p> 3.1.3MapReduce介紹</p><p>
91、 MapReduce [12]是一個編程模型和處理產生大數(shù)據集的相關實現(xiàn)。用戶指定一個map函數(shù)處理一個key/value對,從而產生中間的key/value對集。然后再指定一個reduce函數(shù)合并所有的具有相同中間key的中間value。下面將列舉許多可以用這個模型來表示的現(xiàn)實世界的工作。</p><p> 以這種方式寫的程序能自動的在大規(guī)模的普通機器上實現(xiàn)并行化。這個運行時系統(tǒng)關心這些細節(jié),分割輸入數(shù)據,在
92、機群上的調度,機器的錯誤處理,管理機器之間必要的通信。這樣就可以讓那些沒有并行分布式處理系統(tǒng)經驗的程序員利用大量分布式系統(tǒng)的資源。</p><p> 我們的MapReduce實現(xiàn)運行在規(guī)模可以靈活調整的由普通機器組成的機群上,一個典型的MapReduce計算處理幾千臺機器上的以TB計算的數(shù)據。Hadoop中的Map/Reduce是一個使用簡易的軟件框架,基于它寫出來的應用程序能夠運行在由上千個商用機器組成的大型
93、集群上,并以一種可靠容錯的方式并行處理上T級別的數(shù)據集。一個Map/Reduce作業(yè)(job)通常會把輸入的數(shù)據集切分為若干獨立的數(shù)據塊,由map任務(task)以完全并行的方式處理它們??蚣軙ap的輸出先進行排序, 然后把結果輸入給reduce任務。通常作業(yè)的輸入和輸出都會被存儲在文件系統(tǒng)中。整個框架負責任務的調度和監(jiān)控,以及重新執(zhí)行已經失敗的任務。圖3.2說明了用 MapReduce 來處理大數(shù)據集的過程.</p>
94、<p> 圖3.2 MapReduce 計算流程</p><p> 通常,Map/Reduce框架和分布式文件系統(tǒng)是運行在一組相同的節(jié)點上的,也就是說,計算節(jié)點和存儲節(jié)點通常在一起。這種配置允許框架在那些已經存好數(shù)據的節(jié)點上高效地調度任務,這可以使整個集群的網絡帶寬被高效地利用。</p><p> Map/Reduce框架由一個單獨的master JobTracker和每
95、個集群節(jié)點一個slave TaskTracker共同組成。master負責調度構成一個作業(yè)的所有任務,這些任務分布在不同的slave上,master監(jiān)控它們的執(zhí)行,重新執(zhí)行已經失敗的任務。而slave僅負責執(zhí)行由master指派的任務。應用程序至少應該指明輸入/輸出的位置(路徑),并通過實現(xiàn)合適的接口或抽象類提供map和reduce函數(shù)。再加上其他作業(yè)的參數(shù),就構成了作業(yè)配置(job configuration)。然后,Hadoop的j
96、ob client提交作業(yè)(jar包/可執(zhí)行程序等)和配置信息給JobTracker,后者負責分發(fā)這些軟件和配置信息給slave、調度任務并監(jiān)控它們的執(zhí)行,同時提供狀態(tài)和診斷信息給job-client。輸入與輸出:Map/Reduce框架運轉在<key,value>鍵值對上,也就是說,框架把作業(yè)的輸入看為是一組<key,value>鍵值對,同樣也產出一組<key,value>鍵值對作為作業(yè)的輸出,這兩
97、組鍵值對的類型可能不同。一個Map/Reduce作業(yè)的輸入和輸出如下表所示:</p><p> 表3.1 Map 和 Reduce 函數(shù)</p><p> Hadoop構架以及原理</p><p> Hadoop 有許多元素構成,最底部是 Hadoop Distributed File System,它存儲 Hadoop 集群中所有存儲節(jié)點上的文件。HDFS(
98、對于本文)的上一層是 MapReduce 引擎,該引擎由 JobTrackers 和 TaskTrackers 組成。Hadoop 集群的簡化視圖如下圖3.3</p><p> 圖3.3Hadoop 集群構架圖</p><p><b> 1).HDFS</b></p><p> 對外部客戶機而言,HDFS 就像一個傳統(tǒng)的分級文件系統(tǒng)。可以
99、創(chuàng)建、刪除、移動或重命名文件等等。但是 HDFS 的架構是基于一組特定的節(jié)點構建的,這是由它自身的特點決定的。這些節(jié)點包括 NameNode(僅一個),它在 HDFS 內部提供元數(shù)據服務;DataNode,它為 HDFS 提供存儲塊。由于僅存在一個 NameNode,因此這是 HDFS 的一個缺點(單點失?。€有復制到多個計算機中的DataNode。這與傳統(tǒng)的 RAID 架構大不相同,塊的大小(通常為 64MB)和復制的塊數(shù)量在創(chuàng)建文
100、件時由客戶機決定。NameNode 可以控制所有文件操作,HDFS 內部的所有通信都基于標準的 TCP/IP 協(xié)議。</p><p> 2).NameNode</p><p> NameNode 是一個通常在 HDFS 實例中單獨機器上運行的軟件。它負責管理文件系統(tǒng)名稱空間和控制外部客戶機的訪問。NameNode 決定是否將文件映射到DataNode 上的復制塊上。對于最常見的3個復制
101、塊,第一個復制塊存儲在同一機架的不同節(jié)點上,最后一個復制塊存儲在不同機架的某個節(jié)點上。實際的 I/O 事務并沒有經過 NameNode,只有表示 DataNode 和塊的文件映射的元數(shù)據經過 NameNode。當外部客戶機發(fā)送請求要求創(chuàng)建文件時,NameNode 會以塊標識和該塊的第一個副本的 DataNode IP 地址作為響應。這個 NameNode 還會通知其他將要接收該塊的副本的 DataNode。NameNode 在一個稱為
102、FsImage 的文件中存儲所有關于文件系統(tǒng)名稱空間的信息。這個文件和一個包含所有事務的記錄文件(這里是 EditLog)將存儲在 NameNode 的本地文件系統(tǒng)上。FsImage 和 EditLog 文件也需要復制副本,以防文件損壞或 NameNode 系統(tǒng)丟失。</p><p> 3).DataNode</p><p> DataNode 也是一個通常在 HDFS 實例中的單獨機
103、器上運行的軟件。Hadoop 集群包含一個 NameNode 和大量 DataNode。DataNode 通常以機架的形式組織,機架通過一個交換機將所有系統(tǒng)連接起來。Hadoop 的一個假設是:機架內部節(jié)點之間的傳輸速度快于機架間節(jié)點的傳輸速度。DataNode 響應來自 HDFS 客戶機的讀寫請求。它們還響應創(chuàng)建、刪除和復制來自 NameNode 的塊的命令。NameNode 依賴來自每個DataNode 的定期心跳(heartbea
104、t)消息。每條消息都包含一個塊報告,NameNode 可以根據這個報告驗證塊映射和其他文件系統(tǒng)元數(shù)據。如果 DataNode 不能發(fā)送心跳消息,NameNode 將采取修復措施,重新復制在該節(jié)點上丟失的塊。</p><p><b> 4).文件操作</b></p><p> 可見,HDFS 并不是一個萬能的文件系統(tǒng)。它的主要目的是支持以流的形式訪問寫入的大型文件。
105、如果客戶機想將文件寫到 HDFS 上,首先需要將該文件緩存到本地的臨時存儲。如果緩存的數(shù)據大于所需的 HDFS 塊大小,創(chuàng)建文件的請求將發(fā)送給 NameNode。NameNode 將以 DataNode 標識和目標塊響應客戶機。同時也通知將要保存文件塊副本的 DataNode。當客戶機開始將臨時文件發(fā)送給第一個 DataNode 時,將立即通過管道方式將塊內容轉發(fā)給副本 DataNode??蛻魴C也負責創(chuàng)建保存在相同 HDFS 名稱空間中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于Hadoop海量數(shù)據分析的反腐云計算設計與實現(xiàn).pdf
- 基于Hadoop云計算框架的在線購物系統(tǒng)的設計與實現(xiàn).pdf
- 基于Hadoop的云計算系統(tǒng)設計.pdf
- 基于Hadoop的云計算教育資源共享平臺的設計與實現(xiàn).pdf
- 基于Hadoop的云計算模型研究與應用.pdf
- 基于hadoop影視碎片云存儲的設計與實現(xiàn).pdf
- 基于Hadoop的電信云計算開放平臺研究設計.pdf
- 基于Hadoop的車載云服務系統(tǒng)的設計與實現(xiàn).pdf
- 基于Hadoop的云教學資源平臺設計與實現(xiàn).pdf
- 云計算畢業(yè)設計
- 基于Hadoop的云計算應用研究.pdf
- 基于Hadoop的云計算安全機制研究.pdf
- 基于hadoop技術云存儲平臺的研究與實現(xiàn).pdf
- 基于Hadoop云平臺的網絡測量系統(tǒng)設計與實現(xiàn).pdf
- 基于Hadoop的云存儲平臺的研究與實現(xiàn).pdf
- 基于Hadoop的新校區(qū)云計算存儲服務平臺設計與研究.pdf
- 基于Hadoop可公共審計云存儲的設計與實現(xiàn).pdf
- 基于Hadoop的云計算資源管理研究.pdf
- 基于云計算平臺Hadoop的聚類研究.pdf
- 基于Hadoop的氣象信息云存儲系統(tǒng)設計與實現(xiàn).pdf
評論
0/150
提交評論