這似乎是一個愚蠢的問題,但在Hadoop中,假設blocksize是X(通常爲64或128 MB),本地文件大小是Y(其中Y小於X)。現在,當我將文件Y複製到HDFS時,一塊或將hadoop創建更小的塊?Hadoop塊大小和文件大小問題?
5
A
回答
18
Hadoop消耗了一個塊。這並不意味着存儲容量將以相同的方式消耗。
而從網頁瀏覽HDFS的輸出是這樣的:
filename1 file 48.11 KB 3 128 MB 2012-04-24 18:36
filename2 file 533.24 KB 3 128 MB 2012-04-24 18:36
filename3 file 303.65 KB 3 128 MB 2012-04-24 18:37
你看到每個文件大小小於塊大小爲128 MB較小。這些文件以KB爲單位。 根據實際文件大小消耗HDFS容量,但每個文件消耗一個塊。
根據HDFS的容量,可用塊的數量是有限的。在利用所有實際的存儲容量之前,您將耗盡塊,因爲您將耗盡塊。請記住,Unix filsystem也有塊大小的概念,但是大小約爲512字節。這個概念在HDFS中反轉,其中塊大小保持在64-128 MB左右。
另一個問題是,當你運行map/reduce程序時,它會嘗試爲每個塊生成映射器,因此在這種情況下,當你處理三個小文件時,最終可能會產生三個映射器來處理它們。 當文件尺寸較小時,這會浪費資源。您還會添加延遲,因爲每個映射器都需要花費時間才能產生,然後最終會在非常小的文件上運行。您必須將它們壓縮到更接近塊大小的文件中,以利用映射器處理較少數量的文件。
許多小文件的另一個問題是它加載了namenode,它將每個塊的映射(元數據)和塊映射保存在主內存中。對於較小的文件,您可以更快地填充此表,並且隨着元數據的增長需要更多的主內存。
閱讀參考如下:
相關問題
- 1. Hadoop塊大小問題
- 2. HDFS塊大小和文件大小的問題,文件小於塊大小
- 3. hadoop map漏油大小和塊大小
- 4. 塊大小問題
- 5. hadoop hdfs塊大小和linux文件系統塊大小之間的交互
- 6. Hadoop每個文件塊大小
- 7. Xfs文件大小,inode大小和塊大小
- 8. 將Hadoop塊大小更改爲低於最小塊大小
- 9. 大量小文件Hadoop
- 10. Hadoop fs查找塊大小?
- 11. Linux塊大小問題
- 12. Hadoop HDFS最大文件大小
- 13. FOPEN,FWRITE和FCLOSE文件大小問題
- 14. 排列網格大小和塊大小
- 15. Hadoop輸入分割大小與塊大小
- 16. 文件系統塊大小
- 17. iOS:TableView和大小問題
- 18. 小部件大小和添加新小部件的問題
- 19. HttpUrlConnection塊大小和視頻文件
- 20. 要檢查文件大小在Hadoop中
- 21. hadoop優化大量小文件
- 22. Hadoop 2.x中的默認塊大小
- 23. CGAffineTransformRotate大小問題
- 24. Hashset大小問題
- 25. ASP.NET:TableCell大小問題
- 26. GridView大小問題?
- 27. JPanel大小問題
- 28. 表大小問題
- 29. 大小寫問題
- 30. TagCloud大小問題