基于Hadoop的文件存取優(yōu)化的方法研究
發(fā)布時間:2021-09-19 05:12
隨著大數(shù)據(jù)技術(shù)的興起,用戶訪問互聯(lián)網(wǎng)所產(chǎn)生的數(shù)據(jù)正在呈指數(shù)級增長,這些數(shù)據(jù)大部分以小文件最多。傳統(tǒng)的存儲技術(shù)對于處理海量小文件的性能已經(jīng)大幅度下降,而Hadoop分布式架構(gòu)為處理海量數(shù)據(jù)提供了很好的解決方案。Hadoop本身在處理大型文件方面表現(xiàn)出高性能,但是隨著小文件數(shù)量的增加,Hadoop內(nèi)存中的NameNode元數(shù)據(jù)塊存儲空間消耗過大,在訪問文件性能上有所降低。因此本文設(shè)計了一種高效的解決Hadoop在小文件存儲優(yōu)化方面的方案,這也是本文所要研究的重要方向。針對Hadoop中小文件存儲效率低下的問題,本文設(shè)計了一種關(guān)聯(lián)文件合并算法以及文件緩存算法。在關(guān)聯(lián)文件合并算法中,在小文件預(yù)處理模塊上設(shè)計一種文本挖掘模型算法,即基于TF-IDF特征提取和加權(quán)余弦相似度的K-最近鄰算法,該算法首先通過對英文文本集進(jìn)行單詞的詞干提取、分詞等操作,找到待分類的訓(xùn)練文件與K個鄰居的測試文件所屬的類別;然后通過實驗測試在眾多訓(xùn)練文件集中找到與待分類文件最相似的K個鄰居,并對其進(jìn)行聚類實現(xiàn);最終得到分類后的測試文件集,對分類后的文件集進(jìn)行合并。合并算法中將小文件以<key,value>鍵值對...
【文章來源】:沈陽工業(yè)大學(xué)遼寧省
【文章頁數(shù)】:60 頁
【學(xué)位級別】:碩士
【部分圖文】:
Hadoop系統(tǒng)架構(gòu)
沈陽工業(yè)大學(xué)碩士學(xué)位論文82.2分布式文件系統(tǒng)HDFSHDFS是處于Hadoop平臺層次架構(gòu)中最底層的一個架構(gòu),分布在Hadoop的文件存儲層,主要任務(wù)是對數(shù)據(jù)進(jìn)行處理計算,以及保存文件的元數(shù)據(jù),它是為存儲具有流式數(shù)據(jù)訪問模式的大型文件而設(shè)計的,主要用于有效地處理分布式存儲。HDFS優(yōu)勢是可以運行在Hadoop集群上,可以在普通的硬件機(jī)器上提供既可靠又可伸縮的高容錯數(shù)據(jù)存儲。傳統(tǒng)的對應(yīng)用程序數(shù)據(jù)進(jìn)行管理的系統(tǒng)主要有PVFS[44]、Lustre[45]和Google文件系統(tǒng)[46],和HDFS有共同相似點的是都管理著數(shù)據(jù)文件的元數(shù)據(jù),并且都可用于開發(fā)大規(guī)模的分布式應(yīng)用程序,這些應(yīng)用程序可以利用多個節(jié)點的計算能力來處理數(shù)據(jù)。如圖2.2所示,HDFS結(jié)構(gòu)中采用多臺HDFSClient,相當(dāng)于一個對文件進(jìn)行讀寫的接口,通過向NameNode發(fā)送FileName請求,主節(jié)點服務(wù)器NameNode負(fù)責(zé)響應(yīng)Client的訪問文件的請求,發(fā)送Filemetadata反饋信息給客戶端。Client根據(jù)DataNode中文件塊的ID,找到文件所在數(shù)據(jù)塊位置,因為元數(shù)據(jù)block塊存放的是DataNode上文件的地址信息等;數(shù)據(jù)節(jié)點服務(wù)器主要負(fù)責(zé)對元數(shù)據(jù)文件對應(yīng)的數(shù)據(jù)塊的存儲管理,并將所有的block信息反饋給名字節(jié)點服務(wù)器;Client客戶端主要是負(fù)責(zé)對文件的讀娶查詢、上傳等的操作。圖2.2HDFS體系結(jié)構(gòu)Fig.2.2HDFSarchitectureNameNode進(jìn)程是運行在HDFS主節(jié)點上的元數(shù)據(jù)服務(wù)器,用來監(jiān)督客戶端的訪問行為,以便有客戶端發(fā)送讀/寫文件訪問請求時,更快地將文件信息反饋給客戶端。名稱節(jié)點控制從節(jié)點守護(hù)進(jìn)程以執(zhí)行I/O任務(wù),NameNode名稱節(jié)點管理和控制如何將數(shù)據(jù)文件分解成數(shù)據(jù)塊,并標(biāo)識哪些數(shù)據(jù)節(jié)點可以存儲這些文件的數(shù)據(jù)塊,以及管理分布式文件系統(tǒng)的整體狀態(tài)和適應(yīng)性。
第2章Hadoop平臺介紹及相關(guān)技術(shù)分析9DataNode是HDFS的主要存儲單元,用于存儲和提供HDFS上文件的數(shù)據(jù)塊和服務(wù)客戶端的I/O請求,并根據(jù)NameNode的指令執(zhí)行塊操作。存儲在數(shù)據(jù)節(jié)點中的塊按照配置復(fù)制,以提供可靠性和高可用性,這些復(fù)制塊分布在整個Hadoop集群中,用來提供快速計算。Hadoop集群由運行在每個主節(jié)點上的DataNode守護(hù)進(jìn)程組成,提高快速計算效率。HDFSClient相當(dāng)于一個接口,該接口能夠?qū)崿F(xiàn)的是向文件處理層發(fā)送讀寫文件的請求,進(jìn)而從文件系統(tǒng)中獲取到相應(yīng)文件信息。Block數(shù)據(jù)塊是存儲在HDFS中的數(shù)據(jù)文件被分解后的文件塊大小,一般系統(tǒng)默認(rèn)數(shù)據(jù)塊大小為128MB,數(shù)據(jù)塊被復(fù)制到少數(shù)單獨的機(jī)器上(通常是T)用于容錯機(jī)制。采用HDFS直接接入客戶端機(jī)制,實現(xiàn)高帶寬。當(dāng)應(yīng)用程序讀取文件時,HDFS客戶端首先向NameNode詢問文件塊的主機(jī)副本的數(shù)據(jù)節(jié)點列表。然后,它直接與數(shù)據(jù)節(jié)點聯(lián)系并請求所需塊的轉(zhuǎn)移。當(dāng)客戶端寫入時,它首先要求名稱節(jié)點選擇數(shù)據(jù)節(jié)點來承載文件第一個塊的副本?蛻舳私M織從節(jié)點到節(jié)點的管道節(jié)點并發(fā)送數(shù)據(jù)。當(dāng)?shù)谝粋塊被填充時,客戶端請求選擇新的數(shù)據(jù)節(jié)點來承載下一個塊的副本。2.3HDFS數(shù)據(jù)流程目前主流的各類分布式系統(tǒng)都可以實現(xiàn)對文件的請求讀寫、文件刪除和修改文件信息等操作,同樣HDFS分布式文件系統(tǒng)也能夠?qū)崿F(xiàn)其操作。2.3.1HDFS讀文件流程客戶端Client發(fā)送讀取文件的整體流程,如圖2.3所示。圖2.3HDFS文件讀取流程Fig.2.3HDFSfilereadingprocess讀文件的大體步驟如下:(1)首先客戶端往HDFS中發(fā)送請求讀取某個文件的請求,這時HDFS接收到請求以后,會調(diào)用系統(tǒng)中的open()方法中的DistributedFileSystem打開該文件;
本文編號:3401085
【文章來源】:沈陽工業(yè)大學(xué)遼寧省
【文章頁數(shù)】:60 頁
【學(xué)位級別】:碩士
【部分圖文】:
Hadoop系統(tǒng)架構(gòu)
沈陽工業(yè)大學(xué)碩士學(xué)位論文82.2分布式文件系統(tǒng)HDFSHDFS是處于Hadoop平臺層次架構(gòu)中最底層的一個架構(gòu),分布在Hadoop的文件存儲層,主要任務(wù)是對數(shù)據(jù)進(jìn)行處理計算,以及保存文件的元數(shù)據(jù),它是為存儲具有流式數(shù)據(jù)訪問模式的大型文件而設(shè)計的,主要用于有效地處理分布式存儲。HDFS優(yōu)勢是可以運行在Hadoop集群上,可以在普通的硬件機(jī)器上提供既可靠又可伸縮的高容錯數(shù)據(jù)存儲。傳統(tǒng)的對應(yīng)用程序數(shù)據(jù)進(jìn)行管理的系統(tǒng)主要有PVFS[44]、Lustre[45]和Google文件系統(tǒng)[46],和HDFS有共同相似點的是都管理著數(shù)據(jù)文件的元數(shù)據(jù),并且都可用于開發(fā)大規(guī)模的分布式應(yīng)用程序,這些應(yīng)用程序可以利用多個節(jié)點的計算能力來處理數(shù)據(jù)。如圖2.2所示,HDFS結(jié)構(gòu)中采用多臺HDFSClient,相當(dāng)于一個對文件進(jìn)行讀寫的接口,通過向NameNode發(fā)送FileName請求,主節(jié)點服務(wù)器NameNode負(fù)責(zé)響應(yīng)Client的訪問文件的請求,發(fā)送Filemetadata反饋信息給客戶端。Client根據(jù)DataNode中文件塊的ID,找到文件所在數(shù)據(jù)塊位置,因為元數(shù)據(jù)block塊存放的是DataNode上文件的地址信息等;數(shù)據(jù)節(jié)點服務(wù)器主要負(fù)責(zé)對元數(shù)據(jù)文件對應(yīng)的數(shù)據(jù)塊的存儲管理,并將所有的block信息反饋給名字節(jié)點服務(wù)器;Client客戶端主要是負(fù)責(zé)對文件的讀娶查詢、上傳等的操作。圖2.2HDFS體系結(jié)構(gòu)Fig.2.2HDFSarchitectureNameNode進(jìn)程是運行在HDFS主節(jié)點上的元數(shù)據(jù)服務(wù)器,用來監(jiān)督客戶端的訪問行為,以便有客戶端發(fā)送讀/寫文件訪問請求時,更快地將文件信息反饋給客戶端。名稱節(jié)點控制從節(jié)點守護(hù)進(jìn)程以執(zhí)行I/O任務(wù),NameNode名稱節(jié)點管理和控制如何將數(shù)據(jù)文件分解成數(shù)據(jù)塊,并標(biāo)識哪些數(shù)據(jù)節(jié)點可以存儲這些文件的數(shù)據(jù)塊,以及管理分布式文件系統(tǒng)的整體狀態(tài)和適應(yīng)性。
第2章Hadoop平臺介紹及相關(guān)技術(shù)分析9DataNode是HDFS的主要存儲單元,用于存儲和提供HDFS上文件的數(shù)據(jù)塊和服務(wù)客戶端的I/O請求,并根據(jù)NameNode的指令執(zhí)行塊操作。存儲在數(shù)據(jù)節(jié)點中的塊按照配置復(fù)制,以提供可靠性和高可用性,這些復(fù)制塊分布在整個Hadoop集群中,用來提供快速計算。Hadoop集群由運行在每個主節(jié)點上的DataNode守護(hù)進(jìn)程組成,提高快速計算效率。HDFSClient相當(dāng)于一個接口,該接口能夠?qū)崿F(xiàn)的是向文件處理層發(fā)送讀寫文件的請求,進(jìn)而從文件系統(tǒng)中獲取到相應(yīng)文件信息。Block數(shù)據(jù)塊是存儲在HDFS中的數(shù)據(jù)文件被分解后的文件塊大小,一般系統(tǒng)默認(rèn)數(shù)據(jù)塊大小為128MB,數(shù)據(jù)塊被復(fù)制到少數(shù)單獨的機(jī)器上(通常是T)用于容錯機(jī)制。采用HDFS直接接入客戶端機(jī)制,實現(xiàn)高帶寬。當(dāng)應(yīng)用程序讀取文件時,HDFS客戶端首先向NameNode詢問文件塊的主機(jī)副本的數(shù)據(jù)節(jié)點列表。然后,它直接與數(shù)據(jù)節(jié)點聯(lián)系并請求所需塊的轉(zhuǎn)移。當(dāng)客戶端寫入時,它首先要求名稱節(jié)點選擇數(shù)據(jù)節(jié)點來承載文件第一個塊的副本?蛻舳私M織從節(jié)點到節(jié)點的管道節(jié)點并發(fā)送數(shù)據(jù)。當(dāng)?shù)谝粋塊被填充時,客戶端請求選擇新的數(shù)據(jù)節(jié)點來承載下一個塊的副本。2.3HDFS數(shù)據(jù)流程目前主流的各類分布式系統(tǒng)都可以實現(xiàn)對文件的請求讀寫、文件刪除和修改文件信息等操作,同樣HDFS分布式文件系統(tǒng)也能夠?qū)崿F(xiàn)其操作。2.3.1HDFS讀文件流程客戶端Client發(fā)送讀取文件的整體流程,如圖2.3所示。圖2.3HDFS文件讀取流程Fig.2.3HDFSfilereadingprocess讀文件的大體步驟如下:(1)首先客戶端往HDFS中發(fā)送請求讀取某個文件的請求,這時HDFS接收到請求以后,會調(diào)用系統(tǒng)中的open()方法中的DistributedFileSystem打開該文件;
本文編號:3401085
本文鏈接:http://sikaile.net/kejilunwen/shengwushengchang/3401085.html
最近更新
教材專著