hadoop /etc/Hadoop/slaves文件解析【轉】


slaves文件里面記錄的是集群里所有DataNode的主機名,到底它是怎么作用的呢?slaves文件只作用在NameNode上面,比如我在slaves里面配置了
host1
host2
host3
三台機器,這時候如果突然間新增了一台機器,比如是host4,會發現在NN上host4也自動加入到集群里面了,HDFS的磁盤容量上來了,這下子不是出問題了?假如host4不是集群的機器,是別人的機器,然后配置的時候指向了NN,這時候NN沒有做判斷豈不是把數據也有可能寫到host4上面?這對數據安全性影響很大。所以可以在hdfs-site.xml里面加限制。

dfs.hosts
/home/hadoop-2.0.0-cdh4.5.0/etc/hadoop/slaves
這相當於是一份對於DN的白名單,只有在白名單里面的主機才能被NN識別。配置了這個之后,就能排除阿貓阿狗的DN了。其實slaves文件里不一定要寫主機名,最終的都是通過IP來判斷,完全可以寫一個IP就行。

我還嘗試了配置了上面的dfs.hosts項之后,然后在slaves刪除一個節點,然后
$ hadoop-daemon.sh stop namenode
$ hadoop-daemon.sh start namenode
這時候NN就拒絕了那個被刪除了的DN數據,而NN會自動把DN上丟失的數據重新備份,通過其他的備份來copy,這里是很智能的過程。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM