【问题】HDFS中块(block)的大小为什么设置为128M?
生活随笔
收集整理的這篇文章主要介紹了
【问题】HDFS中块(block)的大小为什么设置为128M?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、為什么HDFS中塊(block)不能設置太大,也不能設置太小?
如果塊設置過大,
一方面,從磁盤傳輸數據的時間會明顯大于尋址時間,導致程序在處理這塊數據時,變得非常慢;
另一方面,mapreduce中的map任務通常一次只處理一個塊中的數據,如果塊過大運行速度也會很慢。
如果塊設置過小,
一方面存放大量小文件會占用NameNode中大量內存來存儲元數據,而NameNode的內存是有限的,不可取;
另一方面文件塊過小,尋址時間增大,導致程序一直在找block的開始位置。
因而,塊適當設置大一些,減少尋址時間,那么傳輸一個由多個塊組成的文件的時間主要取決于磁盤的傳輸速率。
二、 HDFS中塊(block)的大小為什么設置為128M?
HDFS中平均尋址時間大概為10ms;
經過前人的大量測試發現,尋址時間為傳輸時間的1%時,為最佳狀態;
所以最佳傳輸時間為10ms/0.01=1000ms=1s
目前磁盤的傳輸速率普遍為100MB/s;
計算出最佳block大小:100MB/s x 1s = 100MB
所以我們設定block大小為128MB。
ps:實際在工業生產中,磁盤傳輸速率為200MB/s時,一般設定block大小為256MB磁盤傳輸速率為400MB/s時,一般設定block大小為512MB
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的【问题】HDFS中块(block)的大小为什么设置为128M?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【问题】将数据块存储大小设置为128M,
- 下一篇: 【收藏】HBase集成Phoenix实现