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