hdfs为什么要用block以及block大小的设置
生活随笔
收集整理的這篇文章主要介紹了
hdfs为什么要用block以及block大小的设置
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、在HDFS里面,文件存儲為什么要以Block塊的方式存儲?
目的:減少磁盤尋道的時間。
?
(1)、不設置block:因為數據是分散的存放磁盤上的,讀取數據時需要不停的進行磁盤尋道,開銷比較大。
(2)、使用block: 一次可以讀取一個block中的數據,減少磁盤尋道的次數和時間。
?
其他:block在磁盤上非連續存儲的,讀取數據時需要磁盤尋道。
2、為什么HDFS中塊(block)不能設置太大,也不能設置太小?
(1)、block設置過大:從磁盤傳輸數據的時間明顯大于尋址時間,導致處理該塊數據時比較慢。
(2)、block設置過小:NameNode需要大量內存來存儲元數據,不可取。
3、HDFS尋址時間
HDFS中找到目標文件塊(block)所需要的時間。
4、DataNode上的塊大小默認是128MB,為什么128MB是最優選擇?
目的:減少HDFS尋址開銷。
?
HDFS的平均尋址時間大概是10ms,尋址時間為傳輸時間的1%時,為最佳狀態,所以最佳傳輸時間是10ms/0.01=1000ms=1s。
?
目前磁盤的傳輸速率普遍為100MB/s;
計算出最佳block大小:100MB/s x 1s = 100MB,
所以我們設定block大小為128MB。
?
如果磁盤傳輸速率很大,例如2000M/s時,block可以設置為?2000M/s * 1s =?2000M
?
總結
以上是生活随笔為你收集整理的hdfs为什么要用block以及block大小的设置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 算法(第四版) 2.1答案
- 下一篇: 在leveldb中,为什么要有immut