HDFS小文件物理空間佔用驗證

項目環境中遇到的小文件較多,起初除了NAMENODE的內存外,還是比較擔心文件物理空間的佔用。於是就看一下,小文件是如何佔用物理空間的:


前提HDFS塊大小爲64MB

      文件副本總共3


1、  批量生成小文件(均20M

wKioL1VKBPPRLhwyAANmM4NvOaw676.jpg


2、  記錄測試前DFS空間使用情況

wKiom1VKA63SxRdVAAE9MYR7Yhw541.jpg

目前,DFS空間已經使用50.04GB


3、  HIVELOAD一個文件testaa

wKiom1VKBB7AyD_XAAFQxNFcLF4082.jpg


4、  再次查看DFS空間使用情況

wKioL1VKBcLxHo8tAAE-TWWIfpo156.jpg


5、 查看文件testaa所在的塊佔用的空間情況

wKiom1VKBH7iuw7YAASlmTOZZSI376.jpg

Total size可以看出:佔用物理空間爲20MB


6、 再次LOAD一個文件testab

wKioL1VKBiLzLUL3AAFB6FiBn5U861.jpg

7、 查看DFS空間使用情況

wKioL1VKBkPAPbqUAAE6tWRiq08927.jpg

DFS空間使用50.16GB


8、  查看文件testab所在塊佔用空間情況

wKioL1VKBnKQyWZtAASoCzs43gI942.jpgTestab佔用物理空間也爲20MB


9、  批量加載小文件

wKiom1VKBTqTMYnyAAWXs9VopVI694.jpg


10、執行該腳本

wKioL1VKBuCQIPGPAAcSIpNtp0g894.jpg

wKiom1VKBYPRI8hvAAFIGcFbiOk521.jpg


11、再次查看DFS空間使用情況

wKioL1VKBxyxmfJbAAEoMKjghvU436.jpg



從以上測試得到:

    DFS起始佔用空間大小:50.04GB

       加載26個文件20MB後,DFS佔用空間大小:51.58GB

計算:

       計算每個文件佔用的DFS空間大小:

          51.58GB-50.04GB*1024/26=60.65MB

       文件佔用物理空間大小:

           20MB*3=60MB

結論:

    小於塊大小的小文件不會佔用整個HDFS塊空間。也就是說,較多的小文件會佔用更多的NAMENODE的內存(記錄了文件的位置等信息);再者,在文件處理時,可能會有較大的網絡開銷。


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