版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 本科畢業(yè)論文</b></p><p><b> ?。?0 屆)</b></p><p> 文件共享存儲系統(tǒng)的設(shè)計與實現(xiàn)</p><p> 所在學院 </p><p> 專業(yè)班級 計算機科學與技術(shù)
2、 </p><p> 學生姓名 學號 </p><p> 指導(dǎo)教師 職稱 </p><p> 完成日期 年 月 </p><p><b> 摘 要</b><
3、/p><p> 當今社會是互聯(lián)網(wǎng)社會,近十年的互聯(lián)網(wǎng)在中國的發(fā)展可以用突飛猛進來形容。如今大數(shù)據(jù)時代已經(jīng)到來,云計算也早已聞名于每一個互聯(lián)網(wǎng)用戶中。當今高度信息化的社會,可以說互聯(lián)網(wǎng)中的web應(yīng)用是信息交互的主要載體。但其數(shù)據(jù)量大,數(shù)據(jù)信息繁雜,且受限于服務(wù)器硬件處理能力的限制,很難高速和服務(wù)器進行數(shù)據(jù)交互。</p><p> 基于此問題,本畢業(yè)設(shè)計著眼于時下流行的云計算云存儲和大數(shù)據(jù)處理
4、的幾種技術(shù)方法,在分析現(xiàn)有的分布式存儲和計算等關(guān)鍵技術(shù)基礎(chǔ)上,結(jié)合對HADOOP的集群技術(shù)的研究以及自身的業(yè)務(wù)需求和實際軟硬件實力,提出了一種基于HADOOP的海量數(shù)據(jù)存儲即文件共享存儲模型,并從系統(tǒng)的搭建、程序的設(shè)計等幾個方面來介紹該系統(tǒng)的開發(fā)方法和開發(fā)流程。除了數(shù)據(jù)存儲外,我們還將介紹web下的異步傳輸模式和HTTP技術(shù)和HDFS原理。</p><p> 本論文的特點是將研究模型與實際業(yè)務(wù)應(yīng)用相結(jié)合,以分布
5、式服務(wù)器技術(shù)作為出發(fā)點和技術(shù)導(dǎo)向,添加了娛樂與辦公應(yīng)用功能,采用基于面向?qū)ο缶幊痰膉ava語言和Tomcat作為服務(wù)器承載,很好地滿足了該軟件的項目需求,并將模型部署到實例當中。本文中還將去探討該模型的高效率、可拓展性等優(yōu)勢。</p><p> 關(guān)鍵詞:分布式; java; hadoop; 云存儲;javascript</p><p><b> Abstract</b&
6、gt;</p><p> Nowadays,our society is on the highways of Internet.In recent ten years,many of us have witnessed the rapid development of Internet in China.At the same time ,the new conceptions such as mass da
7、ta and cloud computing have been acknowledging by every internet citizen。Our society is so high-informative that WEB has been playing a more important role in information interaction.However, we programmers and those ISO
8、s have to face serveral difficulties below:data of large quantites and complication.an</p><p> In order to solve these difficulties,my design willbe focused on the prevailing technologies—cloud computing an
9、d storing。Based on these technologies and subjects ,togther with the study of the HADOOP cluster and the software requirement , I propose a shared storage model for file system,and the paper will instroduce serveral aspe
10、cts of the development of this model from the program design and the system construction.Besides the above ,I will also instroduce the asynchronous transfer mode and the</p><p> The characteristic of this s
11、tudy is the integration of model research and business application,along with distributed server technology which will be served as the important direction and the start point,and during programming,I will add more eleme
12、nts about entertainment and office application to the system.Moreover,I will take JAVA as programming language and the program will be run on TOMCAT,which servred as the server enviroment and. These conditions quitely
13、meet the requirement above,and t</p><p> Keywords: distributed system; java; hadoop; cloud storing;javascript</p><p><b> 目 錄</b></p><p><b> 摘要I</b></p
14、><p> AbstractII</p><p><b> 第一章 緒論1</b></p><p> 1.1 研究背景1</p><p> 1.1.1云存儲的興起1</p><p> 1.1.2 集群技術(shù)的興起2</p><p> 1.2 研究意義3&
15、lt;/p><p> 1.3 本論文的主要內(nèi)容和結(jié)構(gòu)安排4</p><p> 第二章 文件共享存儲系統(tǒng)相關(guān)技術(shù)和理論6</p><p> 2.1 B/S網(wǎng)絡(luò)模式的結(jié)構(gòu)工作原理和特點6</p><p> 2.1.1 B/S工作原理6</p><p> 2.1.2 B/S的特點6</p>&
16、lt;p> 2.2 云存儲和云計算的系統(tǒng)分析7</p><p> 2.2.1.云存儲的概念7</p><p> 2.2.2.云存儲與云計算的關(guān)系8</p><p> 2.2.3.云存儲系統(tǒng)的結(jié)構(gòu)模型8</p><p> 2.2.4云存儲實現(xiàn)的關(guān)鍵技術(shù)9</p><p> 2.3 HDFS數(shù)據(jù)
17、管理機制分析10</p><p> 2.3.1名稱節(jié)點和數(shù)據(jù)節(jié)點11</p><p> 2.3.2元數(shù)據(jù)13</p><p> 2.4 HADOOP思想核心 Map/Reduce機制14</p><p> 2.4.1 JobTracker簡介14</p><p> 2.4.2 TaskTracker
18、簡介15</p><p> 2.5 TOMCAT和JAVA15</p><p> 2.5.1什么是TOMCAT15</p><p> 2.5.2 TOMCAT工作原理15</p><p> 2.6 開發(fā)工具16</p><p> 2.6.1 Java平臺介紹16</p><p&
19、gt; 2.6.2 Java的優(yōu)勢17</p><p> 第三章 文件共享存儲系統(tǒng)的分析與設(shè)計19</p><p> 3.1 基于HDFS云存儲服務(wù)系統(tǒng)需求分析19</p><p> 3.1.1 問題分析19</p><p> 3.1.2系統(tǒng)設(shè)計目標20</p><p> 3.1.3功能需求分析
20、20</p><p> 3.2基于HDFS云存儲服務(wù)系統(tǒng)設(shè)計21</p><p> 3.2.1云存儲體系結(jié)構(gòu)21</p><p> 3.2.2 數(shù)據(jù)庫的結(jié)構(gòu)22</p><p> 3.3 系統(tǒng)模塊設(shè)計23</p><p> 3.3.1 用戶信息模塊23</p><p> 3
21、.3.2 文件管理模塊23</p><p> 3.3.3 娛樂模塊設(shè)計24</p><p> 3.4 HDFS的數(shù)據(jù)管理的方法實現(xiàn)24</p><p> 3.4.1 HDFS的通信協(xié)議24</p><p> 3.4.2 HDFS Java接口的描述25</p><p> 3.5本章小結(jié)26<
22、/p><p> 第四章 文件共享存儲系統(tǒng)的實現(xiàn)27</p><p> 4.1 系統(tǒng)的配置27</p><p> 4.1.1系統(tǒng)硬件環(huán)境27</p><p> 4.1.2系統(tǒng)軟件環(huán)境27</p><p> 4.1.3系統(tǒng)安裝部署27</p><p> 4.1.4 Tomcat應(yīng)
23、用環(huán)境配置30</p><p> 4.1.5 MySQL應(yīng)用環(huán)境配置31</p><p> 4.1.6 web映射配置31</p><p> 4.2 系統(tǒng)的模塊實現(xiàn)32</p><p> 4.2.1用戶注冊模塊32</p><p> 4.2.2管理員、用戶登錄模塊32</p><
24、;p> 4.2.3文件操作模塊33</p><p> 4.2.3.1獲取DFS文件列表模塊35</p><p> 4.2.3.2.創(chuàng)建DFS文件夾37</p><p> 4.2.3.3.刪除DFS文件夾和文件39</p><p> 4.2.3.4上傳DFS文件40</p><p> 4.2.
25、3.5下載DFS文件41</p><p> 4.2.4 DFS娛樂辦公在線應(yīng)用43</p><p> 4.2.4.1 DFS動畫及視頻播放功能44</p><p> 4.2.4.2 DFS圖片瀏覽功能44</p><p> 4.2.4.3 DFS音樂播放功能45</p><p> 4.2.4.4 D
26、FS pdf閱讀器45</p><p> 4.2.5信息維護模塊47</p><p> 4.3 本章小結(jié)47</p><p> 第五章 系統(tǒng)測試48</p><p> 5.1 功能測試48</p><p> 5.2 用戶界面測試49</p><p> 5.3 安全性測試
27、50</p><p> 第六章 總結(jié)和展望52</p><p><b> 致 謝54</b></p><p><b> 參考文獻55</b></p><p><b> 附錄56</b></p><p><b> 外文資料原文
28、71</b></p><p><b> 外文資料翻譯76</b></p><p><b> 第一章 緒 論</b></p><p><b> 1.1 研究背景</b></p><p> 1.1.1云存儲的興起</p><p>
29、隨著Internet技術(shù)的發(fā)展,信息量呈爆炸性增長,數(shù)據(jù)存儲逐漸成為制約企業(yè)發(fā)展的關(guān)鍵問題。越來越多的企業(yè)開始將數(shù)據(jù)存儲分離出來作為獨立的項目進行管理。高可靠性、高通用性、高擴展性、大容量,云存儲以傳統(tǒng)數(shù)據(jù)中心無法比擬的優(yōu)勢特性,正在成為企業(yè)實現(xiàn)提高效率、降低成本的重要選擇。</p><p> 云存儲是在云計算(cloud computing)概念上延伸和發(fā)展出來的一個新的概念,因此要了解云存儲首先要了解云計算
30、。云計算是一種基于因特網(wǎng)的超級計算模式,在遠程的數(shù)據(jù)中心里,成千上萬臺電腦和服務(wù)器連接成一片電腦云。因此,云計算甚至可以讓你體驗每秒10萬億次的運算能力,擁有這么強大的計算能力可以模擬核爆炸、預(yù)測氣候變化和市場發(fā)展趨勢。用戶通過電腦、筆記本、手機等方式接入數(shù)據(jù)中心,按自己的需求進行運算。隨著云計算概念的逐步深入,人們開始為海量信息尋找一個新的安身之處一云存儲。</p><p> 云存儲(cloud storag
31、e)從一出現(xiàn)就得到廣泛的關(guān)注和支持。云存儲的概念與云計算類似,它是指通過集群應(yīng)用、網(wǎng)格技術(shù)或分布式文件系統(tǒng)等功能,將網(wǎng)絡(luò)中大量各種不同類型的存儲設(shè)備通過應(yīng)用軟件集合起來協(xié)同工作,共同對外提供數(shù)據(jù)存儲和業(yè)務(wù)訪問功能的一個系統(tǒng)。</p><p> 云存儲的興起使得整個IT界處于一個重大的變革期,從以設(shè)備/應(yīng)用程序為中心轉(zhuǎn)向以信息為中心,而這一轉(zhuǎn)變還將引發(fā)一系列的變革,并影響到技術(shù)和業(yè)務(wù)模式兩個層面。云存儲的最大特點
32、是海量、高性能、高訪問量以及低成本,而其帶來的最大變革是,提供商逐漸從銷售工具轉(zhuǎn)向根據(jù)工具的實際使用收費,也就是從賣產(chǎn)品轉(zhuǎn)向了賣服務(wù)。因此,可以說云存儲不是存儲而是服務(wù)。</p><p> 云存儲還具有如下的特點:超強的可擴展性、不受具體地理位置所限、基于商業(yè)組件、按照使用收費(如每G收15美分)、可跨不同應(yīng)用等。下面對各大公司的云存儲產(chǎn)品作一個簡要的介紹,以了解云存儲的發(fā)展狀況。</p><
33、;p><b> (1)亞馬遜的策略</b></p><p> 亞馬遜是最早推出云存儲服務(wù)的企業(yè)。亞馬遜最早推出的云計算服務(wù)是亞馬遜網(wǎng)絡(luò)服務(wù)(Amazonweb services,AWS),該云計算服務(wù)由4個核心組件組成:</p><p> 簡單排列服務(wù)(Simple Queuing Service),簡單存儲服務(wù)(Simple Storage Servic
34、e),彈性計算云(Elastic Compute Cloud,EC2)和還處于測試的SimPleDB。</p><p> 2008年8月,亞馬遜為了增強它在云存儲戰(zhàn)略上的努力,其互聯(lián)網(wǎng)服務(wù)部門將“持續(xù)存儲”功能添加到彈性計算云(EC2)中。該廠商推出了彈性塊存儲(Elastic Block Storage,EBS)產(chǎn)品,并聲稱這個產(chǎn)品可以通過互聯(lián)網(wǎng)服務(wù)形式同時提供存儲和計算功能。</p><
35、p> (2)Google的策略</p><p> Google公司在I/O開發(fā)者技術(shù)大會上宣布推出名為“GoogleStorage”的云計算存儲服務(wù),以向亞馬遜的S3云存儲服務(wù)發(fā)起挑戰(zhàn)。從功能設(shè)計上看,Google Storage將參考亞馬遜S3,以方便現(xiàn)有S3用戶轉(zhuǎn)用Google Storage服務(wù)。Google Storage服務(wù)將包括REST API協(xié)議,以允許開發(fā)者通過谷歌賬號提供驗證下載、數(shù)據(jù)
36、備份服務(wù)。此外,谷歌還將向外部開發(fā)者提供數(shù)據(jù)管理工具和網(wǎng)絡(luò)用戶界面。</p><p><b> (3)微軟的策略</b></p><p> 2007年8月10日,微軟就已經(jīng)推出了提供網(wǎng)絡(luò)移動硬盤服務(wù)的Windows LiveSkyDrive Beta測試版。2008年2月22日,微軟網(wǎng)絡(luò)硬盤服務(wù)“Windows LiveSkyDrive"結(jié)束Beta測試
37、,推出了正式版本,提供5GB網(wǎng)絡(luò)存儲空間的同時面向35個新的國家和地區(qū)開放。</p><p><b> (4)IBM的策略</b></p><p> XIV是IBM提供的新一代存儲產(chǎn)品。它采用網(wǎng)格技術(shù),極大的提高了數(shù)據(jù)的可靠性、容量的可擴展性、系統(tǒng)的可管理性。XIV是在傳統(tǒng)的存儲設(shè)備以上的升級,它具有海量存儲設(shè)備+大容量文件系統(tǒng)+高吞吐量互聯(lián)網(wǎng)數(shù)據(jù)訪問接口+管理系
38、統(tǒng)的設(shè)計特征。XIV由于其獨特的設(shè)計,使之天生就具備海量的存儲能力與強大的可擴展性,能夠滿足各種Web2.0應(yīng)用的需求,是一個理想的實現(xiàn)云存儲的產(chǎn)品。</p><p> 1.1.2 集群技術(shù)的興起</p><p> 云存儲的興起正在顛覆現(xiàn)有的網(wǎng)絡(luò)存儲架構(gòu)。面對當前PB級的海量存儲需求,傳統(tǒng)的SANll61或NAS 1171在容量和性能的擴展上會存在瓶頸。如受到其物理組成(如:磁盤驅(qū)動器
39、的數(shù)量、所連接服務(wù)器的數(shù)量和內(nèi)存大小和控制器性能)的限制,會造成很多功能上的局限(如:支持文件系統(tǒng)的數(shù)量,快照或復(fù)制的數(shù)量等)。一旦遇到存儲系統(tǒng)的瓶頸,就會不斷地促使用戶升級到更大的存儲系統(tǒng)和添加更多的管理工具,由此增加了成本。云存儲這種新型的服務(wù)模式必然要求存儲架構(gòu)保持極低的成本,而現(xiàn)有的一些高端存儲設(shè)備顯然還不能滿足這種需求。從谷歌公司的實踐來看,它們在現(xiàn)有的云計算環(huán)境中并沒有采用SAN架構(gòu),而是使用了可擴展的分布式文件系統(tǒng)(Goo
40、gle File System,GFS)。這是一種高效的集群存儲技術(shù)。</p><p> GFS是一個可擴展的分布式文件系統(tǒng),用于大型的、分布式的、對大量數(shù)據(jù)進行訪問的應(yīng)用。它運行在普通的PC機上,但可以提供強大的容錯功能,可以給大量的用戶提供總體性能較高的服務(wù)。</p><p> 今天,互聯(lián)網(wǎng)上處理的非結(jié)構(gòu)化文件數(shù)量非常龐大,頻繁的數(shù)據(jù)傳送對I/O性能要求非常高,傳統(tǒng)的存儲架構(gòu)對此已
41、無能為力。近幾年逐漸興起的集群存儲技術(shù),不僅輕松突破了SAN的性能瓶頸,而且可以實現(xiàn)性能與容量的線性擴展,這對于追求高性能、高可用性的企業(yè)用戶來說是一個新選擇。目前常見的集群存儲技術(shù)除了Google的GFS以外,還有ADIC的StorNext FSl2,Cluster File Systems的Lustre,IBM的Total Storage SAN File System以及RedHat的Global File System。<
42、/p><p><b> 1.2 研究意義</b></p><p> Hadoop是Apache開源組織口的一個分布式計算開源框架,它可以運行在大中型集群的廉價硬件設(shè)備上,為應(yīng)用程序提供了一組穩(wěn)定可靠的接口。同時,它是Google集群系統(tǒng)的一個開源項目總稱,Google集群系統(tǒng)是使用低成本的成熟技術(shù)構(gòu)建的一個穩(wěn)定、高性能、高可用性、可擴展的系統(tǒng),它的底層是Google
43、文件系統(tǒng)(Google File System,GFS)。HDFS是GFS的開源實現(xiàn),它是Hadoop的底層實現(xiàn)部分,存儲Hadoop集群中所有存儲節(jié)點上的文件。</p><p> Hadoop平臺雖然是一項新興的技術(shù),但它的發(fā)展非常迅速,究其原因首先在于它將并行計算“平民化",它對程序員屏蔽了并行應(yīng)用開發(fā)的細節(jié),程序員只需將精力放在業(yè)務(wù)邏輯上。其次Hadoop平臺可以運行在普通的PC機群上,極大地降
44、低開發(fā)成本,這也讓個人研究、實施分布式系統(tǒng)更加容易。</p><p> 總的來說,本文有以下幾方面的意義:</p><p> (1)現(xiàn)代企業(yè)的數(shù)據(jù)量十分龐大,如何對海量數(shù)據(jù)進行有效管理成為了企業(yè)的關(guān)鍵問題。如果利用云存儲技術(shù)解決這個問題,無疑會提高企業(yè)的經(jīng)濟效益。</p><p> (2)HDFS可以實施運行在普通的PC集群上,極大降低了實施運行分布式系統(tǒng)的成
45、本。</p><p> (3)對HDFS的研究方法可以推廣到別的集群存儲技術(shù)研究上,為下一步研究打好基礎(chǔ)。</p><p> (4)Hadoop平臺還沒有被廣泛地應(yīng)用于各行各業(yè),一旦我們在基于HDFS的云存儲應(yīng)用研究取得一定的成效,就會對Hadoop技術(shù)起到推廣作用。</p><p> 1.3 本論文的主要內(nèi)容和結(jié)構(gòu)安排</p><p&g
46、t; 本文研究內(nèi)容是基于HDFS的云存儲服務(wù)系統(tǒng)研究,滿足企業(yè)對海量數(shù)據(jù)量進行高效存儲的需求。解決海量數(shù)據(jù)存儲問題,如果僅僅依靠企業(yè)自身不斷的硬件升級,提高機器性能來支持,必然會造成成本的巨額增加,而其基于大型機的架構(gòu)不能隨著數(shù)據(jù)量和訪問量的增長而現(xiàn)行擴展。為了緩解甚至解決這個問題,論文提出了構(gòu)建基于HDFS的云存儲服務(wù)系統(tǒng)的解決方案。本文將從以下幾個方面展開研究:</p><p> (1)學習云存儲的相關(guān)理
47、論,分析云存儲的發(fā)展現(xiàn)狀、研究意義以及概念等內(nèi)容,總結(jié)出云存儲系統(tǒng)的結(jié)構(gòu)模型以及應(yīng)用情況等。</p><p> (2)對HDFS整體框架的數(shù)據(jù)管理機制進行分析,介紹其中的名稱節(jié)點、數(shù)據(jù)節(jié)點以及數(shù)據(jù)交互、組織和維護等內(nèi)容;同時,對數(shù)據(jù)管理實現(xiàn)的技術(shù)方法進行分析設(shè)計,為構(gòu)建一個云存儲服務(wù)系統(tǒng)奠定基礎(chǔ)。</p><p> (3)結(jié)合云存儲的特點和HDFS框架關(guān)鍵數(shù)據(jù)管理機制的研究,通過系統(tǒng)需
48、求的分析,設(shè)計出云存儲的體系結(jié)構(gòu)、系統(tǒng)功能、數(shù)據(jù)庫結(jié)構(gòu)以及運行環(huán)境,構(gòu)建出一個基于HDFS的云存儲服務(wù)系統(tǒng)。</p><p> 以下是本文的章節(jié)安排:</p><p> 第1章,緒論。介紹了研究背景、研究意義、研究內(nèi)容以及文章的論文結(jié)構(gòu)。</p><p> 第2章,文件共享存儲系統(tǒng)相關(guān)技術(shù)和理論。本章簡述云存儲的相關(guān)理論,介紹了云存儲與云計算間的關(guān)系,分析了云
49、存儲服務(wù)系統(tǒng)的結(jié)構(gòu)模型和關(guān)鍵實現(xiàn)技術(shù),以及云存儲系統(tǒng)的應(yīng)用情況等。</p><p> 第3章,文件共享存儲系統(tǒng)的分析與設(shè)計。對于云存儲服務(wù)來說,Hadoop是應(yīng)用最為廣泛的開源框架,而HDFS是Hadoop的底部實現(xiàn),本章介紹了該框架的數(shù)據(jù)管理機制,以及對服務(wù)系統(tǒng)存儲體系結(jié)構(gòu)、功能結(jié)構(gòu)、數(shù)據(jù)庫及運行環(huán)境進行了設(shè)計。</p><p> 第4章,文件共享存儲系統(tǒng)的實現(xiàn)。本章在第三章對HDF
50、S數(shù)據(jù)管理機制分析的和系統(tǒng)設(shè)計基礎(chǔ)上,詳細對設(shè)計進行了實現(xiàn),并對結(jié)果進行詳盡描述。</p><p> 第5章,系統(tǒng)測試。本章對這次設(shè)計的軟件部分進行了系統(tǒng)的測試。通過測試來檢驗程序部分的健壯性。</p><p> 第6章,總結(jié)和展望。指出了本次研究工作所取得的主要成果并提出今后進一步研究和發(fā)展的方向。</p><p> 第二章 文件共享存儲系統(tǒng)相關(guān)技術(shù)和理論&
51、lt;/p><p> 2.1 B/S網(wǎng)絡(luò)模式的結(jié)構(gòu)工作原理和特點</p><p> 2.1.1 B/S工作原理</p><p> Intranet 是基于 TCP/IP 協(xié)議開發(fā)的企業(yè)級內(nèi)部專用網(wǎng)絡(luò)。Browser/Server 結(jié)構(gòu)模式采用諸如 TCP/IP 協(xié)議、SMTP(簡單報文傳送協(xié)議)、HTTP 協(xié)議和 HTML 等 Internet技術(shù)和標準,能給企業(yè)
52、內(nèi)部信息交換支持運行。與此同時,Browser/Server 結(jié)構(gòu)模式還能夠連接 Internet 的功能,同時也有效組織外界風險入侵,提高系統(tǒng)的安全性能。而 Browser/Server 結(jié)構(gòu)模式另一個顯著特點,介于數(shù)據(jù)庫擁有功能強大的存儲數(shù)據(jù)和管理功能,同時也能夠動態(tài)地完成數(shù)據(jù)輸入和輸出。若能在 Intranet 上使用數(shù)據(jù)庫技術(shù),既能夠?qū)崿F(xiàn)把大量信息發(fā)布到網(wǎng)絡(luò)上,同時也可以數(shù)量巨大的用戶提供動態(tài)的信息檢索和數(shù)據(jù)處理功能,從而增強企
53、業(yè)內(nèi)部各部門間、上級與下級各部門之間、企業(yè)員工之間、企業(yè)與企業(yè)客戶之間,同時企業(yè)與企業(yè)之間的信息交流,降低企業(yè)的日常運行成本,提高企業(yè)的經(jīng)濟效益。</p><p> 在 Browser/Server 結(jié)構(gòu)模式中,程序主要布置客戶端運行瀏覽器軟件。瀏覽器Browser 以 HTML 形式向 Web 服務(wù)器提出請求進行訪問數(shù)據(jù)庫,Web Server 接受客戶端發(fā)出的請求后,把請求轉(zhuǎn)化為 SQL 語法,然后提交給數(shù)
54、據(jù)庫服務(wù)器,數(shù)據(jù)庫服務(wù)器接受請求后,先是驗證請求的語法的合法性,同時進行數(shù)據(jù)處理,然后將處理后的結(jié)果返回給 Web 服務(wù)器,Web 服務(wù)器再一次將得到的所有結(jié)果進行轉(zhuǎn)化,變成超文本文檔形式,然后發(fā)送給客戶端瀏覽器以客戶友好的網(wǎng)頁頁面形式展現(xiàn)。</p><p> 2.1.2 B/S的特點</p><p> B/S 模式(見圖2.1.2)具有以下特點:</p><p&g
55、t; ?。?)分布式應(yīng)用:B/S 結(jié)構(gòu)模式通過應(yīng)用服務(wù)器、數(shù)據(jù)服務(wù)器的分布以及前端</p><p> 客戶機的簡化,解決了分布式應(yīng)用的問題。</p><p> (2)跨平臺應(yīng)用:可跨不同的操作系統(tǒng)平臺、跨數(shù)據(jù)庫平臺。</p><p> ?。?)容易部署和管理:整個系統(tǒng)的管理、資源分配、數(shù)據(jù)庫操作、業(yè)務(wù)邏輯不見的管理及動態(tài)加載、更新等工作集中于應(yīng)用服務(wù)器。這可以降
56、低客戶機的管理難度,有效提高整個系統(tǒng)的運行效率,降低應(yīng)用系統(tǒng)部署和管理的難度。</p><p> (4)用 B/S 模式設(shè)計管理信息系統(tǒng),將可以利用現(xiàn)有最先進的計算機技術(shù),在全球 Internet 風潮中,獲得最廣泛的軟硬件技術(shù)支持</p><p> (5)客戶端只需通過簡單的瀏覽器即可完成相應(yīng)的操作。</p><p> ?。?)在進行系統(tǒng)維護時,用戶只需對服務(wù)
57、器端的代碼進行修改即可,因此易</p><p><b> 于管理和維護</b></p><p> ?。?)不需要開發(fā)客戶端軟件,使用 Windows 操作系統(tǒng)內(nèi)置的 TCP/IP 協(xié)議和IE 瀏覽器就可瀏覽網(wǎng)上資源。采用公開的標準和協(xié)議,可以把原有的系統(tǒng)平滑地升級到 Internet,實現(xiàn)系統(tǒng)的簡單升級。</p><p> 圖2.1.2 B
58、/S邏輯</p><p> Fig 3.3 The logic of B/S</p><p> 2.2 云存儲和云計算的系統(tǒng)分析</p><p> 2.2.1.云存儲的概念</p><p> 云存儲的概念與云計算相似,它是指通過集群應(yīng)用、網(wǎng)格技術(shù)或分布式文件系統(tǒng)等功能,將網(wǎng)絡(luò)中大量各種不同類型的存儲設(shè)備通過應(yīng)用軟件集合起來協(xié)同工作,共
59、同對外提供數(shù)據(jù)存儲和業(yè)務(wù)訪問功能的一個系統(tǒng)。云存儲不是存儲,而是服務(wù)。就如同云狀的廣域網(wǎng)和互聯(lián)網(wǎng)一樣,云存儲對使用者來講,不是指某一個具體的設(shè)備,而是指一個由許許多多個存儲設(shè)備和服務(wù)器所構(gòu)成的集合體。使用者使用云存儲,并不是使用某一個存儲設(shè)備,而是使用整個云存儲系統(tǒng)帶來的一種數(shù)據(jù)訪問服務(wù)。所以嚴格來講,云存儲不是存儲,而是一種服務(wù)。云存儲的核心是應(yīng)用軟件與存儲設(shè)備相結(jié)合,通過應(yīng)用軟件來實現(xiàn)存儲設(shè)備向存儲服務(wù)的轉(zhuǎn)變。</p>
60、<p> 2.2.2.云存儲與云計算的關(guān)系</p><p> 云計算是分布式處理(Distributed Computing)、并行處理(Parallel Computing)和網(wǎng)格計算(Grid Computing)的發(fā)展,是透過網(wǎng)絡(luò)將龐大的計算處理程序自動分拆成無數(shù)個較小的子程序,再交由多臺服務(wù)器所組成的龐大系統(tǒng)經(jīng)計算分析之后將處理結(jié)果回傳給用戶。云計算技術(shù)可以讓網(wǎng)絡(luò)服務(wù)提供者在極短時間,例如
61、數(shù)秒之內(nèi)處理數(shù)以千萬計甚至億計的信息,達到和“超級計算機”同樣強大的網(wǎng)絡(luò)服務(wù)。云計算系統(tǒng)的建設(shè)目標是將運行在PC上或單個服務(wù)器上的獨立的、個人化的運算遷移到一個數(shù)量龐大服務(wù)器“云"中,由這個云系統(tǒng)來負責處理用戶的請求,并輸出結(jié)果,它是一個以數(shù)據(jù)運算和處理為核心的系統(tǒng)。</p><p> 云存儲是在云計算(cloud computing)概念上延伸和發(fā)展出來的一個新的概念。當云計算系統(tǒng)運算和處理的核心是
62、大量數(shù)據(jù)的存儲和管理時,云計算系統(tǒng)中就需要配置大量的存儲設(shè)備,那么云計算系統(tǒng)就轉(zhuǎn)變成為一個云存儲系統(tǒng),所以云存儲是一個以數(shù)據(jù)存儲和管理為核心的云計算系統(tǒng)。</p><p> 與云計算系統(tǒng)相比,云存儲可以認為是配置了大容量存儲空間的一個云計算。從架構(gòu)模型來看,云存儲系統(tǒng)比云計算系統(tǒng)多了一個存儲層,同時,在基礎(chǔ)管理也多了很多與數(shù)據(jù)管理和數(shù)據(jù)安全有關(guān)的功能,這兩者在訪問層和應(yīng)用接口層則是完全相同的。</p>
63、;<p> 2.2.3.云存儲系統(tǒng)的結(jié)構(gòu)模型</p><p> 與傳統(tǒng)的存儲設(shè)備相比,云存儲不僅僅是一個硬件,而是一個網(wǎng)絡(luò)設(shè)備、存儲設(shè)備、服務(wù)器、應(yīng)用軟件、公用訪問接口、接入網(wǎng)、和客戶端程序等多個部分組成的復(fù)雜系統(tǒng)。各部分以存儲設(shè)備為核心,通過應(yīng)用軟件來對外提供數(shù)據(jù)存儲和業(yè)務(wù)訪問服務(wù)。云存儲系統(tǒng)的結(jié)構(gòu)模型由4層組成。</p><p><b> (1)存儲層&l
64、t;/b></p><p> 存儲層是云存儲最基礎(chǔ)的部分。存儲設(shè)備可以是光纖通道存儲設(shè)備,也可以是其他的存儲設(shè)備。云存儲中的存儲設(shè)備往往數(shù)量龐大且分布多不同地域,彼此之間通過廣域網(wǎng)、互聯(lián)網(wǎng)或者光纖通道網(wǎng)絡(luò)連接在一起。存儲設(shè)備之上是一個統(tǒng)一存儲設(shè)備管理系統(tǒng),可以實現(xiàn)存儲設(shè)備的邏輯虛擬化管理、多鏈路冗余管理以及硬件設(shè)備的狀態(tài)監(jiān)控和故障維護。</p><p><b> (2)
65、基礎(chǔ)管理層</b></p><p> 基礎(chǔ)管理層是云存儲最核心的部分,也是云存儲中最難以實現(xiàn)的部分?;A(chǔ)管理層通過集群、分布式文件系統(tǒng)和網(wǎng)格計算等技術(shù),實現(xiàn)云存儲中多個存儲設(shè)備之間的協(xié)同工作,使多個存儲設(shè)備可以對外提供同一種服務(wù),并提供更大更強更好的數(shù)據(jù)訪問性能。數(shù)據(jù)加密技術(shù)保證云存儲中的數(shù)據(jù)不會被未授權(quán)的用戶所訪問,同時,通過各種數(shù)據(jù)備份和容災(zāi)技術(shù)和措施可以保證云存儲中的數(shù)據(jù)不會丟失,保證云存儲自
66、身的安全和穩(wěn)定。</p><p><b> (3)應(yīng)用接口層</b></p><p> 應(yīng)用接口層是云存儲最靈活多變的部分。不同的云存儲運營單位可以根據(jù)實際業(yè)務(wù)類型,開發(fā)不同的應(yīng)用服務(wù)接口,提供不同的應(yīng)用服務(wù)。比如視頻監(jiān)控應(yīng)用平臺、網(wǎng)絡(luò)硬盤引用平臺、遠程數(shù)據(jù)備份應(yīng)用平臺等。</p><p><b> (4)訪問層</b&g
67、t;</p><p> 任何一個授權(quán)用戶都可以通過標準的公用應(yīng)用接口來登錄云存儲系統(tǒng),享受云存儲服務(wù)。云存儲運營服務(wù)商不同,云存儲提供的訪問類型和訪問手段也同。</p><p> 2.2.4云存儲實現(xiàn)的關(guān)鍵技術(shù)</p><p> 從云存儲的結(jié)構(gòu)模型可知,云存儲系統(tǒng)是一個多設(shè)備、多應(yīng)用、多服務(wù)協(xié)同工作的集合體,它的實現(xiàn)要以多種技術(shù)的發(fā)展為前提。</p>
68、;<p> (1)寬帶網(wǎng)絡(luò)的發(fā)展</p><p> 真正的云存儲系統(tǒng)將會是一個多區(qū)域分布、遍布全國、甚至于遍布全球的龐大公用系統(tǒng)。只有寬帶網(wǎng)絡(luò)得到充足的發(fā)展,使用者才有可能獲得足夠大的數(shù)據(jù)傳輸帶寬,實現(xiàn)大容量數(shù)據(jù)的傳輸,真正享受到云存儲服務(wù)。</p><p><b> Web2.0技術(shù)</b></p><p> Web2.
69、0技術(shù)的核心是分享。只有通過Web2.0技術(shù),云存儲的使用者才有可能通過PC、手機、移動多媒體等多種設(shè)備,實現(xiàn)數(shù)據(jù)、文檔、圖片、視頻和音頻等內(nèi)容的集中存儲和資料共享。Web2.0技術(shù)的發(fā)展使得使用者的應(yīng)用方式和可得服務(wù)更加靈活和多樣。</p><p><b> 應(yīng)用存儲的發(fā)展</b></p><p> 應(yīng)用存儲是一種在存儲設(shè)備中集成了應(yīng)用軟件功能的存儲設(shè)備,它不僅
70、具有數(shù)據(jù)存儲功能,還具有應(yīng)用軟件功能,可以看作是服務(wù)器和存儲設(shè)備的集合體。應(yīng)用存儲技術(shù)的發(fā)展可以大量減少云存儲中服務(wù)器的數(shù)量,從而降低系統(tǒng)建設(shè)成本,減少系統(tǒng)中由服務(wù)器造成的單點故障和性能瓶頸,減少數(shù)據(jù)傳輸環(huán)節(jié),提高系統(tǒng)性能和效率,保證整個系統(tǒng)的高效穩(wěn)定運行。</p><p> 集群技術(shù)、網(wǎng)格技術(shù)和分布式文件系統(tǒng)</p><p> 云存儲系統(tǒng)是一個多存儲設(shè)備、多應(yīng)用、多服務(wù)協(xié)同工作的集合
71、體,它需要通過集群技術(shù)、分布式文件系統(tǒng)和網(wǎng)格計算等技術(shù),實現(xiàn)多個存儲設(shè)備之間的協(xié)同工作,使多個存儲設(shè)備可以對外提供同一種服務(wù),并提供更大更強更好的數(shù)據(jù)訪問性能。</p><p> (5)CDN(Content Delivery Network)內(nèi)容分發(fā)、P2P技術(shù)、數(shù)據(jù)壓縮技術(shù)、重復(fù)數(shù)據(jù)刪除技術(shù)、數(shù)據(jù)加密技術(shù)。CDN內(nèi)容分發(fā)系統(tǒng)、數(shù)據(jù)加密技術(shù)保證云存儲中的數(shù)據(jù)不會被未授權(quán)的用戶所訪問,同時,通過各種數(shù)據(jù)備份和容
72、災(zāi)技術(shù)保證云存儲中的數(shù)據(jù)不會丟失,保證云存儲自身的安全和穩(wěn)定。</p><p> (6)存儲虛擬化技術(shù)、存儲網(wǎng)絡(luò)化管理技術(shù)</p><p> 云存儲中的存儲設(shè)備數(shù)量龐大且分布在多不同地域,如何實現(xiàn)不同廠商、不同型號甚至于不同類型(如FC存儲和IP存儲)的多臺設(shè)備之間的邏輯卷管理、存儲虛擬化管理和多鏈路冗余管理將會是一個巨大的難題,這個問題得不到解決,存儲設(shè)備就會是整個云存儲系統(tǒng)的性能瓶
73、頸,結(jié)構(gòu)上也無法形成一個整體,而且還會帶來后期容量和性能擴展難等問題。</p><p> 2.3 HDFS數(shù)據(jù)管理機制分析</p><p> Hadoop文件系統(tǒng)(Hadoop Distributed File System,HDFS)和現(xiàn)有的分布式文件系統(tǒng)相似,是一個運行在普通的硬件之上的分布式文件系統(tǒng),然而它與其他分布式文件系統(tǒng)也存在著一定的差別。HDFS具有高容錯性,可以部署在低
74、成本的硬件之上,同時HDFS放松了對POSIX的需求,使其可以以流的形式訪問文件數(shù)據(jù),從而提供高吞吐量地對應(yīng)用程序的數(shù)據(jù)進行訪問,適合大數(shù)據(jù)集的應(yīng)用程序。HDFS最早是為開源的Apache項目Nutch[52J的基礎(chǔ)結(jié)構(gòu)而創(chuàng)建,是Hadoop項目的一部分,而Hadoop又是Lucene的一部分。圖2.3為HDFS體系結(jié)構(gòu)圖:</p><p> 圖2.3 HDFS體系結(jié)構(gòu)圖</p><p>
75、; Fig 2.3 Architecture of HDFS</p><p> 由圖2.3可知,名稱結(jié)點(下稱NameNode)上保存著控制數(shù)據(jù)結(jié)點(下稱DataNode)信息的元數(shù)據(jù)。客戶端Client可以通過NameNode對元數(shù)據(jù)進行操作,也可以直接對DataNode進行讀和寫操作。下面將對HDFS進行全方面的剖析與介紹,以便深入地理解HDFS的體系架構(gòu)和工作機制。</p><p&g
76、t; 2.3.1名稱節(jié)點和數(shù)據(jù)節(jié)點</p><p> HDFS的體系框架是主從結(jié)構(gòu),一個HDFS集群通常由單個NameNode和多個DataNode組成,NameNode主要負責管理文件命名空間和客戶端訪問的主服務(wù)器,而DataNode則負責對存儲進行管理。下面來詳細介紹NameNode和DataNode的功能。</p><p> NameNode的功能由如下幾點組成:</p&
77、gt;<p> (1)管理元數(shù)據(jù)和文件塊管理元數(shù)據(jù)指管理元數(shù)據(jù)信息。元數(shù)據(jù)信息包括名字空間、文件到文件塊的映射、文件塊到數(shù)據(jù)節(jié)點的映射三部分。管理文件塊包括創(chuàng)建新文件塊、文件復(fù)制、移除無效文件塊以及回收孤立文件塊等內(nèi)容。</p><p><b> (2)管理命名空間</b></p><p> NameNode管理文件系統(tǒng)的命名空間。任何對文件系統(tǒng)元
78、數(shù)據(jù)產(chǎn)生修改的操作,NameNode都會使用事務(wù)日志記錄(下稱EditLog)來表示;同樣地,修改文件的副本系數(shù)也將往Editlog插入一條記錄,NameNode將Editlog存儲在本地操作系統(tǒng)的文件系統(tǒng)中。同時,文件系統(tǒng)的命名空間被存儲在一個稱為Fslmage的文件中,包括文件的屬性、文件塊到文件的映射以及文件塊到數(shù)據(jù)節(jié)點的映射等內(nèi)容,F(xiàn)sImage文件也是放在NameNode所在的本地文件系統(tǒng)中。</p><p
79、> (3)監(jiān)聽請求和處理請求</p><p> 監(jiān)聽請求指監(jiān)聽客戶端事件和DataNode事件??蛻舳耸录挚臻g的創(chuàng)建和刪除,文件的創(chuàng)建、讀寫、重命名和刪除,文件列表信息獲取等信息。DataNode事件主要包括文件塊信息、心跳響應(yīng)、出錯信息等。處理請求指處理上面的監(jiān)聽請求事件并返回結(jié)果。</p><p><b> (4)心跳檢測</b></p&
80、gt;<p> 數(shù)據(jù)節(jié)點會定期將自己的負載情況通過心跳信息向名稱節(jié)點匯報。數(shù)據(jù)節(jié)點DataNode的功能主要包括以下幾個方面:首先,是數(shù)據(jù)塊的讀寫。一般是文件系統(tǒng)客戶端需要請求對指定DataNode進行讀寫操作,DataNode通過DataNode的服務(wù)進程與文件系統(tǒng)客戶端打交道。同時,DataNode進程與NameNode統(tǒng)一結(jié)合,對是否需要對文件塊的創(chuàng)建、刪除、復(fù)制等操作進行指揮與調(diào)度,當與NameNode交互過程中
81、收到了可以執(zhí)行文件塊的創(chuàng)建、刪除或復(fù)制操作的命令后,才開始讓文件系統(tǒng)客戶端執(zhí)行指定的操作。具體文件的操作并不是DataNode來實際完成的,而是經(jīng)過DataNode許可后,文件系統(tǒng)客戶端進程來執(zhí)行實際操作。</p><p> 其次,是向NameNode報告狀態(tài)。每個DataNode節(jié)點會周期性地向NameNode發(fā)送心跳信號和文件塊狀態(tài)報告,以便NameNode獲取到工作集群中DataNode節(jié)點狀態(tài)的全局視圖
82、,從而掌握它們的狀態(tài)。如果存在DataNode節(jié)點失效的情況時,NameNode會調(diào)度其它DataNode執(zhí)行失效結(jié)點上文件塊的復(fù)制處理,保證文件塊的副本數(shù)達到規(guī)定數(shù)量。</p><p> 最后,是執(zhí)行數(shù)據(jù)的流水線復(fù)制。當文件系統(tǒng)客戶端從NameNode服務(wù)器進程中獲取到要進行復(fù)制的數(shù)據(jù)塊列表(列表中包含指定副本的存放位置,亦即某個DataNode結(jié)點)后,會首先將客戶端緩存的文件塊復(fù)制到第一個DataNode
83、節(jié)點上,此時并非整個塊都復(fù)制到第一個DataNode完成以后才復(fù)制到第二個DataNode節(jié)點上,而是由第一個DataNode向第二個DataNode節(jié)點復(fù)制,如此反復(fù)進行下去,直到完成文件塊及其塊副本的流水線復(fù)制。</p><p> HDFS集群的單服務(wù)器結(jié)構(gòu)在很大的程度上簡化了系統(tǒng)架構(gòu)。HDFS只有一個NameNode,這個NameNode服務(wù)器保存著HDFS所有的元數(shù)據(jù),可以說是整個系統(tǒng)的仲裁者。在HDF
84、S中,NameNode不會有任何數(shù)據(jù)經(jīng)過。NameNode,這個NameNode服務(wù)器保存著HDFS所有的元數(shù)據(jù),可以說是整個系統(tǒng)的仲裁者。在HDFS中,NameNode不會有任何數(shù)據(jù)經(jīng)過。</p><p><b> 2.3.2元數(shù)據(jù)</b></p><p> 一般來說,有三種類型的元數(shù)據(jù)保存在NameNode的內(nèi)存中,它們分別是:文件(包括目錄)的名字空間、文件
85、到文件塊的映射、文件塊的位置信息。對于名字空間或者文件到文件快的映射的任何修改,HDFS都會通過EditLog記錄下來并保存到本地磁盤中。通過這種方式可以提高系統(tǒng)的可靠性,并憑借EditLog日志從錯誤中恢復(fù)而不必擔心數(shù)據(jù)的一致性問題。由于文件塊存放的位置信息并不固定而是經(jīng)常發(fā)生變化,因此系統(tǒng)并沒有將其持久化到本地中。NameNode啟動后并不需要對DataNode進行維護,DataNode會周期性地向NameNode發(fā)生心跳響應(yīng)匯報其
86、文件塊信息。由于所有元數(shù)據(jù)信息都保存在內(nèi)存中,所以NameNode可以周期性快速地掃描元數(shù)據(jù)的狀態(tài),然后確定出哪些文件塊由于DataNode宕機而需要重新復(fù)制,哪些文件塊需要被回收,哪些文件塊需要在DataNode間進行遷移來保證系統(tǒng)的負載均衡等。</p><p> 由于元數(shù)據(jù)信息在設(shè)計上是緊湊的,因而不必擔心將元數(shù)據(jù)信息存放在內(nèi)存里會限制到系統(tǒng)的容量問題,假設(shè)NameNode擁有4GB內(nèi)存,那么它足以存放海量
87、的元數(shù)據(jù)信息。除此之外,適當?shù)卦黾覰ameNode的內(nèi)存也可以方便地擴充系統(tǒng)的容量。NameNode并沒有將文件塊到DataNode的映射信息持久化到本地,而是在其初始化時才從NameNode獲得,并通過DataNode的心跳響應(yīng)信息進行定期更新。因為由數(shù)以千計的DataNode組成的HDFS集群時常有DataNode的加入、離開、改名、宕機或重啟等情況的發(fā)生,因此,只有DataNode本身才能夠確定其本地磁盤上文件塊的位置信息,故而
88、NameNode不需要將該信息持久化到本地中。由此說來,NameNode和DataNode之間的一致性問題不用花費太多的精力去維護。</p><p> 由于EditLog中保存了元數(shù)據(jù)更改的歷史信息,因此具有非常重要的作用。EditLog不僅持久化記錄了元數(shù)據(jù)信息,也記錄了元數(shù)據(jù)修改順序的邏輯時間線,而邏輯時間是對文件和文件塊進行查找確認的唯一標識。因此,必須保證EditLog存儲的安全性與可靠性。為了防止丟失
89、整個文件系統(tǒng)或者客戶端最近的幾次操作記錄,系統(tǒng)應(yīng)保證在客戶端對元數(shù)據(jù)的修改操作還沒記錄到EditLog之前,使該操作對其是不可見的。</p><p> 另外,NameNode還可以根據(jù)磁盤上的元數(shù)據(jù)信息(Fslmage)和EditLog快速的從錯誤中進行數(shù)據(jù)恢復(fù),保證數(shù)據(jù)的一致性。</p><p> NameNode服務(wù)器啟動時,會進行一個檢查點(Checkpoim)操作?,F(xiàn)在的HDF
90、S實現(xiàn)只支持在NameNode啟動時創(chuàng)建一個檢查點,在未來版本的HDFS中將可能會支持周期性的檢查點創(chuàng)建。在了解檢查點的操作過程之前,首先要了解二級名稱節(jié)點(下稱Secondary NameNode)的概念。</p><p> Secondary NameNode并不是NameNode出現(xiàn)問題時的備用節(jié)點,它和NameNode負責不同的事情,其主要功能是周期性將NameNode的元數(shù)據(jù)信息Fslmage和Edi
91、tLog合并,以防止日志文件過大。合并過后的Fslmage會在NameNode保存一份,保證NameNode失敗的時候可以進行恢復(fù)。</p><p> 2.4 HADOOP思想核心 Map/Reduce機制</p><p> MapReduce通過把對數(shù)據(jù)集的大規(guī)模操作分發(fā)給網(wǎng)絡(luò)上的每個節(jié)點實現(xiàn)可靠性;每個節(jié)點會周期性的把完成的工作和狀態(tài)的更新報告回來。如果一個節(jié)點保持沉默超過一個預(yù)設(shè)
92、的時間間隔,主節(jié)點(類同Google File System中的主服務(wù)器)記錄下這個節(jié)點狀態(tài)為死亡,并把分配給這個節(jié)點的數(shù)據(jù)發(fā)到別的節(jié)點。每個操作使用命名文件的原子操作以確保不會發(fā)生并行線程間的沖突;當文件被改名的時候,系統(tǒng)可能會把他們復(fù)制到任務(wù)名以外的另一個名字上去。(避免副作用)。</p><p> 2.4.1 JobTracker簡介</p><p> Job Tracker:J
93、obTracker(Google稱為Master)是負責管理調(diào)度所有作業(yè),它是整個系統(tǒng)分配任務(wù)的核心,它也是唯一的,這與HDFS類似,因此簡化了同步流程問題。JobClient會在用戶端通過JobClient類將應(yīng)用已經(jīng)配置參數(shù)打包成jar文件存儲到hdfs,并把路徑提交到Jobtracker,然后由JobTracker創(chuàng)建每一個Task(即MapTask和ReduceTask)并將它們分發(fā)到各個TaskTracker服務(wù)中去執(zhí)行。&l
94、t;/p><p> 2.4.2 TaskTracker簡介</p><p> Task Tracker:TaskTracker是運行在多個節(jié)點上的slaver服務(wù)。TaskTracker主動與JobTracker通信,接收作業(yè),并負責直接執(zhí)行每一個任務(wù)Task Tracker具體負責執(zhí)行用戶定義操作,每個作業(yè)被分割為任務(wù)集,包括Map任務(wù)和Reduce任務(wù)。任務(wù)是具體執(zhí)行的基本單元,Tas
95、k Tracker執(zhí)行過程中需要向Job Tracker 發(fā)送心跳信息,匯報每個任務(wù)的執(zhí)行狀態(tài),幫助Job Tracker收集作業(yè)執(zhí)行的整體情況,為下次任務(wù)分配提供依據(jù)。</p><p> 在Hadoop中,客戶端(任務(wù)提交者)是一組API,用戶需要自定義自己需要的內(nèi)容,由客戶端將作業(yè)及其配置提交到Job Tracker,并監(jiān)控執(zhí)行狀況。</p><p> 2.5 TOMCAT和JAV
96、A</p><p> 2.5.1什么是TOMCAT</p><p> Tomcat 服務(wù)器是一個免費的開放源代碼的Web 應(yīng)用服務(wù)器,屬于輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選。在一臺機器上配置好Apache 服務(wù)器,可利用它響應(yīng)對HTML 頁面的訪問請求。實際上Tomcat 部分是Apache 服務(wù)器的擴展,但它是獨立運
97、行的,所以當你運行tomcat 時,它實際上作為一個與Apache 獨立的進程單獨運行的。</p><p> 2.5.2 TOMCAT工作原理</p><p> Servlet容器:Servlet是一種運行在支持Java語言的服務(wù)器上的組件,它與普通Java類的區(qū)別就是它運行在服務(wù)器上。由于Java的平臺無關(guān)性,再加之Servlet運行在服務(wù)器端,因此Servlet對于用戶是完全透明的
98、。Servlet容器的作用是負責處理客戶請求。當客戶請求來到時,Servlet容器獲取請求,然后調(diào)用某個Servlet,并把Servlet的執(zhí)行結(jié)果返回給客戶。</p><p> Tomcat就是起這樣作用的容器。(類似的其它Servlet容器比如Resin其功能也是類似的。</p><p> 當客戶請示某個資源時,Servlet容器使用ServletRequest對象把客戶的請求信息
99、封裝起來,然后調(diào)用Java Servlet API中定義的一些Servlet方法,完成Servlet的執(zhí)行,接著把Servlet執(zhí)行的要返回給客戶的結(jié)果封裝到ServletResponse對象中,最后 Servlet容器把客戶的請求發(fā)給客戶,完成為客戶的一次服務(wù)過程。工作流程如圖2.5所示</p><p> 圖2.5 客戶端和服務(wù)器的交互</p><p> Fig 2.5 The in
100、teration between client and server</p><p><b> 2.6 開發(fā)工具</b></p><p> 2.4.1 Java平臺介紹</p><p> Sun Microsystems公司在推出Java語言的同時,推出了一套開發(fā)工具JDK。Sun提供的基于字符模式的Java開發(fā)工具包JDK:&
101、#160;Java開發(fā)工具(JDK)是許多Java專家最初使用的開發(fā)環(huán)境。Java是平臺無關(guān)的語言是指用Java寫的應(yīng)用程序不用修改就可在不同的軟硬件平臺上運行。 </p><p> Java源程序編寫借助于記事本,Editpuls,UltraEdit等第三方編輯工具。所有的Java文件編輯、編譯、調(diào)試、解釋運行都是通過使用字符命令來執(zhí)行操作。JDK由一個標準類庫和一組建立,測試及建立文檔的Java實
102、用程序組成。其核心Java API是一些預(yù)定義的類庫,開發(fā)人員需要用這些類來訪問Java語言的功能。JDK 是整個Java的核心,包括了Java運行環(huán)境(Java RuntimeEnvirnment),一堆Java工具和Java基礎(chǔ)的類庫(rt.jar)。不論什么Java應(yīng)用服務(wù)器實質(zhì)都是內(nèi)置了某個版本的JDK。因此掌握JDK是學好Java的第一步。 </p><p>
103、JDK里面是java類庫和java的語言規(guī)范,它提供的是無論你用何種開發(fā)軟件寫java程序都必須用到的類庫和java語言規(guī)范.沒有jdk,你的java程序根本就不能用。最主流的JDK是Sun公司發(fā)布的JDK,除了Sun之外,還有很多公司和組織都開發(fā)了自己的JDK,例如IBM公司開發(fā)的JDK,BEA公司的Jrocket,還有GNU組織開發(fā)的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machi
104、ne)運行效率要比SunJDK包含的JVM高出許多。而專門運行在x86平臺的Jrocket在服務(wù)端運行效率也要比SunJDK好很多。但不管怎么說,我們還是需要先把Sun JDK掌握好。 </p><p> 2.4.2 Java的優(yōu)勢</p><p><b> 優(yōu)勢:</b></p><p> 1.簡單性,開源
105、,免費,有強力支持,面向?qū)ο螅植际?,解釋型,可靠,安全,跨平臺,可移植,高性能,多線程,動態(tài)性等。</p><p> 2.免費,開源,有強力支持,簡單性</p><p><b> 3.面向?qū)ο螅?lt;/b></p><p> 面向?qū)ο笃鋵嵕褪秋@示世界模型的自然延伸。顯示世界中任何實體都可以看作對象。對象之間通過消息相互作用。如果傳統(tǒng)的過程式
106、編程語言是以過程為中心為算法為驅(qū)動的話,面向?qū)ο蟮木幊陶Z言則是以對象為中心以消息為驅(qū)動。用公式表示,過程式編程語言為:程序=算法+數(shù)據(jù);面向?qū)ο缶幊陶Z言為:程序=對象+消息。所有面向?qū)ο缶幊陶Z言都支持三個概念:封裝、多態(tài)、繼承</p><p> 封裝:就是用一個自主式框架把對象的數(shù)據(jù)和方法聯(lián)在一起形成一個整體。</p><p> 多態(tài):就是多種表現(xiàn)形式,具體來說,可以用“一個對外接口,
107、多個內(nèi)在實現(xiàn)方法”表示。</p><p> 繼承是指一個對象直接使用另一對的屬性和方法。事實上,我們遇到的很多實體都有繼承的含義。Java只支持單一繼承。</p><p><b> 3分布式</b></p><p> 分布式包括數(shù)據(jù)分布和操作分布。數(shù)據(jù)分布是指數(shù)據(jù)可以分散在網(wǎng)絡(luò)的不同主機上,操作分布是指把一個計算機分散到不同主機上處理。&
108、lt;/p><p><b> 4可靠性和安全性</b></p><p> Java是強類型的語言,要求顯示的方法聲明,這保證了編譯器可以防止方法調(diào)用錯誤,保證城區(qū)更加可靠;其次java不支持指針,這杜絕了內(nèi)存的非法訪問;第三,Java的自動單元收集防止了內(nèi)存丟失等動態(tài)內(nèi)存分配導(dǎo)致的問題;Java解釋器運行時,實施檢查,可以發(fā)現(xiàn)數(shù)組和字符串訪問的越界,最后,Java提供
109、了異常處理機制,程序員可以把一組錯誤代碼放在一個地方,這樣可以簡化錯誤處理人物便于恢復(fù)。</p><p><b> 5多線程</b></p><p> 線程是操作系統(tǒng)的一種新概念,它又被稱作輕量進程,是比傳統(tǒng)進程更小的可并發(fā)執(zhí)行的單位。C和C++采用單線程體系結(jié)構(gòu),而Java卻提供了多線程支持。Java在兩方面支持多線程。一方面,Java環(huán)境本身就是多線程的。另一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文——簡易網(wǎng)絡(luò)存儲系統(tǒng)的設(shè)計與實現(xiàn)
- 畢業(yè)論文——簡易網(wǎng)絡(luò)存儲系統(tǒng)的設(shè)計與實現(xiàn)
- 網(wǎng)絡(luò)存儲系統(tǒng)的設(shè)計與實現(xiàn)──系統(tǒng)后臺(ssh)的設(shè)計與實現(xiàn)【畢業(yè)論文設(shè)計】
- 文件網(wǎng)絡(luò)存儲系統(tǒng)的設(shè)計與實現(xiàn).pdf
- sd卡存儲系統(tǒng)的設(shè)計【畢業(yè)論文】
- 新型文件存儲系統(tǒng)設(shè)計與實現(xiàn)研究.pdf
- 大容量數(shù)據(jù)采集存儲系統(tǒng)的研究與實現(xiàn)【精品畢業(yè)論文】
- 基于SAN的共享存儲系統(tǒng)的研究與實現(xiàn).pdf
- 基于Hadoop的文件同步存儲系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 網(wǎng)絡(luò)存儲系統(tǒng)的設(shè)計與實現(xiàn)--用戶界面及數(shù)據(jù)庫的設(shè)計與實現(xiàn)【畢業(yè)論文設(shè)計】
- 網(wǎng)絡(luò)存儲系統(tǒng)的研究—基于SAN的異構(gòu)存儲共享系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 網(wǎng)絡(luò)存儲系統(tǒng)設(shè)計與實現(xiàn)——首頁和管理員頁面編寫【畢業(yè)論文設(shè)計】
- 共享存儲系統(tǒng)并行編程
- 基于NAS的網(wǎng)絡(luò)文件安全存儲系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 基于FastDFS架構(gòu)的小文件存儲系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 基于nas的網(wǎng)絡(luò)文件安全存儲系統(tǒng)的設(shè)計與實現(xiàn)(1)
- 分級存儲系統(tǒng)中文件訪問重定向的設(shè)計與實現(xiàn).pdf
- PPDSS存儲系統(tǒng)設(shè)計與實現(xiàn).pdf
- 基于HADOOP的海量錄音文件存儲系統(tǒng)的設(shè)計與實現(xiàn).pdf
- PACS存儲系統(tǒng)設(shè)計與實現(xiàn).pdf
評論
0/150
提交評論