您好,登錄后才能下訂單哦!
這篇文章主要講解了“Hadoop DataNode工作機(jī)制是怎樣的”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Hadoop DataNode工作機(jī)制是怎樣的”吧!
DataNode上數(shù)據(jù)塊以文件形式存儲(chǔ)在磁盤上,包括兩個(gè)文件,一個(gè)是數(shù)據(jù)本身,一個(gè)是數(shù)據(jù)塊元數(shù)據(jù)包括長度、校驗(yàn)、時(shí)間戳;
DataNode啟動(dòng)后向NameNode服務(wù)注冊,并周期性的向NameNode上報(bào)所有的數(shù)據(jù)塊元數(shù)據(jù)信息;
DataNode與NameNode之間存在心跳機(jī)制,每3秒一次,返回結(jié)果帶有NameNode給該DataNode的執(zhí)行命令,例如數(shù)據(jù)復(fù)制刪除等,如果超過10分鐘沒有收到DataNode的心跳,則認(rèn)為該節(jié)點(diǎn)不可用。
通過hdfs-site.xml配置文件,修改超時(shí)時(shí)長和心跳,其中中的heartbeat.recheck.interval的單位為毫秒,dfs.heartbeat.interval的單位為秒。
<property> <name>dfs.namenode.heartbeat.recheck-interval</name> <value>600000</value> </property> <property> <name>dfs.heartbeat.interval</name> <value>6</value> </property>
當(dāng)前機(jī)器的節(jié)點(diǎn)為hop01、hop02、hop03,在此基礎(chǔ)上新增節(jié)點(diǎn)hop04。
基本步驟
基于當(dāng)前一個(gè)服務(wù)節(jié)點(diǎn)克隆得到hop04環(huán)境;
修改Centos7相關(guān)基礎(chǔ)配置,并刪除data和log文件;
啟動(dòng)DataNode,即可關(guān)聯(lián)到集群;
該配置同步集群下服務(wù),格式化啟動(dòng)hdfs及yarn,上傳文件測試。
<property> <name>dfs.datanode.data.dir</name> <value>file:///${hadoop.tmp.dir}/dfs/data01,file:///${hadoop.tmp.dir}/dfs/data02</value> </property>
配置白名單,該配置分發(fā)到集群服務(wù)下;
[root@hop01 hadoop]# pwd /opt/hadoop2.7/etc/hadoop [root@hop01 hadoop]# vim dfs.hosts hop01 hop02 hop03
配置hdfs-site.xml,該配置分發(fā)到集群服務(wù)下;
<property> <name>dfs.hosts</name> <value>/opt/hadoop2.7/etc/hadoop/dfs.hosts</value> </property>
刷新NameNode
[root@hop01 hadoop2.7]# hdfs dfsadmin -refreshNodes
刷新ResourceManager
[root@hop01 hadoop2.7]# yarn rmadmin -refreshNodes
配置黑名單,該配置分發(fā)到集群服務(wù)下;
[root@hop01 hadoop]# pwd /opt/hadoop2.7/etc/hadoop [root@hop01 hadoop]# vim dfs.hosts.exclude hop04
配置hdfs-site.xml,該配置分發(fā)到集群服務(wù)下;
<property> <name>dfs.hosts.exclude</name> <value>/opt/hadoop2.7/etc/hadoop/dfs.hosts.exclude</value> </property>
刷新NameNode
[root@hop01 hadoop2.7]# hdfs dfsadmin -refreshNodes
刷新ResourceManager
[root@hop01 hadoop2.7]# yarn rmadmin -refreshNodes
HDFS存儲(chǔ)的特點(diǎn),適合海量數(shù)據(jù)的大文件,如果每個(gè)文件都很小,會(huì)產(chǎn)生大量的元數(shù)據(jù)信息,占用過多的內(nèi)存,并且在NaemNode和DataNode交互的時(shí)候變的緩慢。
HDFS可以對一些小的文件進(jìn)行歸檔存儲(chǔ),這里可以理解為壓縮存儲(chǔ),即減少NameNode的消耗,也較少交互的負(fù)擔(dān),同時(shí)還允許對歸檔的小文件訪問,提高整體的效率。
創(chuàng)建兩個(gè)目錄
# 存放小文件 [root@hop01 hadoop2.7]# hadoop fs -mkdir -p /hopdir/harinput # 存放歸檔文件 [root@hop01 hadoop2.7]# hadoop fs -mkdir -p /hopdir/haroutput
上傳測試文件
[root@hop01 hadoop2.7]# hadoop fs -moveFromLocal LICENSE.txt /hopdir/harinput [root@hop01 hadoop2.7]# hadoop fs -moveFromLocal README.txt /hopdir/harinput
歸檔操作
[root@hop01 hadoop2.7]# bin/hadoop archive -archiveName output.har -p /hopdir/harinput /hopdir/haroutput
查看歸檔文件
[root@hop01 hadoop2.7]# hadoop fs -lsr har:///hopdir/haroutput/output.har
這樣就可以把原來的那些小文件塊刪除即可。
解除歸檔文件
# 執(zhí)行解除 [root@hop01 hadoop2.7]# hadoop fs -cp har:///hopdir/haroutput/output.har/* /hopdir/haroutput # 查看文件 [root@hop01 hadoop2.7]# hadoop fs -ls /hopdir/haroutput
如果開啟回收站功能,被刪除的文件在指定的時(shí)間內(nèi),可以執(zhí)行恢復(fù)操作,防止數(shù)據(jù)被誤刪除情況。HDFS內(nèi)部的具體實(shí)現(xiàn)就是在NameNode中啟動(dòng)一個(gè)后臺(tái)線程Emptier,這個(gè)線程專門管理和監(jiān)控系統(tǒng)回收站下面的文件,對于放進(jìn)回收站的文件且超過生命周期,就會(huì)自動(dòng)刪除。
該配置需要同步到集群下的所有服務(wù);
[root@hop01 hadoop]# vim /opt/hadoop2.7/etc/hadoop/core-site.xml # 添加內(nèi)容 <property> <name>fs.trash.interval</name> <value>1</value> </property>
fs.trash.interval=0,表示禁用回收站機(jī)制,=1表示開啟。
感謝各位的閱讀,以上就是“Hadoop DataNode工作機(jī)制是怎樣的”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Hadoop DataNode工作機(jī)制是怎樣的這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。