版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 畢 業(yè) 設(shè) 計(論 文)</p><p> 基于Hadoop的電子商務(wù)數(shù)據(jù)存儲架構(gòu)的研究與設(shè)計</p><p> 院 系: 經(jīng)濟與管理學(xué)院 物流電子商務(wù)系 </p><p> 專 業(yè): 電子商務(wù) </p><p> 班 級:
2、 </p><p> 學(xué)生姓名: </p><p> 導(dǎo)師姓名: 職稱: 講師 </p><p> 起止時間:2014年12月20日至2015年06月20日 </p><p> 畢
3、業(yè)設(shè)計(論文)誠信聲明書</p><p> 本人聲明:本人所提交的畢業(yè)論文《 基于Hadoop的電子商務(wù)數(shù)據(jù)存儲架構(gòu)的研究與設(shè)計》是本人在指導(dǎo)教師指導(dǎo)下獨立研究、寫作的成果,論文中所引用他人的文獻、數(shù)據(jù)、圖件、資料均已明確標注;對本文的研究做出重要貢獻的個人和集體,均已在文中以明確方式注明并表示感謝。</p><p> 本人完全清楚本聲明的法律后果,申請學(xué)位論文和資料若有不實之處,本人
4、愿承擔(dān)相應(yīng)的法律責(zé)任。</p><p> 論文作者簽名: 時間: 年 月 日</p><p> 指導(dǎo)教師簽名: 時間: 年 月 日</p><p> 本科畢業(yè)設(shè)計(論文)開題報告</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研究意義及研究內(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)模型簡介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分布式存儲算法5</p><p> 2.2.2分布式處理算法8</p><p> 2.3本章小結(jié)9</p><p> 3 Hadoop開源云計算系統(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ù)存儲方案設(shè)計16</p><p> 4.1云存儲數(shù)據(jù)中心架構(gòu)模型16</p><p> 4.2存儲系統(tǒng)讀寫流程17</p><p> 4.2.1存儲系統(tǒng)寫流程17</p><
10、p> 4.2.2存儲系統(tǒng)讀流程17</p><p> 4.3非結(jié)構(gòu)化數(shù)據(jù)云存儲平臺設(shè)計18</p><p> 4.3.1非結(jié)構(gòu)化數(shù)據(jù)存儲應(yīng)用實例18</p><p> 4.4本章小結(jié)23</p><p> 5 Mahout非結(jié)構(gòu)化系統(tǒng)的設(shè)計與實現(xiàn)24</p><p> 5.1Mah
11、out分布式系統(tǒng)架構(gòu)圖24</p><p> 5.2系統(tǒng)總體實現(xiàn)24</p><p> 5.2.1硬件準備24</p><p> 5.2.2軟件準備25</p><p> 5.2.3部署Hadoop集群25</p><p> 5.3Mahout實現(xiàn)電子商務(wù)推薦系統(tǒng)32</p>
12、<p> 5.3.1系統(tǒng)設(shè)計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> 參考文獻42<
13、/b></p><p><b> 摘 要</b></p><p> 隨著電子商務(wù)行業(yè)的高速發(fā)展,在現(xiàn)階段的電子商務(wù)網(wǎng)站中出現(xiàn)了以指數(shù)級別形式增長的海量數(shù)據(jù),而大多數(shù)以非結(jié)構(gòu)化數(shù)據(jù)為主,由此可見,面對電子商務(wù)網(wǎng)站的海量信息,如何高效地存儲和管理這些非結(jié)構(gòu)化數(shù)據(jù)已經(jīng)成為一個迫切需要解決的問題。</p><p> 面對電子商務(wù)網(wǎng)站中巨大
14、的交易量,傳統(tǒng)的數(shù)據(jù)庫已經(jīng)無法滿足對海量數(shù)據(jù)實時統(tǒng)計、查詢、分析的要求。為了在電子商務(wù)網(wǎng)站海量的商業(yè)數(shù)據(jù)中進行信息挖掘、分析,找到有價值的信息,需要能夠處理海量數(shù)據(jù)的數(shù)據(jù)庫技術(shù)。</p><p> 現(xiàn)今電子商務(wù)網(wǎng)站數(shù)據(jù)的重要發(fā)展方向是大數(shù)據(jù),而大數(shù)據(jù)的主要實現(xiàn)方式之一就是通過Hadoop技術(shù)來實現(xiàn)。所以電子商務(wù)數(shù)據(jù)的處理和Hadoop技術(shù)息息相關(guān)。本文側(cè)重于基于Hadoop的電子商務(wù)數(shù)據(jù)存儲架構(gòu)的研究與設(shè)計,分
15、析MapReduce流程、分布式文件系統(tǒng)HDFS,利用Mahout聚類分類算法等相關(guān)技術(shù),結(jié)合非結(jié)構(gòu)化數(shù)據(jù)存儲特點,建立具有高效、安全的系統(tǒng)架構(gòu),提出非結(jié)構(gòu)化數(shù)據(jù)存儲模型設(shè)計,并利用Mahout設(shè)計實現(xià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世紀的第一個十年里,電子商務(wù)行業(yè)高速發(fā)展。據(jù)我國電子商務(wù)研究中心發(fā)布的《2014年(上)中國電子商務(wù)市場數(shù)據(jù)監(jiān)測報告》顯示,截止到 2014年6月,中國電子商務(wù)交易額達 5.8 萬億元,相比同一時期增長 34.5%。根據(jù)報告顯示,B2B交易額達 4.5萬億元,與同一時期相比增長32.4%。網(wǎng)絡(luò)零售市場交易規(guī)模達 1.08萬億元,相比同一時期增長43.
23、9%。無論是電子商務(wù)網(wǎng)站中的產(chǎn)品圖片展示,還是電子商務(wù)網(wǎng)站中的文本數(shù)據(jù),其數(shù)量都在呈現(xiàn)幾何基礎(chǔ)的增長。淘寶網(wǎng)作為我國最大的電子商務(wù)平臺,在線商品達到10億,淘寶網(wǎng)的圖片存儲系統(tǒng)容量已經(jīng)達到1800TB(1.8PB),已經(jīng)占用空間990TB(約1PB)。圖片文件的數(shù)量已經(jīng)達到286億多個,這些圖片文件包括根據(jù)原圖生成的縮略圖。每張圖片大小大約是是17.45K;占圖片數(shù)總量61%的大多是8K以下小圖片,大約占存儲空間的11%。由此可見,面對
24、電子商務(wù)網(wǎng)站的海量信息,如何高效的存儲、管理這些非結(jié)構(gòu)化數(shù)據(jù)已經(jīng)成為一個迫切需要解決的問題。</p><p> 由于海量非結(jié)構(gòu)化數(shù)據(jù)以每年2—3倍的速度增長,商用文件系統(tǒng)已經(jīng)不能達到其存儲需求,現(xiàn)階段,淘寶網(wǎng)主要采用TFS集群文件系統(tǒng)來解決和實現(xiàn)海量非結(jié)構(gòu)化數(shù)據(jù)的讀取和訪問。商用文件系統(tǒng)的局限和不足:</p><p> 1.商用文件系統(tǒng)無法實現(xiàn)在小文件存儲和讀取的環(huán)境進行具有針對性的優(yōu)
25、化;</p><p> 2.面對海量數(shù)據(jù),網(wǎng)絡(luò)存儲設(shè)備不能滿足要求;</p><p> 3.系統(tǒng)所連接服務(wù)器已經(jīng)逼近網(wǎng)絡(luò)存儲設(shè)備的極限;</p><p> 4.商用文件系統(tǒng)擴充容量成本太高,存在單點故障隱患,無法保證容災(zāi)和安全性。</p><p> 相對于商用存儲系統(tǒng),自主研發(fā)擁有明顯的優(yōu)勢:</p><p>
26、 1.自主研發(fā)系統(tǒng)可以充分考慮大規(guī)模系統(tǒng)的應(yīng)用需求,無論存儲還是CDN還是負載均衡,可以很方便地實現(xiàn)如此大的數(shù)據(jù)規(guī)模測試;</p><p> 2.開源和自主開發(fā)相結(jié)合,系統(tǒng)擴展性更高。達到軟件設(shè)計的基本要求“高內(nèi)聚、低耦合”。</p><p> 3.自主研發(fā)系統(tǒng)可在軟硬件多層次進行不斷升級優(yōu)化。</p><p> Hadoop 實現(xiàn)了可以在很大程度容納錯誤的
27、分布式文件系統(tǒng)HDFS,不僅如此,便宜的硬件機器上也可以安裝配置HDFS,另外HDFS訪問應(yīng)用程序的數(shù)據(jù)的傳輸速率是相當(dāng)?shù)母摺W鳛楣雀韫緦崿F(xiàn)的免費開源項目——Hadoop,它具有以下幾個優(yōu)點:可擴展,經(jīng)濟,可靠,高效。</p><p><b> 研究意義及研究內(nèi)容</b></p><p> 本文研究意義在于電子商務(wù)網(wǎng)站每日交易量巨大,傳統(tǒng)的數(shù)據(jù)庫已經(jīng)無法滿足對海
28、量數(shù)據(jù)實時統(tǒng)計、查詢、分析的要求,為了能夠?qū)﹄娮由虅?wù)網(wǎng)站中的商業(yè)數(shù)據(jù)進行挖掘、分析,找到有價值的數(shù)據(jù),需要能夠處理海量數(shù)據(jù)的數(shù)據(jù)庫技術(shù)。</p><p> 現(xiàn)今電子商務(wù)網(wǎng)站數(shù)據(jù)的重要發(fā)展方向是大數(shù)據(jù),而大數(shù)據(jù)的主要實現(xiàn)方式之一就是通過Hadoop技術(shù)來實現(xiàn)。所以電子商務(wù)數(shù)據(jù)和Hadoop技術(shù)密切相關(guān)。</p><p> 本文研究內(nèi)容側(cè)重于研究基于Hadoop的電子商務(wù)數(shù)據(jù)存儲架構(gòu)的研究
29、與設(shè)計,分析MapReduce流程、分布式文件系統(tǒng)HDFS,利用Mahout聚類分類算法等相關(guān)技術(shù),結(jié)合非結(jié)構(gòu)化數(shù)據(jù)存儲特點,建立具有高效、安全的系統(tǒng)架構(gòu),提出非結(jié)構(gòu)化數(shù)據(jù)存儲模型設(shè)計,并利用Mahout實現(xiàn)簡單的電子商務(wù)推薦系統(tǒng)。通過在多臺Linux機器上安裝配置Hadoop,建立集群環(huán)境,設(shè)計實驗,利用大量電子商務(wù)數(shù)據(jù)進行實驗驗證,以驗證優(yōu)化方案的合理性和系統(tǒng)的可行性。</p><p><b>
30、論文結(jié)構(gòu)</b></p><p> 本論文結(jié)構(gòu)主要劃分為六個部分,各部分涉及內(nèi)容如下:</p><p> 第一章緒論,劃分為研究背景、研究意義及研究內(nèi)容、論文結(jié)構(gòu)。</p><p> 第二章分布式系統(tǒng)關(guān)鍵技術(shù),針對目前相對成熟的分布式系統(tǒng)模型和分布式系統(tǒng)基本算法進行介紹。</p><p> 第三章Hadoop開源云計算系統(tǒng)
31、,詳細介紹了分布式文件系統(tǒng)HDFS、并行編程MapReduce、YARN(下一代MapReduce)、數(shù)據(jù)倉庫Hive、HBase、Mahout。</p><p> 第四章非結(jié)構(gòu)化數(shù)據(jù)存儲方案設(shè)計,首先通過需求分析歸納了對非結(jié)構(gòu)化數(shù)據(jù)存儲系統(tǒng)的要求,給出非結(jié)構(gòu)化數(shù)據(jù)存取系統(tǒng)的讀寫流程的實現(xiàn)。然后針對基于Hadoop的電子商務(wù)數(shù)據(jù)存儲架構(gòu)提出設(shè)計。 </p><p> 第五章Mahout
32、非結(jié)構(gòu)化聚類系統(tǒng)的設(shè)計與實現(xiàn),通過在多臺Linux服務(wù)器上部署Hadoop,利用Mahout設(shè)計電子商務(wù)推薦系統(tǒng),收集實驗數(shù)據(jù)進行實驗設(shè)計,以驗證優(yōu)化方案的合理性和系統(tǒng)的可行性。</p><p> 第六章總結(jié)和展望,對本文所涉及的電子商務(wù)數(shù)據(jù)存儲架構(gòu)和電子商務(wù)推薦系統(tǒng)進行全面分析,并在此基礎(chǔ)上,針對基于Hadoop電子商務(wù)數(shù)據(jù)存儲架構(gòu)進行了展望。</p><p> 2 分布式系統(tǒng)關(guān)鍵技
33、術(shù)</p><p><b> 分布式系統(tǒng)模型簡介</b></p><p> Google的GFS</p><p> GFS是谷歌設(shè)計的一個專用的文件系統(tǒng)。 GFS是對于大規(guī)模的可伸縮的分布式文件系統(tǒng),應(yīng)用于大量數(shù)據(jù)的應(yīng)用程序訪問。不僅在價格便宜的商用硬件機器上可以運行GFS,而且它還有較強的容納錯誤的能力。它將高綜合性能的服務(wù)提供給用戶。
34、</p><p> 與其他的分布式文件系統(tǒng)相比,GFS與他們存在很多相同的目標,但GFS存在于其他系統(tǒng)不同的目標,它的設(shè)計是由技術(shù)環(huán)境和工作量所影響。這便需要重新審視傳統(tǒng)的選擇和探索完全不同的設(shè)計思路。</p><p> 和傳統(tǒng)的文件系統(tǒng)相比,GFS存在部分自身的觀點,如下:</p><p> 1.部件錯誤會被當(dāng)做一種普遍常見的情況,而不是將其認為是一種異常,
35、但被視為一個常見的情況。</p><p> 2.根據(jù)傳統(tǒng)的標準,文件非常大。</p><p> 3.GFS主要通過增加新的數(shù)據(jù)來更新文件,并不是通過改變已經(jīng)存在數(shù)據(jù)完成更新。</p><p> 4.由讀取操作兩部分組成GFS工作量:針對大量數(shù)據(jù)主要以數(shù)據(jù)流的方式進行讀操作,針對少量數(shù)據(jù)以隨機方式進行讀操作。</p><p> 5.工作
36、還包括一些對于大數(shù)據(jù)量進行連續(xù)的、將數(shù)據(jù)添加到文件的寫入操作。</p><p> 6.系統(tǒng)必須有效地實現(xiàn)良好的定義語義來添加大量的客戶在同一時間在同一文件操作。</p><p> 7.高可持續(xù)帶寬相對于低延遲更重要。</p><p> 由一個master和大量的chunkserver構(gòu)成一個GFS集群,許多客戶端可以同時對其進行訪問。如圖2-1所示為GFS體系
37、結(jié)構(gòu):</p><p> 圖2-1 GFS體系結(jié)構(gòu)</p><p> Apache的Hadoop</p><p> Hadoop,是Apache Lucene的子項目之一,它的來源是Apache Nutch。 2004年,在“操作系統(tǒng)設(shè)計與實現(xiàn)”會上谷歌發(fā)布了講話題目為“MapReduce:簡化數(shù)據(jù)處理大型集群”,研發(fā)者受到影響,開始研發(fā)MapReduce計算
38、框架,并與Nutch的分布式文件系統(tǒng)結(jié)合起來,以針對Nutch的主算法進行支持。作為Nutch的比較成熟且良好應(yīng)用的NDFS和MapReduce,2006年2月將它們進行了分離,并成為一個完整的,獨立的軟件,并將其命名為Hadoop。它被應(yīng)用到包括Yahoo!在內(nèi)的很多互聯(lián)網(wǎng)公司。如今的Hadoop已經(jīng)包括HDFS、MapReduce等子項目,和HBase、Hive、ZooKeeper、Pig等關(guān)聯(lián)的大型應(yīng)用工程。</p>
39、<p><b> 淘寶的TFS</b></p><p> TFS是一個高度可擴展,高可用性,高性能的分布式文件,基于通用的Linux服務(wù)器結(jié)構(gòu)體系,設(shè)計目標是支持非結(jié)構(gòu)化數(shù)據(jù)存儲。 TFS被廣泛應(yīng)用于淘寶各個行業(yè)中,集群存儲文件的最大數(shù)量已部署了近十億。</p><p> 現(xiàn)階段,國內(nèi)自主研發(fā)的文件系統(tǒng)可謂寥寥無幾。淘寶,中國最大的電子商務(wù)平臺,一個
40、十億在線產(chǎn)品、286億的圖片,而大部分的小圖片。淘寶在這方面做有效的探索和實踐,TFS作為內(nèi)部使用的分布式文件系統(tǒng),對于隨機讀取性能和寫入訪問小文件做了特別的優(yōu)化,以滿足當(dāng)今海量數(shù)據(jù)的存儲需求。如圖2-2所示為TFS系統(tǒng)架構(gòu):</p><p> 圖2-2 TFS系統(tǒng)結(jié)構(gòu)</p><p><b> 分布式系統(tǒng)基本算法</b></p><p>
41、<b> 分布式存儲算法</b></p><p><b> a.NFS</b></p><p> Sun公司開發(fā)的網(wǎng)絡(luò)文件系統(tǒng)NFS,現(xiàn)在它已作為一種標準化文件服務(wù)。在NFS的應(yīng)用程序中,本地的NFS客戶端應(yīng)用程序可以以透明的讀寫方式訪問位于NFS服務(wù)器的遠端文件,就好像訪問本地計算機中的文件。因此,它可以被看作是一個文件服務(wù)器,如下圖2-
42、3顯示。 NFS提供了Windows和Linux和UNIX和Linux之間的通信方法。</p><p> 圖2-3 NFS文件服務(wù)器</p><p> 下圖2-4所顯示為NFS系統(tǒng)架構(gòu),一個NFS系統(tǒng)包括一個NFS服務(wù)器和多個客戶端。</p><p> 客戶機操作存儲在NFS服務(wù)器上的文件數(shù)據(jù)經(jīng)由TCP/IP網(wǎng)絡(luò)遠程接入。</p><p&g
43、t; NFS服務(wù)器正式開啟前,要按照實際環(huán)境和需求,配置相應(yīng)的NFS參數(shù)。</p><p> 圖2-4 NFS系統(tǒng)架構(gòu)</p><p> b.BigTable</p><p> BigTable是為處理海量數(shù)據(jù)而研究開發(fā)的非關(guān)系型數(shù)據(jù)庫,是一種分布式文件存儲系統(tǒng)。</p><p> BigTable是緊湊的,高效率的,基于谷歌GFS
44、的用于大規(guī)模結(jié)構(gòu)化數(shù)據(jù)存儲的數(shù)據(jù)存儲系統(tǒng)。</p><p> BigTable起源于2004年,目前已成為Google應(yīng)用程序。像是MapReduce就常通過BigTable來存儲或更改數(shù)據(jù),其他還有Google Reader、Google Maps、Google Book Search、"My Search History"、Google Earth、Blogger.com、Google
45、Code hosting、Orkut、YouTube以及Gmail等?;谛阅軉栴},Google推出了特殊的巨型數(shù)據(jù)庫。</p><p> BigTable和傳統(tǒng)的關(guān)系型數(shù)據(jù)庫存在不同點,它具有可擴展性和高性能等優(yōu)勢。BigTable的Table數(shù)據(jù)結(jié)構(gòu)包括row key、col key和timestamp,其中row key用于存儲倒轉(zhuǎn)的URL, 例如www.google.com必須改成com.google.
46、www。BigTable使用大量的Table,在Table之下還有Tablet。所謂的Table是屬于immutable的SSTables, 也就是存儲方式不可修改。另外Table還必須進行壓縮,壓縮的方式主要是table的壓縮或系統(tǒng)的壓縮??蛻舳擞幸粋€Tablets指針指向META0,METAO tablets保儲所有META1的tablets數(shù)據(jù)記錄。</p><p> Bigtable數(shù)據(jù)庫的架構(gòu),由主服
47、務(wù)器和分服務(wù)器構(gòu)成,如圖2-6所示。主服務(wù)器負責(zé)將Tablet分配到Tablet服務(wù)器、檢測新增和過期的Tablet服務(wù)器、平衡Tablet服務(wù)器之間的負載、GFS垃圾文件的回收、數(shù)據(jù)模式的改變(例如創(chuàng)建表)等。Tablet服務(wù)器負責(zé)處理數(shù)據(jù)的讀寫,并在Tablet規(guī)模 過大時進行拆分。</p><p> 圖2-5 BigTable數(shù)據(jù)庫的架構(gòu)</p><p> Bigtable使用集
48、群管理系統(tǒng)來調(diào)度任務(wù)、管理資源、監(jiān)測服務(wù)器狀態(tài)并處理服務(wù)器故障。對于存儲數(shù)據(jù)文件和日志,Bigtable使用的是GFS方式,數(shù)據(jù)文件的格式為SSTable格式,它提供了關(guān)鍵字到值的映射關(guān)系。Bigtable使用分布式的鎖服務(wù)Chubby來保證集群中主服務(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是一個海量數(shù)據(jù)處理的并行編程模型,用于大規(guī)模數(shù)據(jù)采集(一般大于1TB以上)的并行計算。MapRudecu實現(xiàn)了一個簡單但功能強大的接口,還封裝了負載均衡、并行處理、容錯、計算本地化等細節(jié)。</p><p> Map
50、Reduce對數(shù)據(jù)集規(guī)?;?jīng)營,通過完成任務(wù)的這樣一個管理節(jié)點的分布式實現(xiàn)可靠的執(zhí)行和容錯能力。在每個時間段中,主節(jié)點對每個工作進行標記,一旦存在狀態(tài)為死亡的節(jié)點,則將所有分配給該死亡節(jié)點的任務(wù)重新分配給其他節(jié)點,并重新執(zhí)行。</p><p> MapReduce在執(zhí)行時先根據(jù)任務(wù)功能需求,先指定一個Map函數(shù),輸入鍵-值對經(jīng)過Map函數(shù)映射成一組新的鍵-值對,經(jīng)過一定的約束處理之后,將處理后的鍵-值對提交給R
51、educe函數(shù),Reduce函數(shù)對具有相同key值的鍵-值對再處理,然后輸出的鍵-值對作為最終結(jié)果。MapReduce的任務(wù)處理流程圖如圖2-7所示:</p><p> 圖2-6 MapReduce的任務(wù)處理流程圖</p><p><b> 本章小結(jié)</b></p><p> 本章主要分兩方面:第一主要描述當(dāng)今流行的分布式系統(tǒng)模型并進行比
52、較;第二重點介紹了分布式系統(tǒng)基本算法,包括分布式存儲算法、分布式處理算法。通過分析分布式應(yīng)用的關(guān)鍵技術(shù),我們對于非結(jié)構(gòu)化存儲架構(gòu)的設(shè)計提出了參考依據(jù)。研究下一階段,主要是通過Hadoop開源云計算系統(tǒng)的研究,結(jié)合非結(jié)構(gòu)化數(shù)據(jù)的存儲需求,分析不足和改進的一部分,為存儲架構(gòu)的構(gòu)建提供了理論指導(dǎo)。</p><p> 3 Hadoop開源云計算系統(tǒng)</p><p><b> Hado
53、op介紹</b></p><p> Hadoop是一個由Apache基金會開發(fā)實現(xiàn)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。即使用戶對分布式應(yīng)用程序開發(fā)的底層細節(jié)不夠清楚,但是還是可以利用該系統(tǒng)進行分發(fā)。充分利用分布式系統(tǒng)的高速計算和存儲。</p><p> Hadoop框架最核心的研究就是:HDFS(分布式文件系統(tǒng))和MapReduce。HDFS為海量的數(shù)據(jù)提供了存儲,則MapReduce為
54、海量的數(shù)據(jù)提供了計算。</p><p> Hadoop是一個分布式計算平臺,允許用戶方便地使用和架構(gòu)。用戶可以方便地開發(fā)和運行應(yīng)用程序處理大量數(shù)據(jù)。它主要有以下優(yōu)點:</p><p> 1.高可靠性。Hadoop以按位存儲方式處理數(shù)據(jù)。</p><p> 2.高擴展性??梢詳U展到數(shù)以千計的集群節(jié)點中,在集簇節(jié)點間進行分配并完成任務(wù)。</p>&l
55、t;p> 3.高效性。能夠使動態(tài)平衡的特性在各個節(jié)點之間得到保障。</p><p> 4.高容錯性。自動保存數(shù)據(jù),存儲為多個副本,并且能夠自動給其他空閑節(jié)點分配失敗的任務(wù)。</p><p> 5.低成本。Hadoop是開源框架。</p><p> Hadoop大數(shù)據(jù)處理的意義</p><p> Hadoop在數(shù)據(jù)提取、變形和加
56、載方面上的獨特優(yōu)點,使其能夠在大數(shù)據(jù)處理應(yīng)用中廣泛應(yīng)用。Hadoop的MapReduce功能實現(xiàn)了將單一任務(wù)拆分為多個小任務(wù),并將小任務(wù)分配到多節(jié)點上,然后再將數(shù)據(jù)加載到數(shù)據(jù)倉庫里通過以單個數(shù)據(jù)集的形式。</p><p> Hadoop關(guān)鍵技術(shù)</p><p><b> MapReduce</b></p><p> MapReduce是一
57、種設(shè)計為大規(guī)模數(shù)據(jù)集的并行運算的編程模型。從函數(shù)式編程語言引出了映射(Map)、化簡(Reduce)的概念和它們的主要思想。它使得編程人員即使不了解分布式并行編程,也可以在分布式系統(tǒng)上運行自己編寫的程序。</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é)點管理器作為數(shù)據(jù)計算架構(gòu)的組合物,資源管理器將成為整個集群中最終資源分配者。對于作業(yè)管理器,主要有兩項任務(wù):獲取資源通過與資源管理器通信,完成任務(wù)通過與服務(wù)器節(jié)點
59、通信。</p><p> 相對于MapReduce,YARN用于以下幾點優(yōu)勢:</p><p> 1.分散了JobTracker的任務(wù)。資源管理任務(wù)由資源管理器負責(zé),作業(yè)啟動、運行和監(jiān)測任務(wù)由分布在集群節(jié)點上的應(yīng)用主體負責(zé)。這樣大大減緩了MapReduce中JobTracker單點瓶頸和單點風(fēng)險的問題,大大提高了集群的擴展性和可用性。</p><p> 2.在
60、MapReduce中應(yīng)用主體(ApplicationMaster)是一個用戶可自定制的部分,因此用戶可以針對編程模型編寫自己的應(yīng)用主體程序。這樣大大擴展了YARN的適用范圍。</p><p> 3.資源管理器上通過ZooKeeper實現(xiàn)故障轉(zhuǎn)移。當(dāng)資源管理器發(fā)生故障,備用資源管理器將按照保存在ZooKeeper中集群狀態(tài)快速啟動。YARN支持應(yīng)用指定檢查點。這就能保證應(yīng)用主體在失敗后能迅速地根據(jù)HDFS上保存的
61、狀態(tài)重啟。這兩個狀態(tài)大大促進了YARN的可利用性。</p><p> 4.集群資源統(tǒng)一組織成資源容器,而不像MapReduce中的Map池和Reduce池中有所差別。這樣只要有任務(wù)訪問資源,調(diào)度器就會使集群的可用資源發(fā)放給訪問任務(wù)。這便很大程度上提高了集群資源的利用率。</p><p><b> HDFS</b></p><p> HDF
62、S是一個分布式文件系統(tǒng)。之所以HDFS可以被設(shè)計安裝配置在廉價硬件機器上,主要是因為HDFS具有較高的容錯性能。HDFS操作應(yīng)用程序數(shù)據(jù)的吞吐量是特別的高,因此它特別適用于那些具有大量數(shù)據(jù)集的應(yīng)用程序。 HDFS降低了對可移植操作系統(tǒng)接口的要求,這便可以訪問文件系統(tǒng)中的數(shù)據(jù)通過數(shù)據(jù)流的形式。</p><p> HDFS開發(fā)是為了滿足流數(shù)據(jù)操作和處理大型文件的要求,可以安裝部署在價格低廉的商用計算機上?;谝陨希?/p>
63、HDFS的特點可以歸納為下面幾點:</p><p> 1.處理超大文件。百MB、甚至百TB文件。</p><p> 2.流式的訪問數(shù)據(jù)。建立在頻繁地執(zhí)行“一次寫入、多次讀取”基石上。</p><p> 3.運行于價格低廉的商用計算機服務(wù)器集群上,對硬件需求比較低。</p><p> 如圖3-2所示,HDFS采用主/從架構(gòu)進行文件系統(tǒng)管
64、理。由一定數(shù)量的DataNode和一個NameNode構(gòu)成一個HDFS集群。 集群的NameNode是中央服務(wù)器,進行管理文件系統(tǒng)的命名空間和客戶端的文件訪問。集群的DataNode通常運行的DataNode進程負責(zé)管理一個節(jié)點。 HDFS顯示了文件系統(tǒng)的名字空間,用戶進行存儲數(shù)據(jù)通過文件的形式。系統(tǒng)內(nèi),一個文件將被拆解成一個或多個塊,這些塊被存放在一隊DataNode節(jié)點之上。 NameNode主要負責(zé)執(zhí)行命名空間操作,諸如重命名目錄
65、或文件,文件的關(guān)閉,打開,它還保證數(shù)據(jù)塊對應(yīng)到DataNode節(jié)點。DataNode主要完成解決文件系統(tǒng)終端讀取操作。在NameNode的整體控制下,對數(shù)據(jù)塊進行創(chuàng)建,刪除和復(fù)制。</p><p> 圖3-2 HDFS架構(gòu)</p><p><b> Hive</b></p><p> Hive是一種數(shù)據(jù)倉庫架構(gòu),主要基于Hadoop文件系
66、統(tǒng)之上,它主要負責(zé)的功能有:數(shù)據(jù)存儲管理、數(shù)據(jù)ETL(抽取、轉(zhuǎn)換和加載)工具、大型數(shù)據(jù)集的分析和查詢能力。同時Hive模仿SQL,定義了Hive QL。Hive QL許可用戶執(zhí)行和SQL類似的操作,并且還使得程序員靈活地進行Mapper和Reduce操作,這是一個很好的支撐對于MapReduce架構(gòu)。</p><p> 因為Hadoop是一個批處理系統(tǒng),作業(yè)任務(wù)是高延遲的,作業(yè)提交和處理過程會耗費一定時間。此外
67、,盡管Hive處理的數(shù)據(jù)集比較小,在操作時也會出現(xiàn)遲緩。因此,在性能上Hive便沒有比傳統(tǒng)的Oracle數(shù)據(jù)庫更高效。Hive不支持查詢cache和排序功能,不支持在線事務(wù)處理,也不支持實時查詢和記錄級更新,但Hive能高效地處理固定的大數(shù)據(jù)集上的批量操作。因此,Hive最大的價值是良好的容錯性、可擴展性、可延展性和低要求的數(shù)據(jù)輸入格式。</p><p> Hive本身提供一個SQL解析過程,并從外部接口獲得命
68、令,并解析用戶指令。外部命令可以被Hive解析成一個Map-Reduce可執(zhí)行程序,并按照該計劃生成與之相對應(yīng)的MapReduce任務(wù),然后提交給Hadoop集群進行處理。Hive的體系結(jié)構(gòu)如圖3-2所示。</p><p> 圖3-3 Hive的體系結(jié)構(gòu)</p><p><b> HBase</b></p><p> HBase的是一個分
69、布式的,開放源碼的面向列的數(shù)據(jù)塊。和傳統(tǒng)的關(guān)系型數(shù)據(jù)庫對比,HBase優(yōu)勢在于:第一,HBase是一個適合于對非結(jié)構(gòu)化數(shù)據(jù)進行存儲的非關(guān)系型數(shù)據(jù)庫;第二,HBase不是根據(jù)行模式,而是根據(jù)列模式。之所以用戶可以為行定義不同的列,是由于HBase表是松散的。 HBase側(cè)重在隨機訪問,實時讀寫海量數(shù)據(jù)。</p><p> HBase服務(wù)器架構(gòu)按照簡單的主從體系結(jié)構(gòu)設(shè)計,由HRegion服務(wù)器和HBase Mast
70、er服務(wù)器組成。所有HRegion服務(wù)器的管理主要由HBase主服務(wù)器負責(zé),所有的服務(wù)器的協(xié)調(diào)和處理都是通過ZooKeeper負責(zé)。在邏輯上HBase的表可被劃分成多個HRegion,被存儲分配到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開發(fā)的一種分布式架構(gòu),作為近年來已知的最大的開源軟件,給分布式計算、分布式存儲、海量數(shù)據(jù)挖掘提供了實施框架,為分布式編程帶來了方便。</p><p> 本章主要介紹了HDFS,MapReduce,YARN,Hive,HBase等技術(shù),結(jié)合電子商務(wù)數(shù)據(jù)存儲的基本
72、原理和應(yīng)用場景,提供了各種技術(shù)和需要改進部分,而在我們后續(xù)的核心存儲業(yè)務(wù)的設(shè)計階段非結(jié)構(gòu)化數(shù)據(jù)存儲模型的實現(xiàn)提供了技術(shù)基礎(chǔ)。為我們后續(xù)階段的非結(jié)構(gòu)化數(shù)據(jù)存儲架構(gòu)設(shè)計和實現(xiàn)給出技術(shù)依據(jù)。</p><p> 4 非結(jié)構(gòu)化數(shù)據(jù)存儲方案設(shè)計</p><p> 云存儲數(shù)據(jù)中心架構(gòu)模型</p><p> 云存儲數(shù)據(jù)中心是可以提供可延展、高可靠性、高性能的存儲空間的服務(wù)器集
73、群系統(tǒng),它由多臺服務(wù)器構(gòu)成。集群系統(tǒng)主要由一個控制節(jié)點和多個數(shù)據(jù)節(jié)點組成,并且經(jīng)由網(wǎng)絡(luò)互連設(shè)備連接起來,向用戶提高管理和維護。云存儲數(shù)據(jù)中心不僅提供了大量的存儲空間,而且還可以提供多種滿足用戶要求的標準化API接口。云存儲數(shù)據(jù)中心架構(gòu)模型,如下圖4-1所示。</p><p> 圖4-1 云存儲數(shù)據(jù)中心架構(gòu)模型</p><p> 云數(shù)據(jù)存儲中心,包括:網(wǎng)絡(luò)設(shè)備、數(shù)據(jù)節(jié)點和控制節(jié)點。存儲空
74、間的擴容,可以增加數(shù)據(jù)節(jié)點的方式來達到要求,并且通過多份存儲用戶的數(shù)據(jù),以提高數(shù)據(jù)的可靠性,用戶可以訪問數(shù)據(jù)中心的數(shù)據(jù)資源,通過多種標準化接口。數(shù)據(jù)存儲中心獲取數(shù)據(jù)資源,主要通過用戶并行讀取的方式,這便很大程度上使得系統(tǒng)的用戶訪問性能得到提高。</p><p><b> 存儲系統(tǒng)讀寫流程</b></p><p><b> 存儲系統(tǒng)寫流程</b>
75、;</p><p> 存儲系統(tǒng)寫流程如圖4-1所示:</p><p> 圖4-1 存儲系統(tǒng)寫流程</p><p><b> 存儲系統(tǒng)讀流程</b></p><p> 存儲系統(tǒng)讀流程如圖4-2所示:</p><p> 圖4-2 存儲系統(tǒng)讀流程</p><p> 非
76、結(jié)構(gòu)化數(shù)據(jù)云存儲平臺設(shè)計</p><p> HDFS采用主從式架構(gòu)模型,HDFS集群由一個單一的NameNode節(jié)點來管理文件系統(tǒng)的名稱空間和集群啟動后的相關(guān)元數(shù)據(jù)信息如何加載有關(guān)的NameNode節(jié)點存儲器空間中。當(dāng)有海量的非結(jié)構(gòu)化數(shù)據(jù)諸如office文檔、圖片和音頻等其他類型的小文件,每個小文件與每個元數(shù)據(jù)信息都是一一對應(yīng),每一個小文件占用大約100字節(jié)左右的存儲空間。當(dāng)小文件的量達到一定數(shù)目時,文件系統(tǒng)中
77、的NameNode節(jié)點會由于元數(shù)據(jù)信息的影響造成很大程度的存儲空間消耗,海量小文件的存在將對于NameNode節(jié)點的內(nèi)存空間不能滿足。此外,很多的小文件會對NameNode節(jié)點進行多次數(shù)據(jù)塊讀寫請求,每存儲一個小文件,你需要申請NameNode節(jié)點的數(shù)據(jù)塊的配置,NameNode節(jié)點反復(fù)地交互操作將會導(dǎo)致整個系統(tǒng)性能的下降。另外,較小文件的數(shù)據(jù)流文件相對較小,實際傳輸文件數(shù)據(jù)所消耗的時間可能要低于頻繁請求NameNode節(jié)點元數(shù)據(jù)信息所
78、、定位數(shù)據(jù)塊在DataNode節(jié)點上所消耗的時間??傊?,有很多小文件的頻繁交互會引起NameNode節(jié)點的內(nèi)存消耗和整個分布式系統(tǒng)HDFS的性能下降。</p><p> 非結(jié)構(gòu)化數(shù)據(jù)存儲應(yīng)用實例</p><p> a.非結(jié)構(gòu)化存儲系統(tǒng)設(shè)計目標</p><p> 眾所周知,由于電子商務(wù)商務(wù)的飛速發(fā)展,非結(jié)構(gòu)化數(shù)據(jù)形式和數(shù)量也越來越多。因此,依靠云存儲環(huán)境,怎樣解
79、決電子商務(wù)數(shù)據(jù)的存儲將會是現(xiàn)在以及未來非常有發(fā)展?jié)摿Φ姆较?。本?jié)將主要針對電子商務(wù)網(wǎng)站中海量非結(jié)構(gòu)數(shù)據(jù)存儲架構(gòu)模型進行設(shè)計。</p><p> 非結(jié)構(gòu)化數(shù)據(jù)云存儲在電子商務(wù)網(wǎng)站中海量非結(jié)構(gòu)化數(shù)據(jù)存儲系統(tǒng)中的應(yīng)用要實現(xiàn)如下目標:</p><p> (1)滿足非結(jié)構(gòu)化數(shù)據(jù)存儲規(guī)模動態(tài)延展的需求;</p><p> (2)保障數(shù)據(jù)高可用性和可靠性;</p>
80、;<p> ?。?)打破非結(jié)構(gòu)化存儲規(guī)模和容量限制。</p><p> b.非結(jié)構(gòu)化存儲系統(tǒng)設(shè)計思路</p><p> Hadoop作為分布式文件系統(tǒng),實現(xiàn)了HDFS文件系統(tǒng)和MapReduce,這里只使用了它的HDFS。首先從Web頁面上進行上傳文件可以直接調(diào)用Hadoop接口將非結(jié)構(gòu)化數(shù)據(jù)存入HDFS中,HDFS可以設(shè)定備份數(shù)目,這便可以保證在HDFS系統(tǒng)中當(dāng)存在Da
81、taNode死掉時并不會導(dǎo)致數(shù)據(jù)丟失,系統(tǒng)可以從副本上拿到數(shù)據(jù)。</p><p> c.非結(jié)構(gòu)化存儲系統(tǒng)實現(xiàn)</p><p> 通過調(diào)用這個類將非結(jié)構(gòu)化數(shù)據(jù)存儲到Hadoop</p><p> 當(dāng)需要訪問某個文件時,先訪問jsp服務(wù)器(如:tomcat)的一個servlet,這個servlet從hadoop里面讀出文件,并返回給瀏覽器.以下是我們的servle
82、t。</p><p><b> 本章小結(jié)</b></p><p> 本章主要針對于非結(jié)構(gòu)化數(shù)據(jù)存儲體系結(jié)構(gòu)模型和存儲系統(tǒng)的讀寫過程進行闡述。綜合海量數(shù)據(jù)的存儲問題,將云存儲平臺具體應(yīng)用到非結(jié)構(gòu)化存儲系統(tǒng),并提出新的解決方案,以面對海量非結(jié)構(gòu)化數(shù)據(jù)存儲當(dāng)前所面臨的問題。由于經(jīng)驗和時間的原因,本章僅給出了非結(jié)構(gòu)數(shù)據(jù)存儲到Hadoop的實現(xiàn)。下一章將側(cè)重于Mahout處
83、理電子商務(wù)非結(jié)構(gòu)化數(shù)據(jù)。</p><p> 5 Mahout非結(jié)構(gòu)化系統(tǒng)的設(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)總體實現(xiàn)</b></p>
84、<p><b> 硬件準備</b></p><p> 計算機三臺,每臺機器內(nèi)存1G,硬盤存儲空間100G</p><p> 1臺計算機作為NameNode,2臺計算機作為DataNode</p><p> 實驗室內(nèi)部局域網(wǎng),100M網(wǎng)卡</p><p><b> 軟件準備</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開發(fā)工具:Eclipse(Luna Service Release 2 (4.4.2))<
86、/p><p> WinSCP:用于在Windows環(huán)境下使用SSH遠程連接本地與遠程計算機的開源圖形化SFTP客戶端,此外WinSCP還支持SCP協(xié)議,保障本地與遠程客戶端文件傳輸?shù)陌踩浴?lt;/p><p> PieTTY:用于使用Telnet/SSH 在Windows環(huá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> 驗證:service iptabl
93、es status,查看防火墻狀態(tài)</p><p><b> 關(guān)閉防火墻自動啟動</b></p><p> 執(zhí)行命令:chkconfig iptables off</p><p> 驗證:chkconfig –list | grep iptables</p><p> 配置SSH(secure shell)的免密
94、碼登陸</p><p> c.Hadoop配置</p><p> 在所有的Linux機器上都配置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é)點1</p><p> 192.168.137.102 Hadoop-2 ——DataNode節(jié)點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é)點的主機名hadoop_1和hadoop_2</p><p> 格式化,在主節(jié)點執(zhí)行命令 hadoop namenode –format<
104、/p><p> 啟動hadoop,在主節(jié)點下執(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實例運行</p><p> 在Linux操作系統(tǒng)上新建兩個文件,例如:</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> 運行WordCount程序,執(zhí)行命令:</p><p> hadoop jar hadoop-mapreduce-examples-2.2.0-sources.jar org.apache.hadoop.examples.WordCount /input /output</p>
110、<p> 查看程序運行結(jié)果,執(zhí)行命令:</p><p> hadoop fs –text /output/part-r-00000,返回結(jié)果如圖5-7所示:</p><p> 圖5-7 WordCount執(zhí)行結(jié)果</p><p> Mahout實現(xiàn)電子商務(wù)推薦系統(tǒng)</p><p><b> 系統(tǒng)設(shè)計</
111、b></p><p> 用Mahout實現(xiàn)分布式算法,如圖5-8所示:</p><p> 圖5-8 Mahout實現(xiàn)分布式算法</p><p><b> 結(jié)果演示</b></p><p> a.用Mahout實現(xiàn)協(xié)同過濾userCF</p><p> 1.準備數(shù)據(jù)文件:item.c
112、sv,如圖5-9:</p><p> 圖5-9 item.cvs</p><p> 如上圖5-9所示,數(shù)據(jù)解釋:數(shù)據(jù)有三列,第一列是用戶ID,第二列是物品ID,第三列是用戶對物品的打分。</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,推薦前二個最相關(guān)物品, 物品ID為104和106</p><p> 向uid:2,推薦前二個最相關(guān)物品, 但只有一個,物品ID為105</p><p> 向uid:3,推薦前二個最相關(guān)物品, 物品ID
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計--基于hadoop的電子商務(wù)數(shù)據(jù)存儲架構(gòu)的研究與設(shè)計
- 電子商務(wù)的設(shè)計與實現(xiàn)畢業(yè)論文
- 畢業(yè)設(shè)計(論文)+電子商務(wù)專業(yè)+基于hadoop的協(xié)同過濾電商數(shù)據(jù)推薦研究
- 電子商務(wù)畢業(yè)論文---論電子商務(wù)與物流的關(guān)系
- 電子商務(wù)畢業(yè)論文消費金融與電子商務(wù)
- 電子商務(wù)畢業(yè)論文--淺析電子商務(wù)
- 電子商務(wù)專業(yè)畢業(yè)論文--電子商務(wù)的稅收問題研究
- 基于corba的電子商務(wù)系統(tǒng)畢業(yè)論文
- 基于電子商務(wù)的倉儲管理 【畢業(yè)論文】
- 基于corba的電子商務(wù)系統(tǒng) 畢業(yè)論文
- 電子商務(wù)畢業(yè)論文--電子商務(wù)物流模式的探討
- 畢業(yè)論文基于web的電子商務(wù)網(wǎng)站設(shè)計
- 電子商務(wù)畢業(yè)論文
- 電子商務(wù)畢業(yè)論文
- 電子商務(wù)畢業(yè)論文
- 電子商務(wù)畢業(yè)論文
- 電子商務(wù)畢業(yè)論文
- 電子商務(wù)_畢業(yè)論文
- 電子商務(wù)畢業(yè)論文
- 電子商務(wù)畢業(yè)論文
評論
0/150
提交評論