這篇文章給大家分享的是有關(guān)HDFS中DN存儲有什么用的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
土默特右旗網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項目制作,到程序開發(fā),運營維護(hù)。創(chuàng)新互聯(lián)建站于2013年成立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
1、DN的作用:以塊的形式,來存儲真實數(shù)據(jù),128M為切塊單位 切塊之后的數(shù)據(jù)分為2部分: --數(shù)據(jù)本身(即真實數(shù)據(jù)) --元數(shù)據(jù)(對數(shù)據(jù)塊的長度、校驗和、時間戳等描述信息) 2、DN中塊的存儲位置:/opt/module/hadoop-3.1.3/data/data/current/BP-1901013597-192.168.202.103-1600767106029/current/finalized/subdir0/subdir0 -rw-rw-r--. 1 swk swk 60 9月 22 17:45 blk_1073741837 --數(shù)據(jù)本身 -rw-rw-r--. 1 swk swk 11 9月 22 17:45 blk_1073741837_1013.meta --元數(shù)據(jù) -rw-rw-r--. 1 swk swk 330 9月 22 17:49 blk_1073741839 -rw-rw-r--. 1 swk swk 11 9月 22 17:49 blk_1073741839_1015.meta
1、當(dāng)HDFS系統(tǒng)啟動成功之后,DN向NN進(jìn)行注冊(內(nèi)部發(fā)起通信),告知NN自身節(jié)點的位置和狀態(tài) 2、NN獲取到各DN的節(jié)點信息后,反饋給DN響應(yīng)信息,表示注冊成功 3、之后,(Hadoop中設(shè)置)周期性(每隔1小時)就向NN上報一次當(dāng)前節(jié)點內(nèi)所有塊的信息 4、心跳每3秒一次,NN響應(yīng)一次信息給DN,心跳內(nèi)容(NN給DN的指令,比如cp,rm,ls等DN塊信息) 5、HDFS默認(rèn)超時時間:NN如果超過10分鐘(10分30秒)沒有收到DN的上報,則NN認(rèn)為該節(jié)點出現(xiàn)故障(不可用) --可能存在網(wǎng)絡(luò)原因--看3
此段時間的計算公式是: timeout = 2 * heartbeat.recheck.interval + 10 * dfs.heartbeat.interval hdfs-site.xml --默認(rèn)的heartbeat.recheck-interval大小為5分鐘,dfs.heartbeat.interval默認(rèn)的大小為3秒 <property> <name>dfs.heartbeat.interval</name> --心跳時間3秒 <value>3s</value> </property> <property> <name>dfs.namenode.heartbeat.recheck-interval</name> <value>300000</value> --5分鐘 </property>
--隨著公司業(yè)務(wù)的增長,數(shù)據(jù)量越來越大,原有的數(shù)據(jù)節(jié)點的容量已經(jīng)不能滿足存儲數(shù)據(jù)的需求,需要在原有集群基礎(chǔ)上動態(tài)添加新的數(shù)據(jù)節(jié)點。 --注意:啟動新節(jié)點,不需要去配置群起群停workers文件,當(dāng)需要將新增節(jié)點也可群起群停時,要去將新增節(jié)點添加到workers文件中,并分發(fā) 新節(jié)點克隆: 1、在Hadoop104主機上再克隆一臺Hadoop105主機 2、修改IP地址和主機名稱 vim /etc/sysconfig/network-scripts/ifcfg-ens33 vim /etc/hostname --hadoop105 3、刪除hadoop105服務(wù)節(jié)點下的data和logs rm -rf /opt/module/hadoop-3.1.3/data /opt/module/hadoop-3.1.3/logs 4、source配置文件 source /etc/profile 5、啟動DataNode節(jié)點,直接關(guān)聯(lián)到集群 hdfs --daemon start datanode --web端可以看到新增節(jié)點直接加入集群 6、 yarn --daemon start nodemanager 7、如果數(shù)據(jù)不均衡,可以用命令實現(xiàn)集群的再平衡 sbin/start-balancer.sh
白名單:添加到白名單的主機節(jié)點,都允許訪問NameNode,不在白名單的主機節(jié)點,都會被直接退出 黑名單:添加到黑名單的主機節(jié)點,不允許訪問NameNode,會在數(shù)據(jù)遷移后退出 實際情況: --白名單用于確定允許訪問NameNode的DataNode節(jié)點,內(nèi)容配置一般與workers文件內(nèi)容一致。(工作中一定要配,防止黑客等) --黑名單用于在集群運行過程中退役DataNode節(jié)點。
具體配置: 1、在/opt/module/hadoop-3.1.3/etc/hadoop 目錄下,分別創(chuàng)建 whitelist 和 blacklist touch whitelist touch blacklist 2、在白名單(whitelist)中添加主機名稱 ,黑名單暫時為空 hadoop102 hadoop103 hadoop104 3、修改hdfs-site.xml文件 <!--配置白名單--> <property> <name>dfs.hosts</name> <value>/opt/module/hadoop-3.1.3/etc/hadoop/whitelist</value> </property> <!--配置黑名單--> <property> <name>dfs.hosts.exclude</name> <value>/opt/module/hadoop-3.1.3/etc/hadoop/blacklist</value> </property> 4、分發(fā)hdfs-site.xml文件 xsync hdfs-site.xml 5、重新啟動集群 --注意:新增節(jié)點hadoop105不在workers文件中配置,需要單獨啟動DN stop-dfs.sh start-dfs.sh 6、web端查看各DN節(jié)點
黑名單退役: --準(zhǔn)備退役hadoop105 1、編輯blacklist文件,添加hadoop105 vim blacklist hadoop105 2、刷新NN hdfs dfsadmin -refreshNodes 3、在web端查看DN狀態(tài),105正在退役中...進(jìn)行數(shù)據(jù)的遷移 4、更新yarn狀態(tài) yarn rmadmin -refreshNodes
白名單退役:(一般不使用白名單退役) 白名單退役會直接將節(jié)點拋棄(會殺掉dn進(jìn)程),沒有遷移數(shù)據(jù)的過程,會造成數(shù)據(jù)丟失 1、刪除blacklist的中的內(nèi)容,恢復(fù) 102 103 104 105 正常工作 2、修改whitelist,將105刪除,保留102 103 104 3、刷新NameNode 4、web端查看,發(fā)現(xiàn)105節(jié)點直接從集群列表中丟棄
DataNode也可以配置成多個目錄,每個目錄存儲的數(shù)據(jù)不一樣。即:數(shù)據(jù)不是副本 具體配置: 1、修改hdfs-site.xml <property> <name>dfs.datanode.data.dir</name> <value>file:///${hadoop.tmp.dir}/data1,file:///${hadoop.tmp.dir}/data2</value> </property> 2、停止集群,刪除data和logs中所有數(shù)據(jù) stop-dfs.sh 刪除3個節(jié)點服務(wù)器下的data和logs目錄 rm -rf data/ logs/ 3、格式化啟動集群 bin/hdfs namenode -format bin/start-dfs.sh 4、ll 查看結(jié)果
我們知道HDFS對于小文件的處理存在弊端,多個小文件會嚴(yán)重消耗NN的內(nèi)存,比如存儲一個1M的文件,實際是生成一個128M的塊進(jìn)行存儲,但實際存儲是1M的數(shù)據(jù)大小。
解決方案: hadoop引入Hadoop Archives(HAR files) --HAR:更高效的文檔存儲工具 --將多個小文件打包成一個HAR文件,這樣在減少namenode內(nèi)存使用的同時,仍然允許對文件進(jìn)行透明的訪問。 具體案例演示: --對一個目錄下的多個小文件進(jìn)行歸檔操作 1、啟動yarn進(jìn)程 --start-yarn.sh 2、把/input目錄里面的所有文件歸檔成一個叫input.har的歸檔文件,并把歸檔后文件存儲到/output路徑下 --hadoop archive -archiveName input.har -p /input /output 3、查看歸檔 --hadoop fs -lsr /output/input.har --hdfs dfs -lsr har:///output/input.har 4、解歸檔文件 hadoop fs -cp har:///output/input.har/* /
--開啟回收站功能,可以將刪除的文件在不超時的情況下,恢復(fù)原數(shù)據(jù),起到防止誤刪除、備份等作用
回收站功能參數(shù)設(shè)置: a、默認(rèn)值fs.trash.interval=0,0表示禁用回收站;其他值表示設(shè)置文件的存活時間。 b、默認(rèn)值fs.trash.checkpoint.interval=0,檢查回收站的間隔時間。如果該值為0,則該值設(shè)置和fs.trash .interval的參數(shù)值相等。 c、要求fs.trash.checkpoint.interval <= fs.trash.interval。 回收站具體設(shè)置步驟: 1、啟用回收站 配置core-site.xml 配置垃圾回收時間為1分鐘 <property> <name>fs.trash.interval</name> <value>1</value> </property> 2、查看回收站 回收站在集群中的路徑:.Trash/…. 3、修改訪問垃圾回收站用戶名稱 進(jìn)入垃圾回收站用戶名稱,默認(rèn)是dr.who,修改為luck用戶 core-site.xml <property> <name>hadoop.http.staticuser.user</name> <value>luck</value> </property> 4、通過程序刪除的文件不會經(jīng)過回收站,需要調(diào)用moveToTrash()才進(jìn)入回收站 Trash trash = New Trash(conf); trash.moveToTrash(path); 5、恢復(fù)回收站數(shù)據(jù) [luck@hadoop102 hadoop-3.1.3]$ hadoop fs -mv .Trash/Current/input /input 6、清空回收站 [luck@hadoop102 hadoop-3.1.3]$ hadoop fs -expunge 7、刪除數(shù)據(jù)不走回收站 Hadoop fs -rm -skipTrash /edits.xml
感謝各位的閱讀!關(guān)于“HDFS中DN存儲有什么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
網(wǎng)頁名稱:HDFS中DN存儲有什么用
文章來源:http://www.chinadenli.net/article28/jsiecp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、面包屑導(dǎo)航、網(wǎng)站設(shè)計、網(wǎng)站設(shè)計公司、Google、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)