我的大数据之路--hadoop2.6.5集群节点的动态增加与删除

hadoop2.6.5集群节点的动态增加与删除

增加datanode

一,首先在创建一台虚拟机,也可以复制已有的虚拟机

我的大数据之路--hadoop2.6.5集群节点的动态增加与删除

二、进入之后修改hostname和ip
vi /etc/hostname

我的大数据之路--hadoop2.6.5集群节点的动态增加与删除

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 #ifcfg-enp0s3 可能有所不同

我的大数据之路--hadoop2.6.5集群节点的动态增加与删除

三、重启
reboot
四、修改Master的/etc/hosts文件,Slave1,Slave2,Slave3都要增加Slave3的ip

我的大数据之路--hadoop2.6.5集群节点的动态增加与删除

因为现在的文件都是Slave2的,各个的id都需要变化,所以要删除dfs.namenode.name.dir和dfs.datanode.data.dir 目录下的所有文件,我当初设置的是
我的大数据之路--hadoop2.6.5集群节点的动态增加与删除

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

点这里呀,一shell启动

sh zookeeper_start.sh
start-all.sh
六、开启Slave3的datanode
hadoop-daemon.sh start datanode
七、刷新namenode
hdfs dfsadmin -refreshNodes
start-balancer.sh

这时打开web,发现多了一个Slave3在datanode上
我的大数据之路--hadoop2.6.5集群节点的动态增加与删除

八、启动hadoop查看,在Slave3上运行代码
hadoop fs -ls /

我的大数据之路--hadoop2.6.5集群节点的动态增加与删除

动态删除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

我的大数据之路--hadoop2.6.5集群节点的动态增加与删除

四,刷新namenode
bin/hdfs dfsadmin -refreshNodes
sbin/start-balancer.sh
五、查看web

发现Maste端的Slave3-datanode已经出现Decommissoned(退役)
我的大数据之路--hadoop2.6.5集群节点的动态增加与删除

而Slave1上的namenode没有配置删除Slave3-datanode
所以在Slave1上,还是ok的
我的大数据之路--hadoop2.6.5集群节点的动态增加与删除

再在Master主机上删除excludes下的Slave3
我的大数据之路--hadoop2.6.5集群节点的动态增加与删除
再次刷新namendoe

bin/hdfs dfsadmin -refreshNodes
sbin/start-balancer.sh

再次查看Master的web端
我的大数据之路--hadoop2.6.5集群节点的动态增加与删除

成功实现动态删除。