Hadoop新增和刪除節點


#新增節點

1.安裝lunix,和以前一樣的版本
2.初始化系統環境
 2.1.設置靜態ip

vi /etc/sysconfig/network-scripts/ifcfg-eth0
//增加 
#Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
#BOOTPROTO=dhcp 
# add 
BOOTPROTO=static
ONBOOT=yes
# add 
IPADDR=192.168.119.134
HWADDR=00:0c:29:59:df:84 //重啟網絡文件:service network restart

 2.2.安裝jdk 配置Java 環境變量
 2.3.關閉防火牆

service iptables stop
chkconfig iptables off

3.配置ssh登陸

在新增節點:cd root 
mkdir .ssh //新建.ssh目錄
在master節點:cd ~/.ssh scp authorized_keys 新增節點IP:/root/.ssh/authorized_keys //復制免密碼登陸到新增節點

4.修改hosts文件

在master節點:vi /etc/hosts
//增加 新增節點IP h2slave3
//復制到其他DataNode節點
scp /etc/hosts h2slave1:/etc/hosts scp /etc/hosts h2slave2:/etc/hosts scp /etc/hosts h2slave3:/etc/hosts

5.復制hadoop2.2到新增節點(在master節點操作)

scp -r /home/bigdata/hadoop2.2 h2slave3:/home/bigdata/ //然后切換到新增節點 配置hadoop的環境變量

//在master節點修改
/home/bigdata/hadoop2.2/etc/hadoop/slaves //新增 新增節點的IP
//然后復制到其他DataNode
scp /home/bigdata/hadoop2.2/etc/hadoop/slaves h2slave1:/home/bigdata/hadoop2.2/etc/hadoop/slaves scp /home/bigdata/hadoop2.2/etc/hadoop/slaves h2slave2:/home/bigdata/hadoop2.2/etc/hadoop/slaves scp /home/bigdata/hadoop2.2/etc/hadoop/slaves h2slave3:/home/bigdata/hadoop2.2/etc/hadoop/slaves

  5.1. 添加DataNode 

//對於新添加的DataNode節點,需要啟動datanode進程,從而將其添加入集群
//在新增的節點上,運行 sbin/hadoop-daemon.sh start datanode
//在namenode節點刷新datanode, hdfs dfsadmin
-refreshNodes
//然后在namenode
查看集群情況,通過 hdfs dfsadmin -report
//也可以通過NameNode50070端口查看活動的DataNode節點數
 

  5.2.平衡DataNode節點

//在Master節點 cd /home/bigdata/hadoop2.2/sbin

//對hdfs負載設置均衡,因為默認的數據傳輸帶寬比較低,可以設置為64M
hdfs dfsadmin -setBalancerBandWidth 67108864

//默認balancer的threshold為10%,即各個節點與集群總的存儲使用率相差不超過10%,我們可將其設置為5% start
-balancer.sh -threshold 5

  5.3.添加NodeManager 

//由於Hadoop 2.X引入了YARN框架,所以對於每個計算節點都可以通過NodeManager進行管理,同理啟動NodeManager進程后,即可將其加入集群
//在新增節點,運行 sbin/yarn-daemon.sh start nodemanager

//在ResourceManager,通過 yarn node -list 查看集群情況 

遇到問題:在復制hadoop文件夾時我復制的datanode的hadoop,最終導致,新節點與被復制節點的datanodeUuid一樣(位置:{HADOOPHOME}/tmp/dfs/name/current/VERSION文件)這樣會導致,被復制節點和新節點的沖突,被復制節點和新節點在web查看時,或者被復制節點出現,或者新節點出現(但均為“死節點”)
解決辦法一定要從NameNode中復制hadoop-2.2.0文件夾

#刪除節點

//極端不建議直接在slave節點通過:hadoop-daemon.sh stop datanode 
命令關掉datanode,這會導致hdfs中出現missing block

在hadoop0上修改conf/hdfs-site.xml文件

<property>
  <!--dfs.hosts.exclude定義的文件內容為,每個需要下線的機器,一行一個-->   <name>dfs.hosts.exclude</name>   <value>/usr/local/hadoop/hadoop-2.2.0/etc/hadoop/excludes</value> </property>

1. 在master上創建並修改excludes文件,添加需要刪除節點的IP
2. 在master上刷新節點配置情況:hadoop dfsadmin -refreshNodes

此時在Web UI上就可以看到該節點變為Decommissioning狀態,過一會就變為Dead了
也可以通過:hadoop dfsadmin -report 命令查看

3. 在slave上關閉datanode進程(非必須):hadoop-daemon.sh stop datanode  

#重新加入刪除的節點

1.在master的excludes文件中刪除相應節點IP
2.在slave上重啟datanode進程:hadoop-daemon.sh start datanode
3.在master上刷新節點配置情況:hadoop dfsadmin -refreshNodes


免責聲明!

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



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