我的大数据之路--hadoop2.6.5集群节点的动态增加与删除
hadoop2.6.5集群节点的动态增加与删除
增加datanode
一,首先在创建一台虚拟机,也可以复制已有的虚拟机
二、进入之后修改hostname和ip
vi /etc/hostname
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 #ifcfg-enp0s3 可能有所不同
三、重启
reboot
四、修改Master的/etc/hosts文件,Slave1,Slave2,Slave3都要增加Slave3的ip
因为现在的文件都是Slave2的,各个的id都需要变化,所以要删除dfs.namenode.name.dir和dfs.datanode.data.dir 目录下的所有文件,我当初设置的是
rm -r /user/hadoop-2.6.5/data/datanode/*
rm -r /user/hadoop-2.6.5/data/namenode/*
不然会报错
FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for block pool Block pool B…
五、在Master主机上开启zookeeper,在开启hadoop
sh zookeeper_start.sh
start-all.sh
六、开启Slave3的datanode
hadoop-daemon.sh start datanode
七、刷新namenode
hdfs dfsadmin -refreshNodes
start-balancer.sh
这时打开web,发现多了一个Slave3在datanode上
八、启动hadoop查看,在Slave3上运行代码
hadoop fs -ls /
动态删除DataNode
一、在Master主机上配置NameNode的hdfs-site.xml,增加如下配置
<property>
<name>dfs.hosts.exclude</name>
<value>/user/hadoop-2.6.5/excludes</value>
</property>
二、创建文件excludes
touch /user/hadoop-2.6.5/excludes
三、在文件中添加你想要删除的datanode的IP或者主机名
Slave3
四,刷新namenode
bin/hdfs dfsadmin -refreshNodes
sbin/start-balancer.sh
五、查看web
发现Maste端的Slave3-datanode已经出现Decommissoned(退役)
而Slave1上的namenode没有配置删除Slave3-datanode
所以在Slave1上,还是ok的
再在Master主机上删除excludes下的Slave3
再次刷新namendoe
bin/hdfs dfsadmin -refreshNodes
sbin/start-balancer.sh
再次查看Master的web端