• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Hadoop的云盤存儲(chǔ)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

      2023-05-30 15:35:35徐翔張光亞
      電腦知識(shí)與技術(shù) 2023年3期
      關(guān)鍵詞:云盤

      徐翔 張光亞

      關(guān)鍵詞:Hadoop;HDFS;云盤;分布式存儲(chǔ)

      中圖分類號(hào):TP317 文獻(xiàn)標(biāo)識(shí)碼:A

      文章編號(hào):1009-3044(2023)03-0078-04

      1 引言

      隨著目前互聯(lián)網(wǎng)產(chǎn)業(yè)的飛速發(fā)展,以及通訊設(shè)備應(yīng)用的普及,計(jì)算機(jī)在人們?nèi)粘I钪邪l(fā)揮著越來(lái)越重要的作用,信息的處理、傳輸和采集已然成為現(xiàn)代信息技術(shù)的三大基石[1]。在未來(lái),隨著大數(shù)據(jù)、物聯(lián)網(wǎng)、人工智能、5G等技術(shù)的不斷突破與發(fā)展,全球的數(shù)據(jù)量將越來(lái)越大,信息的存儲(chǔ)和管理變得復(fù)雜,單機(jī)硬盤存儲(chǔ)已滿足不了用戶的文件存儲(chǔ)和管理需要。

      為了適應(yīng)目前信息化社會(huì)對(duì)于支持網(wǎng)絡(luò)和多種數(shù)據(jù)信息的應(yīng)用軟件的要求,以網(wǎng)絡(luò)存儲(chǔ)為核心的個(gè)人云盤存儲(chǔ)系統(tǒng)應(yīng)運(yùn)而生。云盤存儲(chǔ)相對(duì)于傳統(tǒng)的實(shí)體磁盤來(lái)說(shuō)更方便快捷,用戶不需要把儲(chǔ)存重要資料的實(shí)體磁盤帶在身上,而可以通過互聯(lián)網(wǎng)輕松地從云端讀取自己所存儲(chǔ)的信息,解決了單機(jī)硬盤存儲(chǔ)量少、管理效率低、網(wǎng)絡(luò)傳輸能力差等有關(guān)于文件存儲(chǔ)的問題。

      在云存儲(chǔ)服務(wù)面向用戶使用之前,用戶數(shù)據(jù)的存儲(chǔ)存在一定的局限性,例如當(dāng)用戶需要向個(gè)人存儲(chǔ)系統(tǒng)中存儲(chǔ)海量數(shù)據(jù)文件時(shí),因系統(tǒng)本身沒有實(shí)現(xiàn)大數(shù)據(jù)文件優(yōu)化存儲(chǔ)處理的方案,原本的系統(tǒng)存儲(chǔ)性能將會(huì)很大程度地降低。此時(shí)即使對(duì)存儲(chǔ)服務(wù)器進(jìn)行擴(kuò)展升級(jí),存儲(chǔ)性能也不會(huì)有明顯的提升。因此,相對(duì)于傳統(tǒng)的存儲(chǔ)服務(wù),云存儲(chǔ)無(wú)論是對(duì)于需要更大存儲(chǔ)空間的個(gè)人,還是對(duì)于尋求高效異地?cái)?shù)據(jù)備份解決方案的企業(yè)都越來(lái)越受歡迎。云存儲(chǔ)提供了一種以安全可靠的方式存儲(chǔ)和遷移數(shù)據(jù)的方式,它允許個(gè)人和企業(yè)將他們的文件存儲(chǔ)在云服務(wù)提供商處,以便他們能夠在網(wǎng)絡(luò)設(shè)備上對(duì)個(gè)人文件進(jìn)行訪問。

      基于Hadoop[2-4]的HDFS是谷歌文件系統(tǒng)的開源實(shí)現(xiàn)項(xiàng)目,項(xiàng)目成立之后便逐漸成為各個(gè)企業(yè)或機(jī)構(gòu)的云存儲(chǔ)系統(tǒng)解決方案,同時(shí)也是當(dāng)前在云存儲(chǔ)領(lǐng)域最重要的研究對(duì)象。HDFS[5]在Hadoop集群中擔(dān)任著集群數(shù)據(jù)存儲(chǔ)重要角色,具有高穩(wěn)定性與可擴(kuò)展性等優(yōu)點(diǎn),并且能夠運(yùn)行在廉價(jià)機(jī)器上,一定程度上降低了云存儲(chǔ)系統(tǒng)設(shè)計(jì)的成本。國(guó)內(nèi)互聯(lián)網(wǎng)巨頭百度和阿里巴巴分別在2006年和2012年就對(duì)Hadoop進(jìn)行關(guān)注并研發(fā)使用,解決了大數(shù)據(jù)云存儲(chǔ)的相關(guān)問題,為用戶提供了底層的模型計(jì)算以及存儲(chǔ)服務(wù)。

      基于Hadoop的HDFS分布式文件系統(tǒng)是當(dāng)前云存儲(chǔ)領(lǐng)域的研究熱點(diǎn)[6-8]。本課題研究并設(shè)計(jì)以Ha? doop為基礎(chǔ)的大數(shù)據(jù)云盤存儲(chǔ)系統(tǒng)具有重要意義。

      2 云盤系統(tǒng)總體架構(gòu)

      本系統(tǒng)的總體架構(gòu)分為三部分:客戶端、業(yè)務(wù)邏輯層及大數(shù)據(jù)存儲(chǔ)集群,具體如圖1所示。

      用戶從客戶端中向后臺(tái)服務(wù)器發(fā)起用戶注冊(cè)與登錄請(qǐng)求,驗(yàn)證通過后可以在個(gè)人云盤空間內(nèi)管理自己的目錄與文件,可以對(duì)目錄或文件進(jìn)行新增、刪除、重命名等操作。用戶向后臺(tái)服務(wù)器發(fā)起的所有請(qǐng)求都需經(jīng)過安全性的處理,以防網(wǎng)絡(luò)攻擊者竊取用戶的個(gè)人隱私信息。

      業(yè)務(wù)處理層則用于處理用戶發(fā)起的具體請(qǐng)求,若業(yè)務(wù)處理的過程中存在邏輯錯(cuò)誤,則會(huì)向用戶彈出錯(cuò)誤提示框,讓用戶規(guī)范自己的相關(guān)操作。對(duì)于用戶上傳的文件數(shù)據(jù),后臺(tái)服務(wù)器負(fù)責(zé)將其轉(zhuǎn)化為流數(shù)據(jù),并經(jīng)過加密處理后存入大數(shù)據(jù)存儲(chǔ)集群中。用戶的文件存儲(chǔ)數(shù)據(jù)的相關(guān)記錄將存儲(chǔ)至MySQL數(shù)據(jù)庫(kù)內(nèi)。

      在大數(shù)據(jù)存儲(chǔ)集群中,由于HDFS集群具有副本機(jī)制,每個(gè)Hadoop節(jié)點(diǎn)都會(huì)分別存儲(chǔ)一個(gè)文件的副本,即一個(gè)文件有3個(gè)副本,這些副本可以根據(jù)特定的算法分配到三個(gè)Hadoop節(jié)點(diǎn)中,一定程度上避免了數(shù)據(jù)丟失的情況。故大數(shù)據(jù)存儲(chǔ)集群必須使用三個(gè)或三個(gè)以上的服務(wù)器,從而實(shí)現(xiàn)Hadoop全分布式的集群環(huán)境。

      3 云盤系統(tǒng)實(shí)現(xiàn)

      3.1 前端Web 頁(yè)面設(shè)計(jì)

      云盤系統(tǒng)的前端界面采用基于Bootstrap的UI框架,實(shí)現(xiàn)用戶登錄注冊(cè)界面及云盤系統(tǒng)模板界面。Bootstrap是一個(gè)開源的、基于HTML5及CSS3和JS的響應(yīng)式布局框架,因此它可以很好地兼容電腦端頁(yè)面與手機(jī)Web端頁(yè)面的布局。在本系統(tǒng)中,考慮同時(shí)設(shè)計(jì)電腦端頁(yè)面及手機(jī)端頁(yè)面,方便用戶在多種形式的設(shè)備上使用本系統(tǒng)。

      用戶在前端對(duì)云盤進(jìn)行的一系列操作將使用經(jīng)過定制后的Ajax技術(shù),用于異步請(qǐng)求后臺(tái)資源,并返回固定格式的用戶提示框。為了方便用戶能夠在線讀取特定格式的文件內(nèi)容(如文本、圖片等),還引入了基于Bootstrap的文件讀取框架。對(duì)于數(shù)據(jù)分析模塊,為滿足數(shù)據(jù)可視化需求,引入了較為熱門的Echarts.js組件,用以生成數(shù)據(jù)圖表信息。

      3.2 后臺(tái)Web 服務(wù)器設(shè)計(jì)

      云盤系統(tǒng)采用SpringBoot作為后臺(tái)Web服務(wù)器基礎(chǔ)框架,并使用MVC模式將后臺(tái)服務(wù)器分為接口層(pCeor)nt三rol層ler架) 、構(gòu)業(yè),務(wù)完邏成輯整層個(gè)(Se系rv統(tǒng)ice的) 和數(shù)數(shù)據(jù)據(jù)傳鏈輸路和層交(M互ap。?MyBatis是一個(gè)持久層框架,用于建立數(shù)據(jù)庫(kù)的訪問鏈接,在此過程中開發(fā)者只需關(guān)注SQL語(yǔ)句的書寫邏輯,方便快捷,且能與SpringBoot完美集成。系統(tǒng)中還采用了Shiro用戶登錄安全驗(yàn)證框架,它能夠輕松地與JavaSE和JavaEE進(jìn)行集成,用于用戶登錄時(shí)的認(rèn)證、授權(quán)、加密、會(huì)話管理等功能。

      3.3 數(shù)據(jù)庫(kù)設(shè)計(jì)

      數(shù)據(jù)庫(kù)概念設(shè)計(jì)如圖2所示,包含用戶、目錄和文件實(shí)體。每個(gè)用戶可以創(chuàng)建多個(gè)目錄及上傳多個(gè)文件,但是一個(gè)目錄或文件只能夠?qū)儆谝粋€(gè)用戶,因此用戶與目錄、文件之間都是屬于一對(duì)多關(guān)系。

      為了統(tǒng)計(jì)用戶的相關(guān)操作信息以及操作云盤時(shí)所產(chǎn)生的流量數(shù)據(jù),還需設(shè)計(jì)日志表實(shí)體與流量表實(shí)體,實(shí)體關(guān)系如圖3所示。日志實(shí)體主要的字段為所屬用戶ID和響應(yīng)參數(shù),用于統(tǒng)計(jì)用戶的相關(guān)操作參數(shù),同時(shí)也包括用戶上傳與下載的流量使用參數(shù),日志表為流量統(tǒng)計(jì)提供了相關(guān)的數(shù)據(jù)源。流量表實(shí)體則是用于記錄數(shù)據(jù)分析后的流量信息,主要字段有所屬用戶ID、當(dāng)日上傳總流量以及當(dāng)日下載總流量等。

      3.4 基于MapFile 的小文件存儲(chǔ)

      HDFS設(shè)計(jì)之初就是為了存儲(chǔ)大容量文件,并沒有對(duì)小文件的存儲(chǔ)進(jìn)行相關(guān)的優(yōu)化。在Hadoop2.0版本之后,HDFS中的每個(gè)文件存儲(chǔ)數(shù)據(jù)塊以128MB為單位,而用戶個(gè)人數(shù)據(jù)文件(以文檔、圖片等為主)的容量大小遠(yuǎn)遠(yuǎn)小于128MB的數(shù)據(jù)塊閾值,這些小文件額外占用了HDFS中更多的容量空間,造成存儲(chǔ)空間的浪費(fèi)。當(dāng)用戶數(shù)量增大時(shí),HDFS便迎來(lái)了大量小文件存儲(chǔ)所造成的存儲(chǔ)效率問題。

      為了解決HDFS不適合存儲(chǔ)小文件的問題,提出了使用基于MapFile的方案來(lái)優(yōu)化小文件的存儲(chǔ),提高存儲(chǔ)效率。MapFile基本上由兩大部分組成,分別是用于存儲(chǔ)數(shù)據(jù)的Data塊,以及存儲(chǔ)索引文件的In? dex塊。在使用MapFile方案存儲(chǔ)小文件時(shí),文件數(shù)據(jù)將會(huì)被分為一個(gè)鍵值對(duì),該鍵值對(duì)中的“鍵”指的是序列化后的文件名,“值”則是指文件本身的內(nèi)容。多個(gè)文件數(shù)據(jù)的鍵值對(duì)數(shù)據(jù)會(huì)被合并為一個(gè)大文件存儲(chǔ)在Data塊中,與此同時(shí)建立每個(gè)文件數(shù)據(jù)的映射關(guān)系,在Index索引塊中記錄每個(gè)文件數(shù)據(jù)的鍵值對(duì)信息。這樣一來(lái),在通過MapFile訪問小文件時(shí),可以通過Index索引塊快速定位到相關(guān)的文件內(nèi)存位置,提高小文件檢索效率。

      4 系統(tǒng)測(cè)試

      4.1 測(cè)試環(huán)境搭建

      4.1.1 Hadoop 集群搭建

      為了對(duì)系統(tǒng)進(jìn)行測(cè)試,搭建了具有三臺(tái)服務(wù)的Ha? doop集群。服務(wù)器采用Linux系統(tǒng),基本配置相同。為了快速搭建Hadoop集群,首先創(chuàng)建一個(gè)模板服務(wù)器,然后通過拷貝的方式復(fù)制另外兩個(gè)相同配置的服務(wù)器。

      模板服務(wù)器名稱為Hadoop102,默認(rèn)安裝有Java JDK8與Hadoop3.1.3兩個(gè)必要組件。另外兩臺(tái)服務(wù)器名稱分別為Hadoop103和Hadoop104。將Hadoop102 中的JDK與Hadoop組件復(fù)制給這兩個(gè)新服務(wù)器。為了實(shí)現(xiàn)跨服務(wù)器傳輸文件,采用shell語(yǔ)言的rsync命令,其具體作用是把服務(wù)器指定目錄的所有文件拷貝到另一個(gè)服務(wù)器。最后,把Hadoop的重要運(yùn)行節(jié)點(diǎn)分配到三臺(tái)服務(wù)器中。在Hadoop全分布式環(huán)境中,為了保證集群正常運(yùn)行,需要啟動(dòng)五個(gè)基礎(chǔ)節(jié)點(diǎn):Na? NmaemNeodNe(od管e(N理am節(jié)e點(diǎn)No)d、eD副at本aN節(jié)od點(diǎn)e()工、R作es節(jié)ou點(diǎn)rc)eM、Saencaognedr(ar資y?源管理節(jié)點(diǎn))以及Nodemanager(監(jiān)控資源節(jié)點(diǎn))。其中,每個(gè)服務(wù)器都必須擁有一個(gè)DataNode 與一個(gè)Nodemanager節(jié)點(diǎn),以保證每個(gè)服務(wù)器能夠正常運(yùn)行相關(guān)程序。因此,對(duì)于另外三個(gè)重要節(jié)點(diǎn)NameNode、Sec? ondaryNameNode以及ResourceManager,需要分別分配到三個(gè)服務(wù)器中。服務(wù)器的節(jié)點(diǎn)分配情況如表1所示。

      為了分配服務(wù)器節(jié)點(diǎn),需要在各服務(wù)器的core- site.xml文件中配置NameNode節(jié)點(diǎn)的主機(jī)地址,并指定NameNode 啟動(dòng)在Hadoop102 服務(wù)器的8020 端口上。NameNode節(jié)點(diǎn)關(guān)鍵屬性配置如下所示:

      在每臺(tái)服務(wù)器的hdfs-site.xml 文件中配置Sec? oNnadmaeryNNoadme節(jié)eN點(diǎn)od啟e節(jié)動(dòng)點(diǎn)在的H主ado機(jī)op地10址4服,并務(wù)指器定的S9e8c6o8nd端ar口y?上。關(guān)鍵屬性配置如下所示:

      在每臺(tái)服務(wù)器的yarn-site.xml 文件中配置Re? saoguerrc節(jié)eM點(diǎn)an啟ag動(dòng)er在節(jié)H點(diǎn)ad的oo主p1機(jī)03地服址務(wù),器并上指。定關(guān)Re鍵so屬ur性ceM如a下n?所示:

      經(jīng)過以上合理配置的Hadoop集群即使有一臺(tái)服務(wù)器發(fā)生了故障,其他兩臺(tái)服務(wù)器仍然保留著重要的數(shù)據(jù)信息,最大程度上避免數(shù)據(jù)丟失。

      4.1.2 后臺(tái)Web 服務(wù)器搭建

      后臺(tái)服務(wù)器將以SpringBoot作為基礎(chǔ)框架,以Ma?ven作為項(xiàng)目管理工具。當(dāng)一個(gè)基于Maven的項(xiàng)目創(chuàng)建完成后,需要使用Maven倉(cāng)庫(kù)將相關(guān)依賴屬性添加到pom.xml 文件內(nèi)。為了讓Maven 項(xiàng)目引入Spring? Boot框架,則需要向pom.xml文件中添加如下所示的基礎(chǔ)依賴。

      引入成功后,使用Java開發(fā)工具啟動(dòng)SpringBoot 項(xiàng)目,后臺(tái)服務(wù)器就已具備了基礎(chǔ)的Web服務(wù)器請(qǐng)求與響應(yīng)的功能。為了使后臺(tái)服務(wù)器具備上文“技術(shù)架構(gòu)設(shè)計(jì)”中所描述的相關(guān)技術(shù),還需要添加Mybatis框架、shiro框架、Hadoop客戶端等依賴,具體的依賴屬性配置如下所示。

      后臺(tái)服務(wù)器搭建還需要配置HTTPS請(qǐng)求協(xié)議,為此首先申請(qǐng)SSL證書。目前較為成熟的云計(jì)算服務(wù)器騰訊云或阿里云可進(jìn)行免費(fèi)申請(qǐng)。獲取證書后,將證書相關(guān)文件導(dǎo)入SpringBoot項(xiàng)目中,隨后通過向ap? plication.yml文件添加相關(guān)配置來(lái)完成協(xié)議的導(dǎo)入。具體導(dǎo)入代碼如下所示:

      最后,為了解決HTTP協(xié)議兼容問題,設(shè)置HTTP 頁(yè)面重定向到HTTPS協(xié)議頁(yè)面中。

      4.2 系統(tǒng)實(shí)現(xiàn)效果

      設(shè)計(jì)了測(cè)試用例對(duì)系統(tǒng)登錄、新建目錄、上傳文件、刪除文件、下載文件、文件夾重命名等功能進(jìn)行了測(cè)試,系統(tǒng)實(shí)現(xiàn)效果如圖4所示。

      4.3 系統(tǒng)流量統(tǒng)計(jì)

      為了測(cè)試系統(tǒng)的穩(wěn)定性,對(duì)系統(tǒng)進(jìn)行了為期8天的上線測(cè)試,測(cè)試用戶數(shù)量為2-10之間的隨機(jī)值,系統(tǒng)流量統(tǒng)計(jì)情況如圖5所示。用戶對(duì)云盤文件的操作記錄將會(huì)記錄到數(shù)據(jù)庫(kù)中的日志表內(nèi),當(dāng)需要進(jìn)行數(shù)據(jù)分析時(shí),后臺(tái)服務(wù)器會(huì)對(duì)日志表的數(shù)據(jù)進(jìn)行篩選整理并導(dǎo)出包含序號(hào)、用戶ID、日期、上傳流量和下載流量五列字段的數(shù)據(jù)集,隨后再將數(shù)據(jù)集上傳至HDFS集群中執(zhí)行MapReduce數(shù)據(jù)合并分析。分析完畢后,輸出結(jié)果將自動(dòng)寫入MySQL數(shù)據(jù)庫(kù)中的“流量統(tǒng)計(jì)表”內(nèi)。

      5 結(jié)束語(yǔ)

      本文采用分布式文件系統(tǒng)Hadoop設(shè)計(jì)并實(shí)現(xiàn)了云盤存儲(chǔ)系統(tǒng),可實(shí)現(xiàn)云端文件的管理和存儲(chǔ)功能,包括新建文件夾、刪除文件夾、上傳文件、下載文件、文件重命名等。本文詳細(xì)介紹了系統(tǒng)架構(gòu)、前端頁(yè)面設(shè)計(jì)和后臺(tái)服務(wù)器搭建等設(shè)計(jì)與實(shí)現(xiàn)細(xì)節(jié)信息,為同類系統(tǒng)開發(fā)提供了參考。

      猜你喜歡
      云盤
      云盤山
      云盤不再單打獨(dú)斗,阿里云盤生態(tài)體驗(yàn)
      編輯精選APP
      云端難題巧解決
      阿里發(fā)布SSD云盤 性能大幅提升
      略阳县| 开封市| 固阳县| 兰西县| 曲松县| 肇源县| 三台县| 江陵县| 土默特右旗| 上蔡县| 翁牛特旗| 偃师市| 大余县| 甘孜县| 舞阳县| 讷河市| 雅安市| 临沭县| 安徽省| 修文县| 沂水县| 扎兰屯市| 牙克石市| 邮箱| 两当县| 惠水县| 三台县| 谷城县| 苏尼特左旗| 新龙县| 渭南市| 达日县| 澄迈县| 顺平县| 耒阳市| 保山市| 东莞市| 易门县| 塘沽区| 朝阳市| 叙永县|