大數(shù)據(jù) Hadoop 學(xué)習(xí)筆記 04

簡(jiǎn)介:
HDFS 集群有兩類(lèi)節(jié)點(diǎn),一個(gè)是 NameNode (管理者)和多個(gè) DataNode(工作者)。

DataNode 是文件系統(tǒng)的打工仔,聽(tīng)從客戶(client)或者管理者(Namenode)的安排,還要定期向管理者反饋工作進(jìn)展(所存儲(chǔ)的塊列表)。

目錄:
一、 DataNode 的工作職責(zé)以及流程
二、 相關(guān)面試題
?
?
正文:
接著上一篇,聊聊 DataNode 這個(gè)"打工仔"。首先得搞清楚 DataNode 是什么地干活?職責(zé)如下。

  • 1、提供真實(shí)文件數(shù)據(jù)的存儲(chǔ)服務(wù);
  • 2、定期向 NameNode 匯報(bào)自身所持有的 block 信息(通過(guò)心跳信息上報(bào));
心跳信息上報(bào)
  • 3、文件塊(block):最基本的存儲(chǔ)單位。

塊的大小可以通過(guò)配置參數(shù)( dfs.blocksize)來(lái)規(guī)定,默認(rèn)大小在 hadoop2.x 版本中是 128 M,之前的版本中是 64 M。
一般來(lái)說(shuō),一個(gè)文件的長(zhǎng)度 大小是 size,從文件的 0 偏移開(kāi)始,按照固定大小以及順序?qū)ξ募M(jìn)行劃分并編號(hào)。也就是所謂的 Block(塊)。
block 大小在 hdfs-site.xml 文件中可以配置, dfs.block.size可以設(shè)置。

  • 4、每一個(gè) block 都可以在多個(gè) datanode 上存儲(chǔ)多個(gè)副本(Replication)(副本數(shù)量也可以通過(guò)參數(shù)設(shè)置 dfs.replication,默認(rèn)是 3 )

hdfs-site.xml 的 dfs.replication 屬性

屬性

舉個(gè)例子:
假如上傳一個(gè) 256 MB 的文件,會(huì)被切割成 256 / 128 = 2 塊,一個(gè) block 對(duì)應(yīng)一個(gè) meta 元數(shù)據(jù)信息;如果文件為不足 128 MB 也是一個(gè) block。

若一個(gè)文件為 129 MB,那么會(huì)被分成兩個(gè) block ,第一個(gè) block 為 128 MB ,第二個(gè) block 為 1 MB。

進(jìn)入hdfs 存儲(chǔ)位置

[hadoop1@h1 subdir0]$ pwd
 /home/hadoop1/app/hadoop-2.9.2/data/dfs/data/current/BP-1932602083-192.168.223.10-1575093118671/current/finalized/subdir0/subdir0
[hadoop1@h1 subdir0]$

注釋?zhuān)築P-random integer-NameNode-IP address-creation time(格式)

BP(BlockPool) Namenode 的 VERSION 中的集群唯一 blockpoolID ,可以理解為集群的位置。IP部分和時(shí)間戳代表創(chuàng)建該 BP 的 NameNode 的 IP 地址和創(chuàng)建時(shí)間戳。

在 hdfs 文件系統(tǒng)里,有個(gè)文件大小為 186.0 M,按照以上的分割規(guī)則 jdk-8u212-linux-x64.tar.gz 會(huì)被分割成兩塊,第一塊為 128 MB,第二塊為 186 -128 = 58 MB

[hadoop1@h1 subdir0]$ hadoop fs -ls -h hdfs://h1:9000/
 Found 1 items
-rw-r--r--   2 hadoop1 supergroup    186.0 M 2019-12-05 09:43 hdfs://h1:9000/jdk-8u212-linux-x64.tar.gz
 [hadoop1@h1 subdir0]$

執(zhí)行 ll -h 查看命令

[hadoop1@h1 subdir0]$ ll -h
total 188M
-rw-rw-r--. 1 hadoop1 hadoop1 128M Dec  5 09:43 blk_1073741856
-rw-rw-r--. 1 hadoop1 hadoop1 1.1M Dec  5 09:43 blk_1073741856_1032.meta
-rw-rw-r--. 1 hadoop1 hadoop1  58M Dec  5 09:43 blk_1073741857
-rw-rw-r--. 1 hadoop1 hadoop1 464K Dec  5 09:43 blk_1073741857_1033.meta
[hadoop1@h1 subdir0]$

如上圖所示,blk_1073741856 為第一塊存儲(chǔ)塊 128 MB;blk_1073741857 為第二塊存儲(chǔ)塊 58 MB。

試驗(yàn)證明了書(shū)上的理論沒(méi)有騙人,至于 .meta 結(jié)尾的文件包含了 checksum (校驗(yàn))信息。

留個(gè)面試題:
我們知道 HDFS 會(huì)在 DataNode 保留副本(默認(rèn)是 3 塊),那么假如其中的一塊數(shù)據(jù)塊損壞了該如何處置?

微信搜索公眾號(hào)「一起學(xué)大數(shù)據(jù)呀」,里面有更多學(xué)習(xí)資料

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容