圖文詳解 HDFS 組成框架

      網友投稿 999 2022-05-28

      HDFS是Google公司的 GFS論文 思想的實現,它由NameNode(名稱節點)、DataNode(數據節點)、SecondaryNameNode(第二名稱節點)組成。其中, NameNode 相當于論文中的 GFS Master , DataNode 相當于論文中的 GFS Chunk Server 。

      GFS?? 是一個可擴展的分布式文件系統設計思想,用于設計針對大型的、分布式的、對大量數據進行訪問的文件系統。

      一、 HDFS簡介

      HDFS是基于 流數據 訪問模式的 分布式文件系統 ,其設計建立在 “一次寫入、多次讀取” 的基礎上,提供高吞吐量、高容錯性的數據訪問,能很好地解決海量數據的存儲問題。

      流數據?? 是指數千個數據源 持續生成 的數據,可以理解為隨時間延續而 無限增長 的動態數據集合。

      通俗點說,如果把數據比如成一個水庫,那么流進去的水,就是流數據(就像我們聽的音樂,屬于音樂流;而看到的文字、圖片這些較為固定的,一次性下載的,形成不了流)。

      在Hadoop生態圈中,HDFS屬于底層基礎,負責存儲文件。

      ~(圖片來源于網絡)~

      HDFS的優點:

      高容錯性。提供了容錯和恢復機制,副本丟失后,自動恢復。

      高可靠性。數據自動保存多個副本,通過多副本提高可靠性。

      適合大數據處理??梢蕴幚沓笪募?,比如 TB級甚至PB級 的文件。

      適合批處理。移動計算而非移動數據;數據位置暴露給計算框架。

      支持流式數據訪問。一次性寫入,多次讀?。ㄒ粋€數據集一旦生成,就會被復制分發到不同的存儲節點,各節點可以進行讀取/訪問);保證數據一致性。

      低成本運行。可以運行在低成本的硬件之上。

      HDFS 默認保存 3 份副本。

      第一個副本:放置在 上傳文件 的數據節點(第一個副本如果是在 集群外 提交,則隨機挑選一個 CPU 比較空閑 、 磁盤不太滿 的節點);

      第二個副本:放置在與 第一個副本 不同 的機架的節點上;

      第三個副本:放在與 第二個副本 相同 的機架的其他節點上。

      HDFS的缺點:

      不適合處理 低延遲 的數據訪問。比如用戶 要求時間比較短 的低延遲應用(主要處理高數據吞吐量的應用)。

      不適合處理 大量的小 文件。會造成尋址時間超過讀取時間;會占用NameNode大量內存,因為NameNode把文件系統的元數據存放在內存中(文件系統的容量由NameNode的大小決定),小文件太多會消耗NameNode的內存。

      不適合 并發寫入。一個文件只能有一個寫入者,HDFS暫不支持多個用戶對同一個文件的寫操作。

      不適合 任意修改 文件。僅支持append(附加),不支持在文件的任意位置進行修改。

      二、 HDFS的組成與架構

      HDFS的組成架構圖及各部分功能如下所示:

      ~(圖片來源于網絡)~

      當用戶訪問數據文件時,為了保證能夠讀取到每一個數據塊, HDFS有一個專門 負責保存文件屬性信息的節點,這個節點就是 NameNode 節點(即 名稱節點 )。

      NameNode節點 是HDFS的管理者,負責保存和管理HDFS的元數據。

      其職責有以下三個方面:

      ① 管理維護HDFS的命名空間

      NameNode管理HDFS系統的命名空間,維護文件系統樹以及文件系統樹中所有文件的元數據。管理這些信息的的文件分別是 edits(操作日志文件) 和 fsimage(命名空間鏡像文件) 。

      editlog(操作日志):在NameNode啟動的情況下,對HDFS進行的各種操作進行記錄。(HDFS客戶端執行的所有操作都會被記錄到editlog文件中,這些文件由edits文件保存)

      fsimage:包含HDFS中的元信息(比如修改時間、訪問時間、數據塊信息等)。

      ② 管理DataNode上的數據塊

      負責管理數據塊上所有的元數據信息(管理DataNode上數據塊的均衡,維持副本數量)。

      ③ 接收客戶端的請求

      接收客戶端文件上傳、下載、創建目錄等的請求。

      HDFS首先把大文件切分成若干個小的數據塊,再把這些數據塊寫入不同的節點,這個 負責保存文件數據的節點就是 DataNode 節點(即 數據節點 )。

      DataNode節點 負責存儲數據,把Block(數據塊)以Linux文件的形式保存在磁盤上,并根據Block標識和字節范圍來讀寫塊數據。

      其職責有以下三個方面:

      ① 保存數據塊

      一個數據塊會在多個DataNode進行冗余備份(在某一個DataNode最多只有一個備份)。

      ② 負責客戶端對數據塊的IO請求

      在客戶端執行寫操作時,DataNode之間會相互通信,保證寫操作的一致性。

      ③ 定期和NameNode進行心跳通信,接受NameNode的指令

      如果NameNode節點10分鐘沒有收到DataNode的心跳信息,就會將其上的數據塊復制到其他DataNode節點。

      圖文詳解 HDFS 組成框架

      因此,NameNode節點上并不會永久保存DataNode節點上的數據塊信息,而是通過與DataNode節點心跳聯系的方式,來更新節點上的映射表,以此減輕負擔。

      問題:HDFS數據塊默認大小為128M(Hadoop2.2之前為64M),將HDFS的數據塊設置得很大的目的是什么?(傳統數據塊只有512個字節)

      答:為了減少尋址開銷,讓HDFS的文件傳輸時間由傳輸速率決定(如果塊設置得足夠大,從磁盤 傳輸數據的時間 會明顯大于 定位這個塊開始位置 所需的時間)。

      HDFS有一個定期創建命名空間的檢查點(CheckPoint)操作的節點,也就是SecondaryNameNode節點(即 第二名稱節點)。

      出于可靠性考慮,SecondaryNameNode節點與NameNode節點通常運行在不同的機器上,且SecondaryNameNode節點與NameNode節點的內存要一樣大。

      (如果想了解 SecondaryNameNode 的工作流程,可以參考這篇文章:淺析 SecondaryNameNode 的工作流程 )

      問題:一般情況下,一個集群中的SecondaryNameNode節點也是只有一個的原因是什么?

      答:因為如果多的話,會增加NameNode的壓力,使其忙于元數據的傳輸/接收、日志的傳輸/切換,從而導致性能下降;同時,NameNode節點也不支持做并發檢查點。

      SecondaryNameNode節點 定期把NameNode的 fsimage 和 edits 下載到本地,再將它們加載到內存并進行合并,最后把合并后新的 fsimage 返回NameNode (這個過程稱為檢查點)。

      經典問題:NameNode與SecondaryNameNode有沒有關系?

      SecondaryNameNode節點的工作流程可以參考這篇文章:

      其職責有以下兩個方面:

      ① 防止edits過大

      定期合并 fsimage 和 edits 文件,使 edits 大小保持在限制范圍內。這樣做減少了重新啟動NameNode時合并 fsimage 和 edits 耗費的時間,從而減少了NameNode啟動的時間。

      ② 做冷備份

      對一定范圍內數據做快照性備份,在NameNode失效時能恢復部分 fsimage 。

      好了,HDFS 及其組成框架介紹完成。

      如果想進一步了解 HDFS 的工作機制,可以參考這篇文章:圖文詳解 HDFS 工作機制及其原理 。

      Hadoop 分布式 大數據

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Java基礎之文件操作(IO流)
      下一篇:云計算是什么?華為云學院 帶你5分鐘了解云計算的前世今生!
      相關文章
      亚洲第一se情网站| 亚洲色av性色在线观无码| 亚洲一区二区三区亚瑟| 精品无码一区二区三区亚洲桃色| 亚洲电影中文字幕| 亚洲人成在线观看| 亚洲AV人无码综合在线观看| 亚洲AV日韩精品久久久久| 亚洲国产一区二区a毛片| 亚洲制服中文字幕第一区| 亚洲成AV人片在线观看无| 亚洲国产精品一区二区久久hs| 国产精品亚洲精品日韩已满| 国产精品亚洲A∨天堂不卡 | 亚洲真人无码永久在线观看| 中文字幕亚洲码在线| 亚洲性色精品一区二区在线| 亚洲国产精品成人午夜在线观看| 亚洲αⅴ无码乱码在线观看性色| 337P日本欧洲亚洲大胆精品| 亚洲国产精品国产自在在线| 相泽亚洲一区中文字幕| 亚洲国产第一站精品蜜芽| 在线观看亚洲一区二区| 亚洲区视频在线观看| 亚洲日韩精品国产3区| 国产亚洲综合视频| 中文字幕精品亚洲无线码一区应用| 亚洲国产三级在线观看| 少妇中文字幕乱码亚洲影视| 亚洲国产精品yw在线观看| 亚洲色大成网站www永久男同| 国产成人综合亚洲| 亚洲午夜久久久久久噜噜噜| 亚洲国产精品久久久久婷婷软件| 亚洲日韩中文字幕| 亚洲Aⅴ在线无码播放毛片一线天| 亚洲精品美女久久久久99小说| 亚洲老妈激情一区二区三区| 亚洲美女视频一区| 亚洲人成色99999在线观看|