HDFS技術原理(下)-總結太全面了!!!

作者 | 曹世宏

來源 | http://r6a.cn/b5pep

接着上篇- HDFS技術原理(上)

HDFS體系結構

HDFS體系結構概述:

HDFS採用了主從(Master/Slave)結構模型,一個HDFS集羣包括一個名稱節點(NameNode)和若干個數據節點(DataNode)。名稱節點作爲中心服務器,負責管理文件系統的命名空間及客戶端對文件的訪問。集羣中的數據節點一般是一個節點運行一個數據節點進程,負責處理文件系統客戶端的讀/寫請求,在名稱節點的統一調度下進行數據塊的創建、刪除和複製等操作。每個數據節點的數據實際上是保存在本地Linux文件系統中的。

HDFS命名空間管理:

  • HDFS的命名空間包含目錄、文件和塊。
  • 在HDFS1.0體系結構中,在整個HDFS集羣中只有一個命名空間,並且只有唯一一個名稱節點,該節點負責對這個命名空間進行管理。
  • HDFS使用的是傳統的分級文件體系,因此,用戶可以像使用普通文件系統一樣,創建、刪除目錄和文件,在目錄間轉移文件,重命名文件等。

通信協議:

  • HDFS是一個部署在集羣上的分佈式文件系統,因此,很多數據需要通過網絡進行傳輸。
  • 所有的HDFS通信協議都是構建在TCP/IP協議基礎之上的。
  • 客戶端通過一個可配置的端口向名稱節點主動發起TCP連接,並使用客戶端協議與名稱節點進行交互。
  • 名稱節點和數據節點之間則使用數據節點協議進行交互。
  • 客戶端與數據節點的交互是通過RPC(Remote Procedure Call)來實現的。在設計上,名稱節點不會主動發起RPC,而是響應來自客戶端和數據節點的RPC請求。

客戶端:

  • 客戶端是用戶操作HDFS最常用的方式,HDFS在部署時都提供了客戶端。
  • HDFS客戶端是一個庫,暴露了HDFS文件系統接口,這些接口隱藏了HDFS實現中的大部分複雜性。
  • 嚴格來說,客戶端並不算是HDFS的一部分。
  • 客戶端可以支持打開、讀取、寫入等常見的操作,並且提供了類似Shell的命令行方式來訪問HDFS中的數據。
  • 此外,HDFS也提供了Java API,作爲應用程序訪問文件系統的客戶端編程接口。

HDFS體系結構的侷限性:

HDFS只設置唯一一個名稱節點,這樣做雖然大大簡化了系統設計,但也帶來了一些明顯的侷限性,具體如下:

  1. 命名空間的限制:名稱節點是保存在內存中的,因此,名稱節點能夠容納的對象(文件、塊)的個數會受到內存空間大小的限制。
  2. 性能的瓶頸:整個分佈式文件系統的吞吐量,受限於單個名稱節點的吞吐量。
  3. 隔離問題:由於集羣中只有一個名稱節點,只有一個命名空間,因此,無法對不同應用程序進行隔離。
  4. 集羣的可用性:一旦這個唯一的名稱節點發生故障,會導致整個集羣變得不可用。

HDFS常用參數配置

用低代碼平臺開發比用IDEA還牛逼嗎?

HDFS常用維護命令

用了這麼多年的 Postman,竟然用錯了~

往期推薦

用低代碼平臺開發比用IDEA還牛逼嗎?

開源一個SpringBoot + Mybatis + Vue的代碼生成器

IntelliJ IDEA 2021.1正式發佈!快來看看又有哪些神仙功能加入!

阿里巴巴壟斷案結果來了,罰182.28億!阿里迴應:誠懇接受,堅決服從!

Token多平臺身份認證架構設計思路


如果你喜歡本文,歡迎關注我,訂閱更多精彩內容
關注我回復「加羣」,加入Spring技術交流羣

免費領取:SQL基礎知識

喜歡的這裏報道

↘↘↘

本文分享自微信公衆號 - 程序猿DD(didispace)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章