HDFS小檔案的優化

2021-10-21 21:07:14 字數 816 閱讀 7033

hdfs上每個檔案都要在namenode 上建立乙個索引,這個索引的大小約為150byte,這樣當小檔案比較多的時候,就

會產生很多的索引檔案,一方面會大量的占用namenode 的空間,另一方面就是索引檔案過大時得索引速度變慢。

hdfs小檔案解決方案

小檔案的優化無非以下幾種方式:

(1)在資料採集的時候,就將小檔案或小批資料合成大檔案再上傳hdfs。

(2)在業務處理之前,在hdfs上使用mapreduce程式對小檔案進行合併。

(3)在mapreduce處理時,可採用combinetextinputformat提高效率。

1. hadop archive

是乙個高效地將小檔案放入hdfs塊中的檔案存檔工具,它能個夠將多個小檔案打包成乙個har檔案,這樣就減少

了namenode的記憶體使用。

2. sequencefile

sequencefile 由一系列的二進位制key/value 組成,如果key為檔名,value 為檔案內容,則可以將大批小文

件合併成乙個大檔案

3. combinefileinputformat

combinefileinputformat是一種新的inputformat,用於將多個為檔案合併成乙個單獨的split,另外,它會考

慮資料的儲存位置。

HDFS合併小檔案

眾所周知,hdfs中過多的小檔案,會給namenode造成很大的壓力,所謂的小檔案,是指遠遠小於檔案塊大小的檔案。在使用hdfs的過程中,應盡量避免生成過多的小檔案。假設存放在本地的資料由很多個小檔案組成,需要上傳到hdfs。一般的做法是在本地使用指令碼 程式先把小檔案合併後再上傳。假設本地有兩個小...

小檔案處理 HDFS

1.儲存 hdfs可以儲存小檔案,但是這個過程中,每乙個小檔案在儲存的時候都會產生一條元資料,這也就意味著如果儲存大量的小檔案,就會產生大量的元資料,則意味著記憶體會被大量占用,此時就會導致hdfs的讀寫效率整體降低 2.計算 每乙個小檔案都會看做乙個切片來進行處理,每乙個切片都會對應乙個mapta...

HDFS小檔案問題

1 概述 小檔案是指檔案size小於hdfs上block大小的檔案。這樣的檔案會給hadoop的擴充套件性和效能帶來嚴重問題。首先,在hdfs中,任何block,檔案或者目錄在記憶體中均以物件的形式儲存,每個物件約佔150byte,如果有1000 0000個小檔案,每個檔案占用乙個block,則na...