1、What is HDFS?
HDFS(Hadoop Distributed File System),它是一個檔案系統,用於儲存檔案,通過目錄樹來定位檔案;其次,它是分散式的,由很多伺服器聯合起來實現其功能,叢集中的伺服器有各自的角色。
2、HDFS優\劣勢
優點:
1)高容錯性
(1)資料自動儲存多個副本。它通過增加副本的形式,提高容錯性。
(2)某一個副本丟失以後,它可以自動恢復。
2)適合處理大資料
(1)資料規模:能夠處理資料規模達到GB、TB、甚至PB級別的資料;
(2)檔案規模:能夠處理百萬規模以上的檔案數量,數量相當之大。
3)可構建在廉價機器上,通過多副本機制,提高可靠性。
缺點:
1)不適合低延時資料訪問,比如毫秒級的儲存資料,是做不到的。
2)無法高效的對大量小檔案進行儲存。
(1)儲存大量小檔案的話,它會佔用NameNode大量的記憶體來儲存檔案目錄和塊資訊。這樣是不可取的,因為NameNode的記憶體總是有限的;
(2)小檔案儲存的定址時間會超過讀取時間,它違反了HDFS的設計目標。
3)不支援併發寫入、檔案隨機修改
(1)一個檔案只能有一個寫,不允許多個執行緒同時寫;
(2)僅支援資料append(追加),不支援檔案的隨機修改。
3、Namenode主要職責
NameNode(nn):就是Master,它是一個主管、管理者。
(1)管理HDFS的名稱空間;
(2)配置副本策略;
(3)管理資料塊(Block)對映資訊;
(4)處理客戶端讀寫請求。
4、DataNode主要職責
DataNode:就是Slave。NameNode下達命令,DataNode執行實際的操作。
(1)儲存實際的資料塊;
(2)執行資料塊的讀/寫操作。
5、HDFS預設檔案塊大小及原因。
HDFS中的檔案在物理上是分塊儲存(Block),塊的大小可以通過配置引數來規定,預設大小在Hadoop2.x版本中是128M,老版本中是64M。
原因:目前磁碟的傳輸速率普遍為100MB/s,定址時間為傳輸時間的1%時,為最佳狀態。定址時間一般為10ms,傳輸時間=10ms/0.01=1s,block大小=1s*100MB/s=100MB,所以最佳的block大小為100MB,設定block大小為128MB傳輸為二進位制時比較方便,而且也不會佔用整個塊的空間