Hadoop動態增加節點與刪除節點


   Hadoop的全分布式安裝網上也很多教程,踩過很多坑,整理不出來了……趕緊把增加刪除節點留住。

均衡數據

(1)設置數據傳輸帶寬為64M(默認值比較低)

  hdfs dfsadmin -setBalancerBandwidth 67108864

(2)平衡數據,默認balancer的threshold為10%,即各個節點存儲使用率偏差不超過10%,我們可將其設置為1%(1~100)

    ./sbin/start-balancer.sh -threshold 1

      或者hdfs balancer -threshold 1(顯示平衡過程)

從hadoop的web頁面可以觀察到各個節點的存儲使用率更接近了

1.增加節點

已有CentOS 7的虛擬機node00(namenode)、node01(datanode)、node02(datanode),虛擬機上都有JDK1.8.0_45,Hadoop-2.6.5。准備一個新的虛擬機node03(datanode)。

 

為了方便,選擇克隆虛擬機node02,克隆后修改新虛擬機node03的配置:

(1)刪除logs和core-site.xml配置文件中hadoop.tmp.dir的目錄

  rm -rf /usr/local/hadoop-2.6.5/logs/*.*

  rm -rf /usr/local/hadoop-2.6.5/tmp/*

(2)刪除hdfs-site.xml配置文件中datanode.data.dir目錄

  rm -rf /app/hadoop/data/*

(3)修改主機名、IP地址

    vi  /etc/sysconfig/network

  vi  /etc/sysconfig/network-scripts/ifcfg-ens33

 

然后修改所有虛擬機的配置(加上新節點):

(1)/etc/hosts

(2)Slaves

 

設置無密碼訪問node03(在node00生成密鑰並分發給其他虛擬機)

  ssh-keygen -t rsa

    scp -p ~/.ssh/id_rsa.pub node01@192.168.59.254:/root/.ssh/authorized_keys

  scp -p ~/.ssh/id_rsa.pub node02@192.168.59.253:/root/.ssh/authorized_keys

  scp -p ~/.ssh/id_rsa.pub node03@192.168.59.252:/root/.ssh/authorized_keys

 

啟動node03的datanode和nodemanager

  hadoop-daemon.sh start datanode

  yarn-daemon.sh start nodemanager

刷新hadoop 的web頁面即可看的新的節點。如果原節點中有數據,會自動分給新節點一定量的數據

2. 刪除節點

在namenode中打開hdfs-site.xml,設置節點排除文件的位置(絕對路徑)

  <property>

  <name>dfs.hosts.exclude</name>

  <value>/usr/local/hadoop-2.6.5/etc/hadoop/excludes</value>

  </property>

 

在路徑中新建文件excludes,並在文件中添加要排除的節點主機名

 

在namenode中強制重新加載配置

  hdfs dfsadmin -refreshNodes

 

在hadoop的web頁面上看到該節點變成Decommission,此時namenode會檢查並將數據復制到其它節點上以恢復副本數(要移除的節點上的數據不會被刪除,如果數據比較敏感,要手動刪除它們)。

通過命令也可以查看狀態:

  hdfs dfsadmin -report

等狀態變成Decommissioned后就可以關閉該節點

  hadoop-daemon.sh stop datanode

幾分鍾后,節點將從Decommissioned進入Dead狀態。

 

最后更新集群配置,從namenode的excludes文件及slaves文件、hosts文件中去掉已經移除的主機名,在所有DataNode上執行hadoop-pull.sh腳本,同步配置。

 

刪除的節點可以清空數據重新使用

  rm -rf /usr/local/hadoop-2.6.5/logs/*.*

  rm -rf /usr/local/hadoop-2.6.5/tmp/*

  rm -rf /app/hadoop/data/*

 

 原始數據分布

 

 自動備份中

 

 自動備份后

 刪除節點后

 


免責聲明!

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



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