大數據優化方案----HDFS小文件優化方法

版權聲明:本文爲CSDN博主「北京小輝」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/silentwolfyh/article/details/103863621
———————————————————————————————————

“無意中發現了一個巨牛的人工智能教程,忍不住分享一下給大家。教程不僅是零基礎,通俗易懂,而且非常風趣幽默,像看小說一樣!覺得太牛了,所以分享給大家。點這裏可以跳轉到教程。”。

大數據面試寶典目錄,請點擊

HDFS 小文件優化方法(☆☆☆☆☆)

1) HDFS 小文件弊端:
       HDFS 上每個文件都要在namenode 上建立一個索引,這個索引的大小約爲150byte,這樣當小文件比較多的時候,就會產生很多的索引文件,一方面會大量佔用namenode 的內存空間,另一方面就是索引文件過大是的索引速度變慢。
2) 解決的方式:
(1)Hadoop 本身提供了一些文件壓縮的方案。
(2)從系統層面改變現有HDFS 存在的問題,其實主要還是小文件的合併,然後建立比較快速的索引。
3) Hadoop 自帶小文件解決方案
(1)Hadoop Archive:
       是一個高效地將小文件放入HDFS 塊中的文件存檔工具,它能夠將多個小文件打包成一個HAR 文件,這樣在減少namenode 內存使用的同時。
(2)Sequence file:
       sequence file 由一系列的二進制key/value 組成,如果爲key 小文件名,value 爲文件內容,則可以將大批小文件合併成一個大文件。
(3)CombineFileInputFormat:
       CombineFileInputFormat 是一種新的inputformat,用於將多個文件合併成一個單獨的split,另外,它會考慮數據的存儲位置。
4)小文件優化(實戰經驗)
       對於大量小文件Job,可以開啓JVM 重用會減少45%運行時間。JVM 重用理解:一個map 運行一個jvm,重用的話,在一個map 在jvm 上運行完畢後,jvm 繼續運行其他jvm具體設置:mapreduce.job.jvm.numtasks 值在10-20 之間。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章