HDFS分布式存儲中NameNode 和DataNode 有什么區別?
隨著互聯網不斷得突飛猛進, 數據就逐漸演變為科技和經濟發展的核心 。更是 對于互聯網時代的人類和企業來說,是至關重要的,可能對于普通人來說沒有太大影響,但是對于國家和大型企業來說,數據就是其命脈,人工智能就是對數據海量化的最好證明之一。
所以,數據存儲的穩定在一定程度上就可以決定人類經濟的高度。
“但是, 許多人還沒有搞清楚個人電腦互聯網是什么,移動互聯網在這里,當我們還沒搞清楚移動互聯網的時候,大數據時代又來了, " 馬云在離任時說。大數據的應用已經進入了一個快速發展的時期,未來一種新的商業模式的出現有望帶來更大的發展。
由于以人工智能、5G 和物聯網為主導的新一輪信息技術革命,數據中心的迅速增長導致存儲產業鏈的需求大幅增加。在全球和中國數據存儲需求迅速增長的背后,必然伴隨著產業鏈的繁榮。
目前市場中,HDFS分布式存儲系統是很熱門的討論話題,各種企業也傾向于搭建分布式存儲系統。
那么,什么是HDFS 分布式存儲?
HDFS分布式存儲公鏈是一套完整的個人數據存儲解決方案,它由無數的節點以 p2p的形式組成一個數據存儲陣列,采用POC+POST的雙重共識機制來識別及分配獎勵,采用加密機制對數據傳輸及存儲過程進行保護形成一套安全、高效、經濟的個人數據存儲全套解決方案。
分布式存儲框架
分布式存儲技術的實現,往往離不開底層的分布式存儲框架。根據其存儲的類型,可分為塊存儲,對象存儲和文件存儲。在主流的分布式存儲技術中,HDFS 屬于文件存儲,Swift 屬于對象存儲,而Ceph 可支持塊存儲、對象存儲和文件存儲,故稱為統一存儲。
HDFS 是Hadoop 核心組成之一,是分布式計算中數據存儲管理的基礎,被設計成適合運行在通用硬件上的分布式文件系統。
HDFS 的功能模塊
(1) Client
Client 是用戶與HDFS 交互的手段,當文件上傳 HDFS 的時候,Client 將文件切分成一個一個的 Block ,然后進行上傳;Client通過與NameNode 交互,來獲取文件的位置信息;與 DataNode 交互,讀取或者寫入數據;Client 還可以提供NameNode 格式化等一些命令來管理HDFS ;同時,Client 可以通過對HDFS 的增刪改查等操作來訪問HDFS 。
(2) NameNode
NameNode 就是HDFS 的Master 架構,它維護著文件系統樹及整棵樹內所有的文件和目錄,HDFS 文件系統中處理客服端讀寫請求、管理數據塊(Block )的映射信息、配置副本策略等管理工作由NameNode 來完成。
(3) DataNode
NameNode 下達命令,DataNode 執行實際操作。DataNode 表示實際存儲的數據塊,同時可以執行數據塊的讀寫操作。
(4) Secondary NameNode
Secondary NameNode 的功能主要是輔助NameNode ,分擔其工作量;在緊急情況下可以輔助恢復NameNode ,但是它不能替換NameNode 并提供服務。
HDFS 的優勢
- 容錯性:數據自動保存多個副本。通過增加副本的形式,提高容錯性。其中一個副本丟失以后,可以自動恢復。
- 可以處理大數據:能夠處理數據規模達到GB 、TB 甚至PB 級別的數據;能夠處理百萬規模以上的文件數量。
- 可以構建在廉價的機器上,通過多副本機制,提高可靠性。
HDFS 的特點
- 故障檢測和恢復 – 由于 HDFS 包含大量產品硬件,組件故障頻繁。因此, HDFS 應具有快速自動故障檢測和恢復的機制。
- 數據集的管理 – HDFS 每個群集都有數百個節點來管理具有大型數據集的應用程序。
- 數據硬件處理 – 當計算在數據物理附近時,可以高效地完成請求的任務。特別是在涉及大量數據集時,它減少了網絡流量并提高了吞吐量。
HDFS 的功能
- 數據的分布式存儲和處理。
- Hadoop 提供了一個命令接口來與 HDFS 進行交互。
- namenode 和 datanode 的內置服務器可幫助用戶輕松檢查群集的狀態。
- 對文件系統數據的流式處理訪問。
- HDFS 提供文件權限和身份驗證。
HDFS的架構
下面給出的是 Hadoop 文件系統的體系結構:
HDFS 的元素:
(1) Namenod
Namenode 是包含 GNU/Linux 操作系統的產品硬件。它是一種可以在產品硬件上運行的軟件。具有 Namenode 的系統充當主服務器,并執行以下任務。
- 管理文件系統命名空間
- 調節客戶端對文件的訪問
- 執行文件系統操作,如重命名、關閉和打開文件和目錄。
(2) Datanode
Datanode 是具有 GNU/Linux 操作系統和數據內核軟件的產品硬件。對于 cluster (群集)中的每個產品硬件 / 系統,都將有一個數據節點,這些節點管理其系統的數據存儲。
根據客戶端請求在文件系統上執行讀寫操作。
根據 namenode 的說明執行塊創建、刪除和復制等操作。
(3) Block
通常,用戶數據存儲在 HDFS 的文件中。文件系統中的文件將分為一個或多個片段存儲在單個數據節點中。這些文件段稱為block 。換句話說, HDFS 可以讀取或寫入的最小數據量稱為 block 。默認塊大小為 64MB ,可以根據 HDFS 配置進行更改。