HDFS 中的文件在物理上是分塊存儲 (Block ) , 塊的大小可以通過配置參數(shù)( dfs.blocksize)來規(guī)定,默認大小在Hadoop2.x/3.x版本中是128M,1.x版本中是64M。
如果一個文件文件小于128M,該文件會占用128M的空間嗎?不是的,它只占用文件本身大小的空間,其它空間別的文件也可以用,所以這128M的含義是HDFS數(shù)據(jù)塊的大小,和每個文件的大小沒有關系。
把下圖的流程過一下
?
思考:為什么塊的大小不能設置太小,也不能設置太大?文章來源:http://www.zghlxwxcb.cn/news/detail-604516.html
HDFS的塊設置太小,會增加尋址時間。例如,塊的大小是1KB,文件大小是100KB,這時候要分100個塊來存儲文件,讀取文件時要找到100個塊的地址,會大大增加尋址時間。
如果塊設置的太大,從磁盤傳輸數(shù)據(jù)的時間會明顯大于定位這個塊開始位置所需的時間。導致程序在處理這塊數(shù)據(jù)時,會非常慢。比如,塊的大小是1TB,傳輸這個1TB的數(shù)據(jù)會非常慢,并且程序處理這個1TB的數(shù)據(jù)時,也非常的慢。
總結:HDFS塊的大小設置主要取決于磁盤傳輸速率。對于一般硬盤來說,傳輸速率為100M/s,一般設置塊的大小128M,因為128是2的7次方,最接近于100M。固態(tài)硬盤一般傳輸速率為200M/s~300M/s,可以設置塊大小為256M。在企業(yè),128M和256M是常用的塊大小。文章來源地址http://www.zghlxwxcb.cn/news/detail-604516.html
到了這里,關于HDFS的文件塊大小(重點)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!