

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