2016-10-02 130 views

回答

1

HDFS的塊大小非常巨大以儘量減少查找時間。最佳塊大小取決於平均文件大小,查找時間和傳輸速率。

磁盤越快,數據塊越大,但有一個限制。

要利用數據局部性分割具有相同大小的數據塊,因爲我們爲每個分割開始一個線程,太大的塊會減少並行性。 所以最好的是:

  1. 保持尋道時間低。 ( - >在快速磁盤上增加塊大小)
  2. 保持分割不能太低。 ( - >減少塊大小)
  3. 利用數據局部性。 ( - >保持分割大小與塊大小接近)

128MB是當今磁盤速度和大小以及計算性能的不錯選擇。

+0

我想,應該有適當的理由。 我在Deloitte採訪中遇到過這個問題。 –

+0

https://community.hortonworks.com/questions/16278/best-practises-beetwen-size-block-size-file-and-re.html – ozw1z5rd

2

增加塊大小有一些原因。如果您正在管理大型Hadoop數據集的peta字節,它可以提高性能。

如果你正在管理的1地圖字節集羣,64 MB塊大小的結果爲15+百萬塊,其是很難的Namenode有效地管理。

在執行MapReduce的過程中,擁有大量的塊也會導致大量的映射器。

根據您的數據要求,你可以微調dfs.blocksize

通過正確設置你的塊大小(64MB或128 MB或256 MB或512 MB),你可以acheive

  1. Namenode性能的提高
  2. 由於映射器的數量直接取決於塊大小,所以Map reduce作業的性能有所提高。

有關更多詳細信息,請參閱此link

+0

謝謝你的回答。 如果是這種情況,那麼爲什麼Hadoop 1.x中的默認塊大小不是128MB? –