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