HDFS Architecture 翻譯和理解

HDFS官方文檔鏈接

  1. 硬件故障的容錯,在軟件層面cover硬件故障。
  2. 流式數(shù)據(jù)讀取,數(shù)據(jù)的訪問是順序的,對數(shù)據(jù)跳轉訪問支持不友好。
  3. 數(shù)據(jù)集巨大,以TB為單位。
  4. 數(shù)據(jù)一致性模型:寫僅支持append和truncate,不支持update。
  5. hdfs使用時,傾向于在靠近hdfs的集群創(chuàng)建application,原因是hdfs數(shù)據(jù)量巨大,數(shù)據(jù)的傳輸成本高。
  6. NameNode采用master/slave機制,避免數(shù)據(jù)丟失。
  7. DataNode中,同一個文件會有多個副本(可配置)。面臨的問題是:副本在同機房時如果機房發(fā)生意外,數(shù)據(jù)會丟失。副本不在同一機房時,寫數(shù)據(jù)會高度依賴機房間的帶寬。針對3個副本的優(yōu)化是,2個副本在同一個機房的不同DataNode上,1個副本在不同機房的DataNode上。
  8. 數(shù)據(jù)讀取優(yōu)化,選擇離application最近的機房讀取副本數(shù)據(jù)。
  9. NameNode的safemode:Namenode啟動時進入safemode,對每個DataNode通過BlockReport獲取其存儲的數(shù)據(jù)塊的信息,對所有數(shù)據(jù)塊的副本數(shù)進行比較,如果副本數(shù)小于指定的百分比,那么先進行數(shù)據(jù)庫的復制,直到所有數(shù)據(jù)塊的副本數(shù)都滿足配置的百分比,退出safemode,開始提供服務。
  10. NameNode中MetaData的持久化。EditLog存儲每一個客戶端發(fā)送的修改,F(xiàn)sImage存儲NameNode內(nèi)存中的全量數(shù)據(jù)。重啟或者達到觸發(fā)條件時,NameNode會從磁盤中加載FsImage和EditLog,更新內(nèi)存中的數(shù)據(jù)并生成新的FsImage和清空舊的EditLog。觸發(fā)條件通常是時間間隔或累計修改記錄數(shù)量。PS:對應redis的RDB+AOF。Q:觸發(fā)數(shù)據(jù)合并時,如何處理新的寫入請求?保留舊的FsImage和EditeLog,fork新進程來創(chuàng)建FsImage,對于新的寫入請求,寫入舊的EditLog的同時也寫入新創(chuàng)建的EditLog,如果新的FsImage未創(chuàng)建完成就宕機,那么從舊的FsImage和EditLog中恢復數(shù)據(jù)。如果FsImage創(chuàng)建成功,刪除舊的FsImage和EditLog。
  11. NameNode只接受客戶端和DataNode的RPC請求,不主動推送任何請求。
  12. NameNode通過HeartBeat來確定DataNode是否有效,通常間隔是10min,當DataNode被判定無效時,DataNode將不會被分配讀寫并會、觸發(fā)其上面DataBlock的復制,確保每個DataBlock的副本數(shù)達到最低限度。這也是為什么心跳間隔時間不能太短,太短容易觸發(fā)大規(guī)模的副本復制。
  13. 集群的負載均衡?集群中的DataNode檢測到磁盤容量低于閾值時,將其上面的DataBlock拷貝到別的DataNode中。
  14. DataBlock的數(shù)據(jù)一致性,client寫數(shù)據(jù)同時會針對每個DataBlock計算checksum并存儲到NameNode中,讀數(shù)據(jù)時校驗checksum,如果不同則說明數(shù)據(jù)異常。
  15. MetaData數(shù)據(jù)的一致性,同時寫多個FsImage和EditLog?有用嗎?
  16. DataBlock數(shù)據(jù)的寫?一、client向NameNode發(fā)送寫請求,NameNode回復可寫的DataNodeList。二、client向第一個DataNode寫數(shù)據(jù)并告知DataNodeList信息。三、第一個DataNode寫數(shù)據(jù)并且告知下一個DataNode寫數(shù)據(jù)和DataNodeList。
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容