HDFS簡介

文章包括如下內容:分佈式

1. Hadoop2簡介與Hadoop1區別oop

2. Hadoop2主要改進spa

3. HDFS概述blog

4. HDFS主要特性隊列

5. HDFS不適合的場景hadoop

6. HDFS體系結構部署

7. HDFS構成io

8. 數據塊集羣

9. 數據塊的好處cli

10. HDFS讀寫流程

 

---------------------------------------------------------------------------------

1. Hadoop2簡介與Hadoop1區別

                           

2. Hadoop2主要改進

  增長了4部份內容:YARN、NameNode HA、HDFS federation、Hadoop RPC序列化擴展性

3. HDFS概述

  HDFS是一個分佈式文件系統,具備高容錯的特色。它能夠部署在廉價的通用硬件上,提供高吞吐率的數據訪問,適合那些須要處理海量數據集的應用程序。

4. HDFS主要特性

  支持超大文件;

  檢測和快速應對硬件故障;

  流式數據訪問;

  簡化一致性模型。

5. HDFS不適合的場景

  低延遲數據訪問;

  大量的小文件;

  多用戶寫入文件,修改文件。

6. HDFS體系結構

 

7. HDFS構成

  NameNode上保存着HDFS的名字空間,DataNode將HDFS數據以文件的形式存儲在本地的文件系統中,它並不知道有關HDFS文件的信息,它把每一個HDFS數據塊存儲在本地文件系統的一個單獨的文件中。

8. 數據塊

  HDFS也有塊的概念,hadoop2中HDFS塊默認大小128MB,hadoop1中HDFS塊默認大小64MB,以Linux普通文件的形式保存在數據節點的文件系統中。數據塊是HDFS的文件存儲處理的單元。

9. 數據塊的好處

  HDFS能夠保存比存儲節點單一磁盤大的文件;

  簡化了存儲子系統,簡化了存儲管理,也消除了分佈式管理文件元數據的複雜性;

  方便容錯,有利於數據複製。

10. HDFS讀寫流程

讀流程

  首先,HDFS提供的客戶端(HDFS client)向遠程的NameNode發起RPC請求,而後NameNode會視狀況訪問文件部分或所有塊的位置(block location)。對於每一個block,NameNode都會返回有該block拷貝的DataNode地址,而後返回生成FSData InputStream,HDFS client再根據這個流進行數據的一個流的讀操做。客戶端會選取離其最近的DataNode來讀取block,若是客戶端自己就是DataNode,將從本地直接獲取數據,讀取完當前block數據後,關閉當前DataNode鏈接,併爲讀取下一個block尋找最佳的DataNode。當讀完列表的block後,其文件讀取尚未結束,客戶端會繼續向NameNode獲取下一批的block列表,當讀取完一個block,會進行校驗,若是讀取的DataNode出現錯誤,會從新訪問NameNode,而後從下一個擁有該block拷貝DataNode讀取。

寫流程

 

  HDFS客戶端向遠程的NameNode發起RPC請求,NameNode會檢查要建立的文件是否是存在,建立者是否有權限操做,成功,會爲文件建立一個記錄,不然,會讓客戶端拋出異常。當客戶端開始寫入文件的時候,文件會被分爲多個package,會放入隊列,這時候,FSDataOutputStream會向NameNode申請block,分清你要寫到哪些block裏,申請完之後,會支持一個寫的操做。由於HDFS有冗餘機制,固然這個冗餘機制能夠根據具體狀況設定,默認是3份。假設集羣冗餘是3份,它會首先寫入第一個DataNode,而後再寫第二個DataNode,再寫入第三個DataNode。若是寫入成功,則按原路徑返回給客戶端。若是中間某個DataNode出現了問題,這時候就會有一個最小不等數,若是咱們最小不等數設爲1,那麼我寫3個節點的數據只寫成功2個,那返回之後仍是會寫入HDFS,不過在後面會進行一個副本恢復,這就是一個寫的流程。

建立子路徑流程

  向HDFS增長新的路徑,只會和NameNode交互,在NameNode上追加新開闢的記錄,這就是HDFS建立路徑的流程,它不會和DataNode交互。

刪除數據流程

  刪除數據時,客戶端會和NameNode交互,它會有RPC告訴哪些數據要刪除,並在NameNode上作標記,等到DataNode對NameNode返回信號的時候,NameNode會指定DataNode刪除相應的block。

相關文章
相關標籤/搜索