Hadoop 的分布式存儲(chǔ)是指 Hadoop Distributed File System(HDFS),它是 Hadoop 的核心組件之一。HDFS 是一個(gè)可靠、可擴(kuò)展的分布式文件系統(tǒng),專(zhuān)為存儲(chǔ)和處理大規(guī)模數(shù)據(jù)而設(shè)計(jì)。
HDFS 的特點(diǎn)和工作原理如下:
數(shù)據(jù)切片: HDFS 將要存儲(chǔ)的數(shù)據(jù)切分成多個(gè)數(shù)據(jù)塊(block),通常默認(rèn)大小為 128MB(可配置),并以塊的形式進(jìn)行存儲(chǔ)。這些塊被分散存儲(chǔ)在集群中的多個(gè)數(shù)據(jù)節(jié)點(diǎn)(DataNode)上。
冗余備份: HDFS 通過(guò)創(chuàng)建數(shù)據(jù)塊的多個(gè)副本來(lái)實(shí)現(xiàn)冗余備份機(jī)制。每個(gè)數(shù)據(jù)塊的默認(rèn)副本數(shù)是 3(可配置),這些副本被存儲(chǔ)在不同的數(shù)據(jù)節(jié)點(diǎn)上,以提供容錯(cuò)性和高可用性。如果某個(gè)數(shù)據(jù)節(jié)點(diǎn)發(fā)生故障,數(shù)據(jù)仍然可以從其他副本中讀取。
分布式存儲(chǔ): HDFS 的數(shù)據(jù)存儲(chǔ)是分布式的,意味著數(shù)據(jù)被分散存儲(chǔ)在整個(gè)集群的數(shù)據(jù)節(jié)點(diǎn)上。這種分布式存儲(chǔ)方式允許數(shù)據(jù)能夠并行讀寫(xiě),從而提高了數(shù)據(jù)的訪(fǎng)問(wèn)速度和吞吐量。
命名空間和元數(shù)據(jù): HDFS 使用 NameNode 來(lái)管理文件系統(tǒng)的命名空間和元數(shù)據(jù)。NameNode 負(fù)責(zé)記錄文件和目錄的層次結(jié)構(gòu),以及數(shù)據(jù)塊的位置信息。它保存了整個(gè)文件系統(tǒng)的元數(shù)據(jù),包括文件、目錄、權(quán)限和副本信息等。
故障檢測(cè)和自動(dòng)恢復(fù): HDFS 具有故障檢測(cè)和自動(dòng)恢復(fù)機(jī)制。NameNode 定期與數(shù)據(jù)節(jié)點(diǎn)進(jìn)行心跳通信,以監(jiān)測(cè)節(jié)點(diǎn)的狀態(tài)。如果某個(gè)數(shù)據(jù)節(jié)點(diǎn)無(wú)法與 NameNode 保持聯(lián)系,NameNode 將標(biāo)記該節(jié)點(diǎn)為故障節(jié)點(diǎn),并從其他副本中選擇新的數(shù)據(jù)節(jié)點(diǎn)進(jìn)行數(shù)據(jù)恢復(fù)。
通過(guò)以上機(jī)制,HDFS 提供了高度可靠和可擴(kuò)展的分布式存儲(chǔ),適合用于存儲(chǔ)大規(guī)模的結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)。它被廣泛應(yīng)用于 Hadoop 生態(tài)系統(tǒng)中的各種大數(shù)據(jù)處理任務(wù),如批處理、流處理、機(jī)器學(xué)習(xí)等。