基于hadoop的電子商務(wù)數(shù)據(jù)存儲(chǔ)架構(gòu)的研究與設(shè)計(jì)-畢業(yè)論文_第1頁(yè)
已閱讀1頁(yè),還剩48頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  畢 業(yè) 設(shè) 計(jì)(論 文)</p><p>  基于Hadoop的電子商務(wù)數(shù)據(jù)存儲(chǔ)架構(gòu)的研究與設(shè)計(jì)</p><p>  院 系: 經(jīng)濟(jì)與管理學(xué)院 物流電子商務(wù)系 </p><p>  專 業(yè): 電子商務(wù) </p><p>  班 級(jí):

2、 </p><p>  學(xué)生姓名: </p><p>  導(dǎo)師姓名: 職稱: 講師 </p><p>  起止時(shí)間:2014年12月20日至2015年06月20日 </p><p>  畢

3、業(yè)設(shè)計(jì)(論文)誠(chéng)信聲明書(shū)</p><p>  本人聲明:本人所提交的畢業(yè)論文《 基于Hadoop的電子商務(wù)數(shù)據(jù)存儲(chǔ)架構(gòu)的研究與設(shè)計(jì)》是本人在指導(dǎo)教師指導(dǎo)下獨(dú)立研究、寫(xiě)作的成果,論文中所引用他人的文獻(xiàn)、數(shù)據(jù)、圖件、資料均已明確標(biāo)注;對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式注明并表示感謝。</p><p>  本人完全清楚本聲明的法律后果,申請(qǐng)學(xué)位論文和資料若有不實(shí)之處,本人

4、愿承擔(dān)相應(yīng)的法律責(zé)任。</p><p>  論文作者簽名: 時(shí)間: 年 月 日</p><p>  指導(dǎo)教師簽名: 時(shí)間: 年 月 日</p><p>  本科畢業(yè)設(shè)計(jì)(論文)開(kāi)題報(bào)告</p><p><b>  目 錄</b>&l

5、t;/p><p><b>  摘 要I</b></p><p>  AbstractII</p><p><b>  1 緒論1</b></p><p>  1.1研究背景1</p><p>  1.2研究意義及研究?jī)?nèi)容2</p><p> 

6、 1.3論文結(jié)構(gòu)2</p><p>  2 分布式系統(tǒng)關(guān)鍵技術(shù)3</p><p>  2.1分布式系統(tǒng)模型簡(jiǎn)介3</p><p>  2.1.1Google的GFS3</p><p>  2.1.2Apache的Hadoop4</p><p>  2.1.3淘寶的TFS4</p>&

7、lt;p>  2.2分布式系統(tǒng)基本算法5</p><p>  2.2.1分布式存儲(chǔ)算法5</p><p>  2.2.2分布式處理算法8</p><p>  2.3本章小結(jié)9</p><p>  3 Hadoop開(kāi)源云計(jì)算系統(tǒng)10</p><p>  3.1Hadoop介紹10</p&

8、gt;<p>  3.2Hadoop關(guān)鍵技術(shù)10</p><p>  3.2.1MapReduce10</p><p>  3.2.2下一代MapReduce:YARN11</p><p>  3.2.3HDFS12</p><p>  3.2.4Hive13</p><p>  3.

9、2.5HBase14</p><p>  3.3本章小結(jié)15</p><p>  4 非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)方案設(shè)計(jì)16</p><p>  4.1云存儲(chǔ)數(shù)據(jù)中心架構(gòu)模型16</p><p>  4.2存儲(chǔ)系統(tǒng)讀寫(xiě)流程17</p><p>  4.2.1存儲(chǔ)系統(tǒng)寫(xiě)流程17</p><

10、p>  4.2.2存儲(chǔ)系統(tǒng)讀流程17</p><p>  4.3非結(jié)構(gòu)化數(shù)據(jù)云存儲(chǔ)平臺(tái)設(shè)計(jì)18</p><p>  4.3.1非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)應(yīng)用實(shí)例18</p><p>  4.4本章小結(jié)23</p><p>  5 Mahout非結(jié)構(gòu)化系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)24</p><p>  5.1Mah

11、out分布式系統(tǒng)架構(gòu)圖24</p><p>  5.2系統(tǒng)總體實(shí)現(xiàn)24</p><p>  5.2.1硬件準(zhǔn)備24</p><p>  5.2.2軟件準(zhǔn)備25</p><p>  5.2.3部署Hadoop集群25</p><p>  5.3Mahout實(shí)現(xiàn)電子商務(wù)推薦系統(tǒng)32</p>

12、<p>  5.3.1系統(tǒng)設(shè)計(jì)32</p><p>  5.3.2結(jié)果演示32</p><p>  5.4本章小結(jié)39</p><p>  6 總結(jié)和展望40</p><p><b>  致 謝41</b></p><p><b>  參考文獻(xiàn)42<

13、/b></p><p><b>  摘 要</b></p><p>  隨著電子商務(wù)行業(yè)的高速發(fā)展,在現(xiàn)階段的電子商務(wù)網(wǎng)站中出現(xiàn)了以指數(shù)級(jí)別形式增長(zhǎng)的海量數(shù)據(jù),而大多數(shù)以非結(jié)構(gòu)化數(shù)據(jù)為主,由此可見(jiàn),面對(duì)電子商務(wù)網(wǎng)站的海量信息,如何高效地存儲(chǔ)和管理這些非結(jié)構(gòu)化數(shù)據(jù)已經(jīng)成為一個(gè)迫切需要解決的問(wèn)題。</p><p>  面對(duì)電子商務(wù)網(wǎng)站中巨大

14、的交易量,傳統(tǒng)的數(shù)據(jù)庫(kù)已經(jīng)無(wú)法滿足對(duì)海量數(shù)據(jù)實(shí)時(shí)統(tǒng)計(jì)、查詢、分析的要求。為了在電子商務(wù)網(wǎng)站海量的商業(yè)數(shù)據(jù)中進(jìn)行信息挖掘、分析,找到有價(jià)值的信息,需要能夠處理海量數(shù)據(jù)的數(shù)據(jù)庫(kù)技術(shù)。</p><p>  現(xiàn)今電子商務(wù)網(wǎng)站數(shù)據(jù)的重要發(fā)展方向是大數(shù)據(jù),而大數(shù)據(jù)的主要實(shí)現(xiàn)方式之一就是通過(guò)Hadoop技術(shù)來(lái)實(shí)現(xiàn)。所以電子商務(wù)數(shù)據(jù)的處理和Hadoop技術(shù)息息相關(guān)。本文側(cè)重于基于Hadoop的電子商務(wù)數(shù)據(jù)存儲(chǔ)架構(gòu)的研究與設(shè)計(jì),分

15、析MapReduce流程、分布式文件系統(tǒng)HDFS,利用Mahout聚類分類算法等相關(guān)技術(shù),結(jié)合非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)特點(diǎn),建立具有高效、安全的系統(tǒng)架構(gòu),提出非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)模型設(shè)計(jì),并利用Mahout設(shè)計(jì)實(shí)現(xiàn)簡(jiǎn)單的電子商務(wù)推薦系統(tǒng)。</p><p>  關(guān)鍵詞:電子商務(wù) 非結(jié)構(gòu)化數(shù)據(jù)HadoopMapReduceMahout</p><p><b>  Abstract<

16、/b></p><p>  With the rapid development of e-commerce industry, massive amounts of data in e-commerce sites grow exponentially in the form, and most are unstructured data, we can see much information e-co

17、mmerce websites, how efficient store and manage unstructured data has become a serious problem.</p><p>  In face of a huge volume of transactions, the traditional database has been unable to meet the huge am

18、ounts of data in real-time statistics, query, analysis of requirements, in order to mining, analysis, find valuable data. We need the database technology that can handle massive amounts of data.</p><p>  Tod

19、ay the mportant direction of development of e-commerce sites’data is big data, and one main way to achieve big data that is through Hadoop technology. So closely related to e-commerce data and Hadoop technology. This art

20、icle focuses on the study of e-commerce data storage architecture research and design based on Hadoop, analysis of MapReduce flow, distributed file system HDFS, use Mahout clustering classification algorithms and other r

21、elated technologies, combined with unstructured data stor</p><p>  Key Words: e-commerce; unstructured data; Hadoop; MapReduce; Mahout</p><p><b>  1 緒論</b></p><p><b&

22、gt;  研究背景</b></p><p>  21世紀(jì)的第一個(gè)十年里,電子商務(wù)行業(yè)高速發(fā)展。據(jù)我國(guó)電子商務(wù)研究中心發(fā)布的《2014年(上)中國(guó)電子商務(wù)市場(chǎng)數(shù)據(jù)監(jiān)測(cè)報(bào)告》顯示,截止到 2014年6月,中國(guó)電子商務(wù)交易額達(dá) 5.8 萬(wàn)億元,相比同一時(shí)期增長(zhǎng) 34.5%。根據(jù)報(bào)告顯示,B2B交易額達(dá) 4.5萬(wàn)億元,與同一時(shí)期相比增長(zhǎng)32.4%。網(wǎng)絡(luò)零售市場(chǎng)交易規(guī)模達(dá) 1.08萬(wàn)億元,相比同一時(shí)期增長(zhǎng)43.

23、9%。無(wú)論是電子商務(wù)網(wǎng)站中的產(chǎn)品圖片展示,還是電子商務(wù)網(wǎng)站中的文本數(shù)據(jù),其數(shù)量都在呈現(xiàn)幾何基礎(chǔ)的增長(zhǎng)。淘寶網(wǎng)作為我國(guó)最大的電子商務(wù)平臺(tái),在線商品達(dá)到10億,淘寶網(wǎng)的圖片存儲(chǔ)系統(tǒng)容量已經(jīng)達(dá)到1800TB(1.8PB),已經(jīng)占用空間990TB(約1PB)。圖片文件的數(shù)量已經(jīng)達(dá)到286億多個(gè),這些圖片文件包括根據(jù)原圖生成的縮略圖。每張圖片大小大約是是17.45K;占圖片數(shù)總量61%的大多是8K以下小圖片,大約占存儲(chǔ)空間的11%。由此可見(jiàn),面對(duì)

24、電子商務(wù)網(wǎng)站的海量信息,如何高效的存儲(chǔ)、管理這些非結(jié)構(gòu)化數(shù)據(jù)已經(jīng)成為一個(gè)迫切需要解決的問(wèn)題。</p><p>  由于海量非結(jié)構(gòu)化數(shù)據(jù)以每年2—3倍的速度增長(zhǎng),商用文件系統(tǒng)已經(jīng)不能達(dá)到其存儲(chǔ)需求,現(xiàn)階段,淘寶網(wǎng)主要采用TFS集群文件系統(tǒng)來(lái)解決和實(shí)現(xiàn)海量非結(jié)構(gòu)化數(shù)據(jù)的讀取和訪問(wèn)。商用文件系統(tǒng)的局限和不足:</p><p>  1.商用文件系統(tǒng)無(wú)法實(shí)現(xiàn)在小文件存儲(chǔ)和讀取的環(huán)境進(jìn)行具有針對(duì)性的優(yōu)

25、化;</p><p>  2.面對(duì)海量數(shù)據(jù),網(wǎng)絡(luò)存儲(chǔ)設(shè)備不能滿足要求;</p><p>  3.系統(tǒng)所連接服務(wù)器已經(jīng)逼近網(wǎng)絡(luò)存儲(chǔ)設(shè)備的極限;</p><p>  4.商用文件系統(tǒng)擴(kuò)充容量成本太高,存在單點(diǎn)故障隱患,無(wú)法保證容災(zāi)和安全性。</p><p>  相對(duì)于商用存儲(chǔ)系統(tǒng),自主研發(fā)擁有明顯的優(yōu)勢(shì):</p><p>

26、  1.自主研發(fā)系統(tǒng)可以充分考慮大規(guī)模系統(tǒng)的應(yīng)用需求,無(wú)論存儲(chǔ)還是CDN還是負(fù)載均衡,可以很方便地實(shí)現(xiàn)如此大的數(shù)據(jù)規(guī)模測(cè)試;</p><p>  2.開(kāi)源和自主開(kāi)發(fā)相結(jié)合,系統(tǒng)擴(kuò)展性更高。達(dá)到軟件設(shè)計(jì)的基本要求“高內(nèi)聚、低耦合”。</p><p>  3.自主研發(fā)系統(tǒng)可在軟硬件多層次進(jìn)行不斷升級(jí)優(yōu)化。</p><p>  Hadoop 實(shí)現(xiàn)了可以在很大程度容納錯(cuò)誤的

27、分布式文件系統(tǒng)HDFS,不僅如此,便宜的硬件機(jī)器上也可以安裝配置HDFS,另外HDFS訪問(wèn)應(yīng)用程序的數(shù)據(jù)的傳輸速率是相當(dāng)?shù)母?。作為谷歌公司?shí)現(xiàn)的免費(fèi)開(kāi)源項(xiàng)目——Hadoop,它具有以下幾個(gè)優(yōu)點(diǎn):可擴(kuò)展,經(jīng)濟(jì),可靠,高效。</p><p><b>  研究意義及研究?jī)?nèi)容</b></p><p>  本文研究意義在于電子商務(wù)網(wǎng)站每日交易量巨大,傳統(tǒng)的數(shù)據(jù)庫(kù)已經(jīng)無(wú)法滿足對(duì)海

28、量數(shù)據(jù)實(shí)時(shí)統(tǒng)計(jì)、查詢、分析的要求,為了能夠?qū)﹄娮由虅?wù)網(wǎng)站中的商業(yè)數(shù)據(jù)進(jìn)行挖掘、分析,找到有價(jià)值的數(shù)據(jù),需要能夠處理海量數(shù)據(jù)的數(shù)據(jù)庫(kù)技術(shù)。</p><p>  現(xiàn)今電子商務(wù)網(wǎng)站數(shù)據(jù)的重要發(fā)展方向是大數(shù)據(jù),而大數(shù)據(jù)的主要實(shí)現(xiàn)方式之一就是通過(guò)Hadoop技術(shù)來(lái)實(shí)現(xiàn)。所以電子商務(wù)數(shù)據(jù)和Hadoop技術(shù)密切相關(guān)。</p><p>  本文研究?jī)?nèi)容側(cè)重于研究基于Hadoop的電子商務(wù)數(shù)據(jù)存儲(chǔ)架構(gòu)的研究

29、與設(shè)計(jì),分析MapReduce流程、分布式文件系統(tǒng)HDFS,利用Mahout聚類分類算法等相關(guān)技術(shù),結(jié)合非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)特點(diǎn),建立具有高效、安全的系統(tǒng)架構(gòu),提出非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)模型設(shè)計(jì),并利用Mahout實(shí)現(xiàn)簡(jiǎn)單的電子商務(wù)推薦系統(tǒng)。通過(guò)在多臺(tái)Linux機(jī)器上安裝配置Hadoop,建立集群環(huán)境,設(shè)計(jì)實(shí)驗(yàn),利用大量電子商務(wù)數(shù)據(jù)進(jìn)行實(shí)驗(yàn)驗(yàn)證,以驗(yàn)證優(yōu)化方案的合理性和系統(tǒng)的可行性。</p><p><b>  

30、論文結(jié)構(gòu)</b></p><p>  本論文結(jié)構(gòu)主要?jiǎng)澐譃榱鶄€(gè)部分,各部分涉及內(nèi)容如下:</p><p>  第一章緒論,劃分為研究背景、研究意義及研究?jī)?nèi)容、論文結(jié)構(gòu)。</p><p>  第二章分布式系統(tǒng)關(guān)鍵技術(shù),針對(duì)目前相對(duì)成熟的分布式系統(tǒng)模型和分布式系統(tǒng)基本算法進(jìn)行介紹。</p><p>  第三章Hadoop開(kāi)源云計(jì)算系統(tǒng)

31、,詳細(xì)介紹了分布式文件系統(tǒng)HDFS、并行編程MapReduce、YARN(下一代MapReduce)、數(shù)據(jù)倉(cāng)庫(kù)Hive、HBase、Mahout。</p><p>  第四章非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)方案設(shè)計(jì),首先通過(guò)需求分析歸納了對(duì)非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)系統(tǒng)的要求,給出非結(jié)構(gòu)化數(shù)據(jù)存取系統(tǒng)的讀寫(xiě)流程的實(shí)現(xiàn)。然后針對(duì)基于Hadoop的電子商務(wù)數(shù)據(jù)存儲(chǔ)架構(gòu)提出設(shè)計(jì)。 </p><p>  第五章Mahout

32、非結(jié)構(gòu)化聚類系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),通過(guò)在多臺(tái)Linux服務(wù)器上部署Hadoop,利用Mahout設(shè)計(jì)電子商務(wù)推薦系統(tǒng),收集實(shí)驗(yàn)數(shù)據(jù)進(jìn)行實(shí)驗(yàn)設(shè)計(jì),以驗(yàn)證優(yōu)化方案的合理性和系統(tǒng)的可行性。</p><p>  第六章總結(jié)和展望,對(duì)本文所涉及的電子商務(wù)數(shù)據(jù)存儲(chǔ)架構(gòu)和電子商務(wù)推薦系統(tǒng)進(jìn)行全面分析,并在此基礎(chǔ)上,針對(duì)基于Hadoop電子商務(wù)數(shù)據(jù)存儲(chǔ)架構(gòu)進(jìn)行了展望。</p><p>  2 分布式系統(tǒng)關(guān)鍵技

33、術(shù)</p><p><b>  分布式系統(tǒng)模型簡(jiǎn)介</b></p><p>  Google的GFS</p><p>  GFS是谷歌設(shè)計(jì)的一個(gè)專用的文件系統(tǒng)。 GFS是對(duì)于大規(guī)模的可伸縮的分布式文件系統(tǒng),應(yīng)用于大量數(shù)據(jù)的應(yīng)用程序訪問(wèn)。不僅在價(jià)格便宜的商用硬件機(jī)器上可以運(yùn)行GFS,而且它還有較強(qiáng)的容納錯(cuò)誤的能力。它將高綜合性能的服務(wù)提供給用戶。

34、</p><p>  與其他的分布式文件系統(tǒng)相比,GFS與他們存在很多相同的目標(biāo),但GFS存在于其他系統(tǒng)不同的目標(biāo),它的設(shè)計(jì)是由技術(shù)環(huán)境和工作量所影響。這便需要重新審視傳統(tǒng)的選擇和探索完全不同的設(shè)計(jì)思路。</p><p>  和傳統(tǒng)的文件系統(tǒng)相比,GFS存在部分自身的觀點(diǎn),如下:</p><p>  1.部件錯(cuò)誤會(huì)被當(dāng)做一種普遍常見(jiàn)的情況,而不是將其認(rèn)為是一種異常,

35、但被視為一個(gè)常見(jiàn)的情況。</p><p>  2.根據(jù)傳統(tǒng)的標(biāo)準(zhǔn),文件非常大。</p><p>  3.GFS主要通過(guò)增加新的數(shù)據(jù)來(lái)更新文件,并不是通過(guò)改變已經(jīng)存在數(shù)據(jù)完成更新。</p><p>  4.由讀取操作兩部分組成GFS工作量:針對(duì)大量數(shù)據(jù)主要以數(shù)據(jù)流的方式進(jìn)行讀操作,針對(duì)少量數(shù)據(jù)以隨機(jī)方式進(jìn)行讀操作。</p><p>  5.工作

36、還包括一些對(duì)于大數(shù)據(jù)量進(jìn)行連續(xù)的、將數(shù)據(jù)添加到文件的寫(xiě)入操作。</p><p>  6.系統(tǒng)必須有效地實(shí)現(xiàn)良好的定義語(yǔ)義來(lái)添加大量的客戶在同一時(shí)間在同一文件操作。</p><p>  7.高可持續(xù)帶寬相對(duì)于低延遲更重要。</p><p>  由一個(gè)master和大量的chunkserver構(gòu)成一個(gè)GFS集群,許多客戶端可以同時(shí)對(duì)其進(jìn)行訪問(wèn)。如圖2-1所示為GFS體系

37、結(jié)構(gòu):</p><p>  圖2-1 GFS體系結(jié)構(gòu)</p><p>  Apache的Hadoop</p><p>  Hadoop,是Apache Lucene的子項(xiàng)目之一,它的來(lái)源是Apache Nutch。 2004年,在“操作系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)”會(huì)上谷歌發(fā)布了講話題目為“MapReduce:簡(jiǎn)化數(shù)據(jù)處理大型集群”,研發(fā)者受到影響,開(kāi)始研發(fā)MapReduce計(jì)算

38、框架,并與Nutch的分布式文件系統(tǒng)結(jié)合起來(lái),以針對(duì)Nutch的主算法進(jìn)行支持。作為Nutch的比較成熟且良好應(yīng)用的NDFS和MapReduce,2006年2月將它們進(jìn)行了分離,并成為一個(gè)完整的,獨(dú)立的軟件,并將其命名為Hadoop。它被應(yīng)用到包括Yahoo!在內(nèi)的很多互聯(lián)網(wǎng)公司。如今的Hadoop已經(jīng)包括HDFS、MapReduce等子項(xiàng)目,和HBase、Hive、ZooKeeper、Pig等關(guān)聯(lián)的大型應(yīng)用工程。</p>

39、<p><b>  淘寶的TFS</b></p><p>  TFS是一個(gè)高度可擴(kuò)展,高可用性,高性能的分布式文件,基于通用的Linux服務(wù)器結(jié)構(gòu)體系,設(shè)計(jì)目標(biāo)是支持非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)。 TFS被廣泛應(yīng)用于淘寶各個(gè)行業(yè)中,集群存儲(chǔ)文件的最大數(shù)量已部署了近十億。</p><p>  現(xiàn)階段,國(guó)內(nèi)自主研發(fā)的文件系統(tǒng)可謂寥寥無(wú)幾。淘寶,中國(guó)最大的電子商務(wù)平臺(tái),一個(gè)

40、十億在線產(chǎn)品、286億的圖片,而大部分的小圖片。淘寶在這方面做有效的探索和實(shí)踐,TFS作為內(nèi)部使用的分布式文件系統(tǒng),對(duì)于隨機(jī)讀取性能和寫(xiě)入訪問(wèn)小文件做了特別的優(yōu)化,以滿足當(dāng)今海量數(shù)據(jù)的存儲(chǔ)需求。如圖2-2所示為T(mén)FS系統(tǒng)架構(gòu):</p><p>  圖2-2 TFS系統(tǒng)結(jié)構(gòu)</p><p><b>  分布式系統(tǒng)基本算法</b></p><p>

41、<b>  分布式存儲(chǔ)算法</b></p><p><b>  a.NFS</b></p><p>  Sun公司開(kāi)發(fā)的網(wǎng)絡(luò)文件系統(tǒng)NFS,現(xiàn)在它已作為一種標(biāo)準(zhǔn)化文件服務(wù)。在NFS的應(yīng)用程序中,本地的NFS客戶端應(yīng)用程序可以以透明的讀寫(xiě)方式訪問(wèn)位于NFS服務(wù)器的遠(yuǎn)端文件,就好像訪問(wèn)本地計(jì)算機(jī)中的文件。因此,它可以被看作是一個(gè)文件服務(wù)器,如下圖2-

42、3顯示。 NFS提供了Windows和Linux和UNIX和Linux之間的通信方法。</p><p>  圖2-3 NFS文件服務(wù)器</p><p>  下圖2-4所顯示為NFS系統(tǒng)架構(gòu),一個(gè)NFS系統(tǒng)包括一個(gè)NFS服務(wù)器和多個(gè)客戶端。</p><p>  客戶機(jī)操作存儲(chǔ)在NFS服務(wù)器上的文件數(shù)據(jù)經(jīng)由TCP/IP網(wǎng)絡(luò)遠(yuǎn)程接入。</p><p&g

43、t;  NFS服務(wù)器正式開(kāi)啟前,要按照實(shí)際環(huán)境和需求,配置相應(yīng)的NFS參數(shù)。</p><p>  圖2-4 NFS系統(tǒng)架構(gòu)</p><p>  b.BigTable</p><p>  BigTable是為處理海量數(shù)據(jù)而研究開(kāi)發(fā)的非關(guān)系型數(shù)據(jù)庫(kù),是一種分布式文件存儲(chǔ)系統(tǒng)。</p><p>  BigTable是緊湊的,高效率的,基于谷歌GFS

44、的用于大規(guī)模結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)存儲(chǔ)系統(tǒng)。</p><p>  BigTable起源于2004年,目前已成為Google應(yīng)用程序。像是MapReduce就常通過(guò)BigTable來(lái)存儲(chǔ)或更改數(shù)據(jù),其他還有Google Reader、Google Maps、Google Book Search、"My Search History"、Google Earth、Blogger.com、Google

45、Code hosting、Orkut、YouTube以及Gmail等。基于性能問(wèn)題,Google推出了特殊的巨型數(shù)據(jù)庫(kù)。</p><p>  BigTable和傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)存在不同點(diǎn),它具有可擴(kuò)展性和高性能等優(yōu)勢(shì)。BigTable的Table數(shù)據(jù)結(jié)構(gòu)包括row key、col key和timestamp,其中row key用于存儲(chǔ)倒轉(zhuǎn)的URL, 例如www.google.com必須改成com.google.

46、www。BigTable使用大量的Table,在Table之下還有Tablet。所謂的Table是屬于immutable的SSTables, 也就是存儲(chǔ)方式不可修改。另外Table還必須進(jìn)行壓縮,壓縮的方式主要是table的壓縮或系統(tǒng)的壓縮??蛻舳擞幸粋€(gè)Tablets指針指向META0,METAO tablets保儲(chǔ)所有META1的tablets數(shù)據(jù)記錄。</p><p>  Bigtable數(shù)據(jù)庫(kù)的架構(gòu),由主服

47、務(wù)器和分服務(wù)器構(gòu)成,如圖2-6所示。主服務(wù)器負(fù)責(zé)將Tablet分配到Tablet服務(wù)器、檢測(cè)新增和過(guò)期的Tablet服務(wù)器、平衡Tablet服務(wù)器之間的負(fù)載、GFS垃圾文件的回收、數(shù)據(jù)模式的改變(例如創(chuàng)建表)等。Tablet服務(wù)器負(fù)責(zé)處理數(shù)據(jù)的讀寫(xiě),并在Tablet規(guī)模 過(guò)大時(shí)進(jìn)行拆分。</p><p>  圖2-5 BigTable數(shù)據(jù)庫(kù)的架構(gòu)</p><p>  Bigtable使用集

48、群管理系統(tǒng)來(lái)調(diào)度任務(wù)、管理資源、監(jiān)測(cè)服務(wù)器狀態(tài)并處理服務(wù)器故障。對(duì)于存儲(chǔ)數(shù)據(jù)文件和日志,Bigtable使用的是GFS方式,數(shù)據(jù)文件的格式為SSTable格式,它提供了關(guān)鍵字到值的映射關(guān)系。Bigtable使用分布式的鎖服務(wù)Chubby來(lái)保證集群中主服務(wù)器的唯一性、保存 Bigtable數(shù)據(jù)的引導(dǎo)區(qū)位置、發(fā)現(xiàn)Tablet服務(wù)器并處理Tablet服務(wù)器的失效、保存Bigtable的數(shù)據(jù)模式信息、保存存取控制列表。</p>&

49、lt;p><b>  分布式處理算法</b></p><p>  目前最成熟的分布式處理算法是谷歌推出的MapReduce思想。 MapReduce是一個(gè)海量數(shù)據(jù)處理的并行編程模型,用于大規(guī)模數(shù)據(jù)采集(一般大于1TB以上)的并行計(jì)算。MapRudecu實(shí)現(xiàn)了一個(gè)簡(jiǎn)單但功能強(qiáng)大的接口,還封裝了負(fù)載均衡、并行處理、容錯(cuò)、計(jì)算本地化等細(xì)節(jié)。</p><p>  Map

50、Reduce對(duì)數(shù)據(jù)集規(guī)?;?jīng)營(yíng),通過(guò)完成任務(wù)的這樣一個(gè)管理節(jié)點(diǎn)的分布式實(shí)現(xiàn)可靠的執(zhí)行和容錯(cuò)能力。在每個(gè)時(shí)間段中,主節(jié)點(diǎn)對(duì)每個(gè)工作進(jìn)行標(biāo)記,一旦存在狀態(tài)為死亡的節(jié)點(diǎn),則將所有分配給該死亡節(jié)點(diǎn)的任務(wù)重新分配給其他節(jié)點(diǎn),并重新執(zhí)行。</p><p>  MapReduce在執(zhí)行時(shí)先根據(jù)任務(wù)功能需求,先指定一個(gè)Map函數(shù),輸入鍵-值對(duì)經(jīng)過(guò)Map函數(shù)映射成一組新的鍵-值對(duì),經(jīng)過(guò)一定的約束處理之后,將處理后的鍵-值對(duì)提交給R

51、educe函數(shù),Reduce函數(shù)對(duì)具有相同key值的鍵-值對(duì)再處理,然后輸出的鍵-值對(duì)作為最終結(jié)果。MapReduce的任務(wù)處理流程圖如圖2-7所示:</p><p>  圖2-6 MapReduce的任務(wù)處理流程圖</p><p><b>  本章小結(jié)</b></p><p>  本章主要分兩方面:第一主要描述當(dāng)今流行的分布式系統(tǒng)模型并進(jìn)行比

52、較;第二重點(diǎn)介紹了分布式系統(tǒng)基本算法,包括分布式存儲(chǔ)算法、分布式處理算法。通過(guò)分析分布式應(yīng)用的關(guān)鍵技術(shù),我們對(duì)于非結(jié)構(gòu)化存儲(chǔ)架構(gòu)的設(shè)計(jì)提出了參考依據(jù)。研究下一階段,主要是通過(guò)Hadoop開(kāi)源云計(jì)算系統(tǒng)的研究,結(jié)合非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)需求,分析不足和改進(jìn)的一部分,為存儲(chǔ)架構(gòu)的構(gòu)建提供了理論指導(dǎo)。</p><p>  3 Hadoop開(kāi)源云計(jì)算系統(tǒng)</p><p><b>  Hado

53、op介紹</b></p><p>  Hadoop是一個(gè)由Apache基金會(huì)開(kāi)發(fā)實(shí)現(xiàn)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。即使用戶對(duì)分布式應(yīng)用程序開(kāi)發(fā)的底層細(xì)節(jié)不夠清楚,但是還是可以利用該系統(tǒng)進(jìn)行分發(fā)。充分利用分布式系統(tǒng)的高速計(jì)算和存儲(chǔ)。</p><p>  Hadoop框架最核心的研究就是:HDFS(分布式文件系統(tǒng))和MapReduce。HDFS為海量的數(shù)據(jù)提供了存儲(chǔ),則MapReduce為

54、海量的數(shù)據(jù)提供了計(jì)算。</p><p>  Hadoop是一個(gè)分布式計(jì)算平臺(tái),允許用戶方便地使用和架構(gòu)。用戶可以方便地開(kāi)發(fā)和運(yùn)行應(yīng)用程序處理大量數(shù)據(jù)。它主要有以下優(yōu)點(diǎn):</p><p>  1.高可靠性。Hadoop以按位存儲(chǔ)方式處理數(shù)據(jù)。</p><p>  2.高擴(kuò)展性??梢詳U(kuò)展到數(shù)以千計(jì)的集群節(jié)點(diǎn)中,在集簇節(jié)點(diǎn)間進(jìn)行分配并完成任務(wù)。</p>&l

55、t;p>  3.高效性。能夠使動(dòng)態(tài)平衡的特性在各個(gè)節(jié)點(diǎn)之間得到保障。</p><p>  4.高容錯(cuò)性。自動(dòng)保存數(shù)據(jù),存儲(chǔ)為多個(gè)副本,并且能夠自動(dòng)給其他空閑節(jié)點(diǎn)分配失敗的任務(wù)。</p><p>  5.低成本。Hadoop是開(kāi)源框架。</p><p>  Hadoop大數(shù)據(jù)處理的意義</p><p>  Hadoop在數(shù)據(jù)提取、變形和加

56、載方面上的獨(dú)特優(yōu)點(diǎn),使其能夠在大數(shù)據(jù)處理應(yīng)用中廣泛應(yīng)用。Hadoop的MapReduce功能實(shí)現(xiàn)了將單一任務(wù)拆分為多個(gè)小任務(wù),并將小任務(wù)分配到多節(jié)點(diǎn)上,然后再將數(shù)據(jù)加載到數(shù)據(jù)倉(cāng)庫(kù)里通過(guò)以單個(gè)數(shù)據(jù)集的形式。</p><p>  Hadoop關(guān)鍵技術(shù)</p><p><b>  MapReduce</b></p><p>  MapReduce是一

57、種設(shè)計(jì)為大規(guī)模數(shù)據(jù)集的并行運(yùn)算的編程模型。從函數(shù)式編程語(yǔ)言引出了映射(Map)、化簡(jiǎn)(Reduce)的概念和它們的主要思想。它使得編程人員即使不了解分布式并行編程,也可以在分布式系統(tǒng)上運(yùn)行自己編寫(xiě)的程序。</p><p>  MapReduce作業(yè)執(zhí)行流程圖,顯示如下圖3-1:</p><p>  圖3-1 MapReduce作業(yè)執(zhí)行的流程圖</p><p>  下

58、一代MapReduce:YARN</p><p>  YARN(MapReduce V2)是新一代的Hadoop MapReduce框架。YARN的主要任務(wù)是將JobTracker承擔(dān)的兩大任務(wù) - 集群資源管理和作業(yè)管理分離。這樣整體資源管理器和局部節(jié)點(diǎn)管理器作為數(shù)據(jù)計(jì)算架構(gòu)的組合物,資源管理器將成為整個(gè)集群中最終資源分配者。對(duì)于作業(yè)管理器,主要有兩項(xiàng)任務(wù):獲取資源通過(guò)與資源管理器通信,完成任務(wù)通過(guò)與服務(wù)器節(jié)點(diǎn)

59、通信。</p><p>  相對(duì)于MapReduce,YARN用于以下幾點(diǎn)優(yōu)勢(shì):</p><p>  1.分散了JobTracker的任務(wù)。資源管理任務(wù)由資源管理器負(fù)責(zé),作業(yè)啟動(dòng)、運(yùn)行和監(jiān)測(cè)任務(wù)由分布在集群節(jié)點(diǎn)上的應(yīng)用主體負(fù)責(zé)。這樣大大減緩了MapReduce中JobTracker單點(diǎn)瓶頸和單點(diǎn)風(fēng)險(xiǎn)的問(wèn)題,大大提高了集群的擴(kuò)展性和可用性。</p><p>  2.在

60、MapReduce中應(yīng)用主體(ApplicationMaster)是一個(gè)用戶可自定制的部分,因此用戶可以針對(duì)編程模型編寫(xiě)自己的應(yīng)用主體程序。這樣大大擴(kuò)展了YARN的適用范圍。</p><p>  3.資源管理器上通過(guò)ZooKeeper實(shí)現(xiàn)故障轉(zhuǎn)移。當(dāng)資源管理器發(fā)生故障,備用資源管理器將按照保存在ZooKeeper中集群狀態(tài)快速啟動(dòng)。YARN支持應(yīng)用指定檢查點(diǎn)。這就能保證應(yīng)用主體在失敗后能迅速地根據(jù)HDFS上保存的

61、狀態(tài)重啟。這兩個(gè)狀態(tài)大大促進(jìn)了YARN的可利用性。</p><p>  4.集群資源統(tǒng)一組織成資源容器,而不像MapReduce中的Map池和Reduce池中有所差別。這樣只要有任務(wù)訪問(wèn)資源,調(diào)度器就會(huì)使集群的可用資源發(fā)放給訪問(wèn)任務(wù)。這便很大程度上提高了集群資源的利用率。</p><p><b>  HDFS</b></p><p>  HDF

62、S是一個(gè)分布式文件系統(tǒng)。之所以HDFS可以被設(shè)計(jì)安裝配置在廉價(jià)硬件機(jī)器上,主要是因?yàn)镠DFS具有較高的容錯(cuò)性能。HDFS操作應(yīng)用程序數(shù)據(jù)的吞吐量是特別的高,因此它特別適用于那些具有大量數(shù)據(jù)集的應(yīng)用程序。 HDFS降低了對(duì)可移植操作系統(tǒng)接口的要求,這便可以訪問(wèn)文件系統(tǒng)中的數(shù)據(jù)通過(guò)數(shù)據(jù)流的形式。</p><p>  HDFS開(kāi)發(fā)是為了滿足流數(shù)據(jù)操作和處理大型文件的要求,可以安裝部署在價(jià)格低廉的商用計(jì)算機(jī)上?;谝陨?,

63、HDFS的特點(diǎn)可以歸納為下面幾點(diǎn):</p><p>  1.處理超大文件。百M(fèi)B、甚至百TB文件。</p><p>  2.流式的訪問(wèn)數(shù)據(jù)。建立在頻繁地執(zhí)行“一次寫(xiě)入、多次讀取”基石上。</p><p>  3.運(yùn)行于價(jià)格低廉的商用計(jì)算機(jī)服務(wù)器集群上,對(duì)硬件需求比較低。</p><p>  如圖3-2所示,HDFS采用主/從架構(gòu)進(jìn)行文件系統(tǒng)管

64、理。由一定數(shù)量的DataNode和一個(gè)NameNode構(gòu)成一個(gè)HDFS集群。 集群的NameNode是中央服務(wù)器,進(jìn)行管理文件系統(tǒng)的命名空間和客戶端的文件訪問(wèn)。集群的DataNode通常運(yùn)行的DataNode進(jìn)程負(fù)責(zé)管理一個(gè)節(jié)點(diǎn)。 HDFS顯示了文件系統(tǒng)的名字空間,用戶進(jìn)行存儲(chǔ)數(shù)據(jù)通過(guò)文件的形式。系統(tǒng)內(nèi),一個(gè)文件將被拆解成一個(gè)或多個(gè)塊,這些塊被存放在一隊(duì)DataNode節(jié)點(diǎn)之上。 NameNode主要負(fù)責(zé)執(zhí)行命名空間操作,諸如重命名目錄

65、或文件,文件的關(guān)閉,打開(kāi),它還保證數(shù)據(jù)塊對(duì)應(yīng)到DataNode節(jié)點(diǎn)。DataNode主要完成解決文件系統(tǒng)終端讀取操作。在NameNode的整體控制下,對(duì)數(shù)據(jù)塊進(jìn)行創(chuàng)建,刪除和復(fù)制。</p><p>  圖3-2 HDFS架構(gòu)</p><p><b>  Hive</b></p><p>  Hive是一種數(shù)據(jù)倉(cāng)庫(kù)架構(gòu),主要基于Hadoop文件系

66、統(tǒng)之上,它主要負(fù)責(zé)的功能有:數(shù)據(jù)存儲(chǔ)管理、數(shù)據(jù)ETL(抽取、轉(zhuǎn)換和加載)工具、大型數(shù)據(jù)集的分析和查詢能力。同時(shí)Hive模仿SQL,定義了Hive QL。Hive QL許可用戶執(zhí)行和SQL類似的操作,并且還使得程序員靈活地進(jìn)行Mapper和Reduce操作,這是一個(gè)很好的支撐對(duì)于MapReduce架構(gòu)。</p><p>  因?yàn)镠adoop是一個(gè)批處理系統(tǒng),作業(yè)任務(wù)是高延遲的,作業(yè)提交和處理過(guò)程會(huì)耗費(fèi)一定時(shí)間。此外

67、,盡管Hive處理的數(shù)據(jù)集比較小,在操作時(shí)也會(huì)出現(xiàn)遲緩。因此,在性能上Hive便沒(méi)有比傳統(tǒng)的Oracle數(shù)據(jù)庫(kù)更高效。Hive不支持查詢cache和排序功能,不支持在線事務(wù)處理,也不支持實(shí)時(shí)查詢和記錄級(jí)更新,但Hive能高效地處理固定的大數(shù)據(jù)集上的批量操作。因此,Hive最大的價(jià)值是良好的容錯(cuò)性、可擴(kuò)展性、可延展性和低要求的數(shù)據(jù)輸入格式。</p><p>  Hive本身提供一個(gè)SQL解析過(guò)程,并從外部接口獲得命

68、令,并解析用戶指令。外部命令可以被Hive解析成一個(gè)Map-Reduce可執(zhí)行程序,并按照該計(jì)劃生成與之相對(duì)應(yīng)的MapReduce任務(wù),然后提交給Hadoop集群進(jìn)行處理。Hive的體系結(jié)構(gòu)如圖3-2所示。</p><p>  圖3-3 Hive的體系結(jié)構(gòu)</p><p><b>  HBase</b></p><p>  HBase的是一個(gè)分

69、布式的,開(kāi)放源碼的面向列的數(shù)據(jù)塊。和傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)對(duì)比,HBase優(yōu)勢(shì)在于:第一,HBase是一個(gè)適合于對(duì)非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行存儲(chǔ)的非關(guān)系型數(shù)據(jù)庫(kù);第二,HBase不是根據(jù)行模式,而是根據(jù)列模式。之所以用戶可以為行定義不同的列,是由于HBase表是松散的。 HBase側(cè)重在隨機(jī)訪問(wèn),實(shí)時(shí)讀寫(xiě)海量數(shù)據(jù)。</p><p>  HBase服務(wù)器架構(gòu)按照簡(jiǎn)單的主從體系結(jié)構(gòu)設(shè)計(jì),由HRegion服務(wù)器和HBase Mast

70、er服務(wù)器組成。所有HRegion服務(wù)器的管理主要由HBase主服務(wù)器負(fù)責(zé),所有的服務(wù)器的協(xié)調(diào)和處理都是通過(guò)ZooKeeper負(fù)責(zé)。在邏輯上HBase的表可被劃分成多個(gè)HRegion,被存儲(chǔ)分配到HRegion Server集群中。 HBase MasterServer保存的是從數(shù)據(jù)到HRegion Server的關(guān)聯(lián)。HBase體系結(jié)構(gòu)如圖3-3所示。</p><p>  圖3-4 HBase體系結(jié)構(gòu)</

71、p><p><b>  本章小結(jié)</b></p><p>  Hadoop是Apache開(kāi)發(fā)的一種分布式架構(gòu),作為近年來(lái)已知的最大的開(kāi)源軟件,給分布式計(jì)算、分布式存儲(chǔ)、海量數(shù)據(jù)挖掘提供了實(shí)施框架,為分布式編程帶來(lái)了方便。</p><p>  本章主要介紹了HDFS,MapReduce,YARN,Hive,HBase等技術(shù),結(jié)合電子商務(wù)數(shù)據(jù)存儲(chǔ)的基本

72、原理和應(yīng)用場(chǎng)景,提供了各種技術(shù)和需要改進(jìn)部分,而在我們后續(xù)的核心存儲(chǔ)業(yè)務(wù)的設(shè)計(jì)階段非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)模型的實(shí)現(xiàn)提供了技術(shù)基礎(chǔ)。為我們后續(xù)階段的非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)架構(gòu)設(shè)計(jì)和實(shí)現(xiàn)給出技術(shù)依據(jù)。</p><p>  4 非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)方案設(shè)計(jì)</p><p>  云存儲(chǔ)數(shù)據(jù)中心架構(gòu)模型</p><p>  云存儲(chǔ)數(shù)據(jù)中心是可以提供可延展、高可靠性、高性能的存儲(chǔ)空間的服務(wù)器集

73、群系統(tǒng),它由多臺(tái)服務(wù)器構(gòu)成。集群系統(tǒng)主要由一個(gè)控制節(jié)點(diǎn)和多個(gè)數(shù)據(jù)節(jié)點(diǎn)組成,并且經(jīng)由網(wǎng)絡(luò)互連設(shè)備連接起來(lái),向用戶提高管理和維護(hù)。云存儲(chǔ)數(shù)據(jù)中心不僅提供了大量的存儲(chǔ)空間,而且還可以提供多種滿足用戶要求的標(biāo)準(zhǔn)化API接口。云存儲(chǔ)數(shù)據(jù)中心架構(gòu)模型,如下圖4-1所示。</p><p>  圖4-1 云存儲(chǔ)數(shù)據(jù)中心架構(gòu)模型</p><p>  云數(shù)據(jù)存儲(chǔ)中心,包括:網(wǎng)絡(luò)設(shè)備、數(shù)據(jù)節(jié)點(diǎn)和控制節(jié)點(diǎn)。存儲(chǔ)空

74、間的擴(kuò)容,可以增加數(shù)據(jù)節(jié)點(diǎn)的方式來(lái)達(dá)到要求,并且通過(guò)多份存儲(chǔ)用戶的數(shù)據(jù),以提高數(shù)據(jù)的可靠性,用戶可以訪問(wèn)數(shù)據(jù)中心的數(shù)據(jù)資源,通過(guò)多種標(biāo)準(zhǔn)化接口。數(shù)據(jù)存儲(chǔ)中心獲取數(shù)據(jù)資源,主要通過(guò)用戶并行讀取的方式,這便很大程度上使得系統(tǒng)的用戶訪問(wèn)性能得到提高。</p><p><b>  存儲(chǔ)系統(tǒng)讀寫(xiě)流程</b></p><p><b>  存儲(chǔ)系統(tǒng)寫(xiě)流程</b>

75、;</p><p>  存儲(chǔ)系統(tǒng)寫(xiě)流程如圖4-1所示:</p><p>  圖4-1 存儲(chǔ)系統(tǒng)寫(xiě)流程</p><p><b>  存儲(chǔ)系統(tǒng)讀流程</b></p><p>  存儲(chǔ)系統(tǒng)讀流程如圖4-2所示:</p><p>  圖4-2 存儲(chǔ)系統(tǒng)讀流程</p><p>  非

76、結(jié)構(gòu)化數(shù)據(jù)云存儲(chǔ)平臺(tái)設(shè)計(jì)</p><p>  HDFS采用主從式架構(gòu)模型,HDFS集群由一個(gè)單一的NameNode節(jié)點(diǎn)來(lái)管理文件系統(tǒng)的名稱空間和集群?jiǎn)?dòng)后的相關(guān)元數(shù)據(jù)信息如何加載有關(guān)的NameNode節(jié)點(diǎn)存儲(chǔ)器空間中。當(dāng)有海量的非結(jié)構(gòu)化數(shù)據(jù)諸如office文檔、圖片和音頻等其他類型的小文件,每個(gè)小文件與每個(gè)元數(shù)據(jù)信息都是一一對(duì)應(yīng),每一個(gè)小文件占用大約100字節(jié)左右的存儲(chǔ)空間。當(dāng)小文件的量達(dá)到一定數(shù)目時(shí),文件系統(tǒng)中

77、的NameNode節(jié)點(diǎn)會(huì)由于元數(shù)據(jù)信息的影響造成很大程度的存儲(chǔ)空間消耗,海量小文件的存在將對(duì)于NameNode節(jié)點(diǎn)的內(nèi)存空間不能滿足。此外,很多的小文件會(huì)對(duì)NameNode節(jié)點(diǎn)進(jìn)行多次數(shù)據(jù)塊讀寫(xiě)請(qǐng)求,每存儲(chǔ)一個(gè)小文件,你需要申請(qǐng)NameNode節(jié)點(diǎn)的數(shù)據(jù)塊的配置,NameNode節(jié)點(diǎn)反復(fù)地交互操作將會(huì)導(dǎo)致整個(gè)系統(tǒng)性能的下降。另外,較小文件的數(shù)據(jù)流文件相對(duì)較小,實(shí)際傳輸文件數(shù)據(jù)所消耗的時(shí)間可能要低于頻繁請(qǐng)求NameNode節(jié)點(diǎn)元數(shù)據(jù)信息所

78、、定位數(shù)據(jù)塊在DataNode節(jié)點(diǎn)上所消耗的時(shí)間。總之,有很多小文件的頻繁交互會(huì)引起NameNode節(jié)點(diǎn)的內(nèi)存消耗和整個(gè)分布式系統(tǒng)HDFS的性能下降。</p><p>  非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)應(yīng)用實(shí)例</p><p>  a.非結(jié)構(gòu)化存儲(chǔ)系統(tǒng)設(shè)計(jì)目標(biāo)</p><p>  眾所周知,由于電子商務(wù)商務(wù)的飛速發(fā)展,非結(jié)構(gòu)化數(shù)據(jù)形式和數(shù)量也越來(lái)越多。因此,依靠云存儲(chǔ)環(huán)境,怎樣解

79、決電子商務(wù)數(shù)據(jù)的存儲(chǔ)將會(huì)是現(xiàn)在以及未來(lái)非常有發(fā)展?jié)摿Φ姆较?。本?jié)將主要針對(duì)電子商務(wù)網(wǎng)站中海量非結(jié)構(gòu)數(shù)據(jù)存儲(chǔ)架構(gòu)模型進(jìn)行設(shè)計(jì)。</p><p>  非結(jié)構(gòu)化數(shù)據(jù)云存儲(chǔ)在電子商務(wù)網(wǎng)站中海量非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)系統(tǒng)中的應(yīng)用要實(shí)現(xiàn)如下目標(biāo):</p><p> ?。?)滿足非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)規(guī)模動(dòng)態(tài)延展的需求;</p><p> ?。?)保障數(shù)據(jù)高可用性和可靠性;</p>

80、;<p>  (3)打破非結(jié)構(gòu)化存儲(chǔ)規(guī)模和容量限制。</p><p>  b.非結(jié)構(gòu)化存儲(chǔ)系統(tǒng)設(shè)計(jì)思路</p><p>  Hadoop作為分布式文件系統(tǒng),實(shí)現(xiàn)了HDFS文件系統(tǒng)和MapReduce,這里只使用了它的HDFS。首先從Web頁(yè)面上進(jìn)行上傳文件可以直接調(diào)用Hadoop接口將非結(jié)構(gòu)化數(shù)據(jù)存入HDFS中,HDFS可以設(shè)定備份數(shù)目,這便可以保證在HDFS系統(tǒng)中當(dāng)存在Da

81、taNode死掉時(shí)并不會(huì)導(dǎo)致數(shù)據(jù)丟失,系統(tǒng)可以從副本上拿到數(shù)據(jù)。</p><p>  c.非結(jié)構(gòu)化存儲(chǔ)系統(tǒng)實(shí)現(xiàn)</p><p>  通過(guò)調(diào)用這個(gè)類將非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)到Hadoop</p><p>  當(dāng)需要訪問(wèn)某個(gè)文件時(shí),先訪問(wèn)jsp服務(wù)器(如:tomcat)的一個(gè)servlet,這個(gè)servlet從hadoop里面讀出文件,并返回給瀏覽器.以下是我們的servle

82、t。</p><p><b>  本章小結(jié)</b></p><p>  本章主要針對(duì)于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)體系結(jié)構(gòu)模型和存儲(chǔ)系統(tǒng)的讀寫(xiě)過(guò)程進(jìn)行闡述。綜合海量數(shù)據(jù)的存儲(chǔ)問(wèn)題,將云存儲(chǔ)平臺(tái)具體應(yīng)用到非結(jié)構(gòu)化存儲(chǔ)系統(tǒng),并提出新的解決方案,以面對(duì)海量非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)當(dāng)前所面臨的問(wèn)題。由于經(jīng)驗(yàn)和時(shí)間的原因,本章僅給出了非結(jié)構(gòu)數(shù)據(jù)存儲(chǔ)到Hadoop的實(shí)現(xiàn)。下一章將側(cè)重于Mahout處

83、理電子商務(wù)非結(jié)構(gòu)化數(shù)據(jù)。</p><p>  5 Mahout非結(jié)構(gòu)化系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  Mahout分布式系統(tǒng)架構(gòu)圖</p><p>  系統(tǒng)架構(gòu)圖如圖5-1所示:</p><p>  圖5-1 系統(tǒng)架構(gòu)圖</p><p><b>  系統(tǒng)總體實(shí)現(xiàn)</b></p>

84、<p><b>  硬件準(zhǔn)備</b></p><p>  計(jì)算機(jī)三臺(tái),每臺(tái)機(jī)器內(nèi)存1G,硬盤(pán)存儲(chǔ)空間100G</p><p>  1臺(tái)計(jì)算機(jī)作為NameNode,2臺(tái)計(jì)算機(jī)作為DataNode</p><p>  實(shí)驗(yàn)室內(nèi)部局域網(wǎng),100M網(wǎng)卡</p><p><b>  軟件準(zhǔn)備</b>

85、;</p><p>  操作系統(tǒng):Linux version 2.6.32-431.el6.x86_64</p><p>  分布式文件系統(tǒng):Hadoop2.2.0</p><p>  Java環(huán)境:JDK1.8.40</p><p>  Java開(kāi)發(fā)工具:Eclipse(Luna Service Release 2 (4.4.2))<

86、/p><p>  WinSCP:用于在Windows環(huán)境下使用SSH遠(yuǎn)程連接本地與遠(yuǎn)程計(jì)算機(jī)的開(kāi)源圖形化SFTP客戶端,此外WinSCP還支持SCP協(xié)議,保障本地與遠(yuǎn)程客戶端文件傳輸?shù)陌踩浴?lt;/p><p>  PieTTY:用于使用Telnet/SSH 在Windows環(huán)境下的安全的遠(yuǎn)端連線工具。</p><p>  部署Hadoop集群</p>&l

87、t;p>  部署Hadoop集群分為三步:Linux服務(wù)器連接、SSH配置、Hadoop配置。</p><p>  a.Linux服務(wù)器連接</p><p>  使用PieTTY連接Linux服務(wù)器,如下圖5-2所示:</p><p>  圖5-2 PieTTY連接Linux服務(wù)器</p><p>  連接成功返回主面板,如圖5-3所示

88、:</p><p>  圖5-3連接成功返回主面板</p><p><b>  b.SSH配置</b></p><p>  hostname和IP地址綁定</p><p>  [root@Hadoop ~]# vi /etc/hosts</p><p>  [root@Hadoop ~]# pin

89、g Hadoop</p><p>  PING Hadoop (192.168.137.100) 56(84) bytes of data.</p><p>  64 bytes from Hadoop(192.168.137.100):icmp_seq=1 ttl=64 time=0.071 ms</p><p>  64 bytes from Hadoop(19

90、2.168.137.100):icmp_seq=2 ttl=64 time=0.065 ms</p><p>  64 bytes from Hadoop(192.168.137.100):icmp_seq=3 ttl=64 time=0.074 ms</p><p>  64 bytes from Hadoop(192.168.137.100):icmp_seq=4 ttl=64 tim

91、e=0.060 ms</p><p><b>  ^C</b></p><p>  --- Hadoop ping statistics ---</p><p>  4 packets transmitted, 4 received, 0% packet loss, time 3791ms</p><p>  rtt m

92、in/avg/max/mdev = 0.060/0.067/0.074/0.009 ms</p><p>  [root@Hadoop ~]#</p><p><b>  關(guān)閉防火墻</b></p><p>  執(zhí)行命令:service iptables stop</p><p>  驗(yàn)證:service iptabl

93、es status,查看防火墻狀態(tài)</p><p><b>  關(guān)閉防火墻自動(dòng)啟動(dòng)</b></p><p>  執(zhí)行命令:chkconfig iptables off</p><p>  驗(yàn)證:chkconfig –list | grep iptables</p><p>  配置SSH(secure shell)的免密

94、碼登陸</p><p>  c.Hadoop配置</p><p>  在所有的Linux機(jī)器上都配置SSH的免密碼登陸,以/usr/local/bishe路徑作為所有軟件安裝的根路徑。下載jdk、Hadoop等相關(guān)軟件,解壓到/usr/local/bishe路徑下。</p><p>  /etc/hosts文件末尾添加hostname-IP映射關(guān)系,例如:</

95、p><p>  192.168.137.100 Hadoop</p><p>  192.168.137.101 Hadoop-1 ——DataNode節(jié)點(diǎn)1</p><p>  192.168.137.102 Hadoop-2 ——DataNode節(jié)點(diǎn)2</p><p><b>  安裝java環(huán)境</b></p

96、><p>  [root@Hadoop bishe]# tar -zxvf jdk-8u40-linux-x64.tar.gz</p><p>  [root@Hadoop bishe]# mv jdk1.8.0_40 jdk</p><p>  [root@Hadoop bishe]# vi /etc/profile</p><p>  設(shè)置環(huán)

97、境變量,增加以下兩行內(nèi)容:</p><p>  export JAVA_HOME = /usr/local/bishe/jdk</p><p>  export PATH = .$JAVA_HOME/bin:$</p><p>  [root@Hadoop bishe]# source /etc/profile</p><p>  [root

98、@Hadoop bishe]# java -version</p><p>  java version "1.8.0_40"</p><p>  Java(TM) SE Runtime Environment (build 1.8.0_40-b26)</p><p>  Java HotSpot(TM) 64-Bit Server VM (bu

99、ild 25.40-b25, mixed mode)</p><p><b>  安裝Hadoop</b></p><p>  [root@Hadoop bishe]# tar -zxvf hadoop-2.2.0-64bit.tar.gz</p><p>  [root@Hadoop bishe]# mv hadoop-2.2.0-64bit

100、 Hadoop</p><p>  [root@Hadoop bishe]# vi /etc/profile</p><p>  設(shè)置環(huán)境變量,增加以下兩行內(nèi)容:</p><p>  export HADOOP_HOME = /usr/local/bishe/hadoop</p><p>  export PATH = .$HADOOP_HO

101、ME/bin:$HADOOP_HOME/sbin:$</p><p>  [root@Hadoop bishe]# source /etc/profile</p><p>  編輯/usr/local/bishe/hadoop/etc/hadoop/core-site.xml文件,在<configuration>中添加如下:</p><p>  編輯/u

102、sr/local/bishe/hadoop/etc/hadoop/mapred-site.xml:</p><p>  (1) [root@Hadoop hadoop]# mv mapred-site.xml.template mapred-site.xml</p><p>  (2) 在<configuration>中添加如下:</p>&l

103、t;p>  編輯/usr/local/bishe/hadoop/etc/hadoop/hdfs-site.xml,在<configuration>中添加如下:</p><p>  修改hadoop的配置文件slaves,改為從節(jié)點(diǎn)的主機(jī)名hadoop_1和hadoop_2</p><p>  格式化,在主節(jié)點(diǎn)執(zhí)行命令 hadoop namenode –format<

104、/p><p>  啟動(dòng)hadoop,在主節(jié)點(diǎn)下執(zhí)行命令 start-all.sh,并輸入hdfs dfsadmin –report查看集群狀態(tài),如圖5-4所示:</p><p>  圖5-4 查看集群狀態(tài)</p><p>  查看HDFS:在瀏覽器地址欄中輸入http://192.168.137.100:50070,顯示如圖5-5所示:</p><p

105、>  圖5-5 瀏覽器查看HDFS</p><p>  查看RM:在瀏覽器地址欄輸入http://192.168.137.100:8080,顯示如圖5-6所示:</p><p>  圖5-6 瀏覽器查看RM</p><p>  d.WordCount實(shí)例運(yùn)行</p><p>  在Linux操作系統(tǒng)上新建兩個(gè)文件,例如:</p&g

106、t;<p>  [root@Hadoop input]# ls</p><p>  text1.txt text2.txt</p><p>  查看hadoop的文件系統(tǒng)目錄</p><p>  [root@Hadoop input]# hadoop fs -ls /</p><p>  Found 1 items</p

107、><p>  drwxr-xr-x - root supergroup 0 2015-05-24 13:09 /input</p><p>  上傳Linux操作系統(tǒng)上新建的文件至hadoop的/input上</p><p>  [root@Hadoop input]# hadoop fs -put ./ /input[root@Hadoop i

108、nput]# hadoop fs -ls /input</p><p>  Found 2 items</p><p>  -rw-r--r-- 1 root supergroup 18 2015-05-24 13:09 /input/text1.txt</p><p>  -rw-r--r-- 1 root supergroup

109、 14 2015-05-24 13:09 /input/text2.txt</p><p>  運(yùn)行WordCount程序,執(zhí)行命令:</p><p>  hadoop jar hadoop-mapreduce-examples-2.2.0-sources.jar org.apache.hadoop.examples.WordCount /input /output</p>

110、<p>  查看程序運(yùn)行結(jié)果,執(zhí)行命令:</p><p>  hadoop fs –text /output/part-r-00000,返回結(jié)果如圖5-7所示:</p><p>  圖5-7 WordCount執(zhí)行結(jié)果</p><p>  Mahout實(shí)現(xiàn)電子商務(wù)推薦系統(tǒng)</p><p><b>  系統(tǒng)設(shè)計(jì)</

111、b></p><p>  用Mahout實(shí)現(xiàn)分布式算法,如圖5-8所示:</p><p>  圖5-8 Mahout實(shí)現(xiàn)分布式算法</p><p><b>  結(jié)果演示</b></p><p>  a.用Mahout實(shí)現(xiàn)協(xié)同過(guò)濾userCF</p><p>  1.準(zhǔn)備數(shù)據(jù)文件:item.c

112、sv,如圖5-9:</p><p>  圖5-9 item.cvs</p><p>  如上圖5-9所示,數(shù)據(jù)解釋:數(shù)據(jù)有三列,第一列是用戶ID,第二列是物品ID,第三列是用戶對(duì)物品的打分。</p><p>  2.Java程序:UserCF.java</p><p>  3.結(jié)果演示如圖5-10所示:</p><p>

113、;  圖5-10 演示結(jié)果</p><p><b>  4.推薦結(jié)果解讀:</b></p><p>  向uid:1,推薦前二個(gè)最相關(guān)物品, 物品ID為104和106</p><p>  向uid:2,推薦前二個(gè)最相關(guān)物品, 但只有一個(gè),物品ID為105</p><p>  向uid:3,推薦前二個(gè)最相關(guān)物品, 物品ID

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論