檔案存入hdfs可以設定多個副本,這是為了安全的考慮。
但為什么要分塊呢?
開始我以為是為了并發讀取速度快,但hadoop權威指南上講,每個塊是按序讀取的,一個讀完,再讀下一個。那就不存在并發讀取的事了。
后來我猜想分塊目的應該是以下幾點
1.為了map和reduce計算方便,分塊后有了統一的計算單位;
2.大概就是設定一個資料保存的單位吧,就像windows的塊一樣;
我能想到的就是這些,不知對不對,大家認為呢?
uj5u.com熱心網友回復:
已關注,可以結貼了。嘿嘿uj5u.com熱心網友回復:
其實應該是為了提高讀取速度吧,因為如果不分塊的話,那很大一部分時間都浪費在了尋找檔案(尋址)上了,而不是用在資料傳輸上,得不償失嘛uj5u.com熱心網友回復:
回復樓上:分塊不會提高讀取速度,分"大"塊才會提高讀取速度。而如果不分塊,讀取速度只能是更快,因為直接一個檔案就讀取下來了,根本沒有多個塊的尋址時間耗費。
uj5u.com熱心網友回復:
我感覺是和 hdfs 的設計原則有關吧,hdfs 設計的原則是資料的尋址時間占傳輸時間的 1%,尋址時間一般是 10 ms,那么傳輸時間就是 1s,目前磁盤的傳輸速率普遍為 100MB / s,那么一個存盤單元就是 100M,近似為 128。塊大小可以根據磁盤的速率調整uj5u.com熱心網友回復:
hadoop權威指南的這段話,我也看了,但指南上說這只是“如果”,并不是原則
第二,你沒看懂我的意思
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/82661.html
標籤:分布式計算/Hadoop
上一篇:深圳推薦演算法
