-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
hdfs可以高效存儲大量的小文件(hdfs 大量小文件)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于hdfs可以高效存儲大量的小文件的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、在hadoop項目結(jié)構(gòu)中h dfs指的是什么
HDFS(Hadoop Distributed File System)是Hadoop項目的核心子項目,是分布式計算中數(shù)據(jù)存儲管理的基礎(chǔ),是基于流數(shù)據(jù)模式訪問和處理超大文件的需求而開發(fā)的,可以運行于廉價的商用服務(wù)器上。
HDFS 具有以下優(yōu)點:
1、高容錯性
數(shù)據(jù)自動保存多個副本。它通過增加副本的形式,提高容錯性。某一個副本丟失以后,它可以自動恢復(fù),這是由 HDFS 內(nèi)部機制實現(xiàn)的,我們不必關(guān)心。
2、適合批處理
它是通過移動計算而不是移動數(shù)據(jù)。它會把數(shù)據(jù)位置暴露給計算框架。
3、適合大數(shù)據(jù)處理
處理數(shù)據(jù)達(dá)到 GB、TB、甚至PB級別的數(shù)據(jù)。能夠處理百萬規(guī)模以上的文件數(shù)量,數(shù)量相當(dāng)之大。能夠處理10K節(jié)點的規(guī)模。
4、流式文件訪問
一次寫入,多次讀取。文件一旦寫入不能修改,只能追加。它能保證數(shù)據(jù)的一致性。
5、可構(gòu)建在廉價機器上
它通過多副本機制,提高可靠性。它提供了容錯和恢復(fù)機制。比如某一個副本丟失,可以通過其它副本來恢復(fù)。
HDFS 也有它的劣勢,并不適合所有的場合:
1、低延時數(shù)據(jù)訪問
比如毫秒級的來存儲數(shù)據(jù),這是不行的,它做不到。它適合高吞吐率的場景,就是在某一時間內(nèi)寫入大量的數(shù)據(jù)。但是它在低延時的情況下是不行的,比如毫秒級以內(nèi)讀取數(shù)據(jù),這樣它是很難做到的。
2、小文件存儲
存儲大量小文件(這里的小文件是指小于HDFS系統(tǒng)的Block大小的文件(默認(rèn)64M))的話,它會占用 NameNode大量的內(nèi)存來存儲文件、目錄和塊信息。這樣是不可取的,因為NameNode的內(nèi)存總是有限的。
3、并發(fā)寫入、文件隨機修改
一個文件只能有一個寫,不允許多個線程同時寫。僅支持?jǐn)?shù)據(jù) append(追加),不支持文件的隨機修改。
二、hdfs小文件過多,會帶來什么問題
因為在hdfs 中,數(shù)據(jù)的元數(shù)據(jù)信息是保存在NameNode上的,hdfs本身的作用就是用來存儲海量文件的,首先小文件過多的話,會增加NameNode 的壓力,,因為NameNode是要接收集群中所有的DataNode的心跳信息,來確定元數(shù)據(jù)的信息變化的,另外,文件中可使用的block塊的個數(shù)是有限制的,hadoop用來處理數(shù)據(jù)的話,小文件的延遲,和數(shù)據(jù)量雖然很小,但是有些地方和大文件所耗的時間相同,所以最好做優(yōu)化,避免這種情況的發(fā)生。
三、Hive如何處理大量小文件
1.動態(tài)分區(qū)插入數(shù)據(jù)的時候,會產(chǎn)生大量的小文件,從而導(dǎo)致map數(shù)量的暴增
2.數(shù)據(jù)源本身就包含有大量的小文件
3.reduce個數(shù)越多,生成的小文件也越多
1 從HIVE角度來看的話呢,小文件越多,map的個數(shù)也會越多,每一個map都會開啟一個JVM虛擬機,每個虛擬機都要創(chuàng)建任務(wù),執(zhí)行任務(wù),這些流程都會造成大量的資源浪費,嚴(yán)重影響性能
2 在HDFS中,每個小文件約占150byte,如果小文件過多則會占用大量的內(nèi)存。這樣namenode內(nèi)存容量嚴(yán)重制約了集群的發(fā)展
4.1 使用Hadoop achieve把小文件進(jìn)行歸檔
4.2 重建表,建表時減少reduce的數(shù)量
4.3 通過參數(shù)調(diào)節(jié),設(shè)置map/reduce的數(shù)量
4.3.1設(shè)置map輸入合并小文件的相關(guān)參數(shù):
4.3.2 設(shè)置map輸出和reduce輸出進(jìn)行合并的相關(guān)參數(shù):
四、HDFS的優(yōu)缺點以及應(yīng)用場景
HDFS 是hadoop distributed file system的簡稱,分布式文件系統(tǒng)
在大數(shù)據(jù)生態(tài)系統(tǒng)中,分布式是一個核心概念,大數(shù)據(jù)大數(shù)據(jù),大數(shù)據(jù)量的數(shù)據(jù)和大量種類的數(shù)據(jù),一臺機器存不下,多臺機器一起存儲
一個對應(yīng)用數(shù)據(jù)提供高吞吐訪問量的分布式文件系統(tǒng)
適合一次寫入,多次讀出場景,而且不支持文件的隨機修改,但是支持文件的追加 .適合做數(shù)據(jù)分析
隨機修改:把已經(jīng)寫過的內(nèi)存進(jìn)行修改
追加:在之前文件寫的基礎(chǔ)上面后面繼續(xù)加內(nèi)容
優(yōu)點:
缺點:
實際工作中本人自己測試過,一個文件/目錄/文件塊大概是占用的元數(shù)據(jù)內(nèi)存是150B,假如有100W個小文件,每個文件都占用一個文件塊,需150B×100W/1024/1024≈143M,要是一個億的數(shù)據(jù)量呢
以上就是關(guān)于hdfs可以高效存儲大量的小文件相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
hdi人類發(fā)展指數(shù)(中國人類發(fā)展指數(shù)排名)
2020新年音樂會杭州劇院(2020新年音樂會杭州劇院表演)