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

作者 | 曹世宏
接著上篇- HDFS技術原理(上)
HDFS體系結構
HDFS體系結構概述:
HDFS采用了主從(Master/Slave)結構模型,一個HDFS集群包括一個名稱節(jié)點(NameNode)和若干個數據節(jié)點(DataNode)。名稱節(jié)點作為中心服務器,負責管理文件系統(tǒng)的命名空間及客戶端對文件的訪問。集群中的數據節(jié)點一般是一個節(jié)點運行一個數據節(jié)點進程,負責處理文件系統(tǒng)客戶端的讀/寫請求,在名稱節(jié)點的統(tǒng)一調度下進行數據塊的創(chuàng)建、刪除和復制等操作。每個數據節(jié)點的數據實際上是保存在本地Linux文件系統(tǒng)中的。
HDFS命名空間管理:
HDFS的命名空間包含目錄、文件和塊。 在HDFS1.0體系結構中,在整個HDFS集群中只有一個命名空間,并且只有唯一一個名稱節(jié)點,該節(jié)點負責對這個命名空間進行管理。 HDFS使用的是傳統(tǒng)的分級文件體系,因此,用戶可以像使用普通文件系統(tǒng)一樣,創(chuàng)建、刪除目錄和文件,在目錄間轉移文件,重命名文件等。
通信協(xié)議:
HDFS是一個部署在集群上的分布式文件系統(tǒng),因此,很多數據需要通過網絡進行傳輸。 所有的HDFS通信協(xié)議都是構建在TCP/IP協(xié)議基礎之上的。 客戶端通過一個可配置的端口向名稱節(jié)點主動發(fā)起TCP連接,并使用客戶端協(xié)議與名稱節(jié)點進行交互。 名稱節(jié)點和數據節(jié)點之間則使用數據節(jié)點協(xié)議進行交互。 客戶端與數據節(jié)點的交互是通過RPC(Remote Procedure Call)來實現的。在設計上,名稱節(jié)點不會主動發(fā)起RPC,而是響應來自客戶端和數據節(jié)點的RPC請求。
客戶端:
客戶端是用戶操作HDFS最常用的方式,HDFS在部署時都提供了客戶端。 HDFS客戶端是一個庫,暴露了HDFS文件系統(tǒng)接口,這些接口隱藏了HDFS實現中的大部分復雜性。 嚴格來說,客戶端并不算是HDFS的一部分。 客戶端可以支持打開、讀取、寫入等常見的操作,并且提供了類似Shell的命令行方式來訪問HDFS中的數據。 此外,HDFS也提供了Java API,作為應用程序訪問文件系統(tǒng)的客戶端編程接口。
HDFS體系結構的局限性:
HDFS只設置唯一一個名稱節(jié)點,這樣做雖然大大簡化了系統(tǒng)設計,但也帶來了一些明顯的局限性,具體如下:
命名空間的限制:名稱節(jié)點是保存在內存中的,因此,名稱節(jié)點能夠容納的對象(文件、塊)的個數會受到內存空間大小的限制。 性能的瓶頸:整個分布式文件系統(tǒng)的吞吐量,受限于單個名稱節(jié)點的吞吐量。 隔離問題:由于集群中只有一個名稱節(jié)點,只有一個命名空間,因此,無法對不同應用程序進行隔離。 集群的可用性:一旦這個唯一的名稱節(jié)點發(fā)生故障,會導致整個集群變得不可用。
HDFS常用參數配置


HDFS常用維護命令

往期推薦
喜歡的這里報道
↘↘↘
評論
圖片
表情


