=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(显示平衡过程)
二.增加节点-------------------------------------------------------------------
已有CentOS 7的虚拟机master(namenode)、hadoop002(datanode)、hadoop003(datanode),
虚拟机上都有JDK1.8.0_45,Hadoop-2.6.5。准备一个新的虚拟机hadoop004(datanode)。
为了方便,选择克隆虚拟机node02,克隆后修改新虚拟机node03的配置:
(1)删除logs和core-site.xml配置文件中hadoop.tmp.dir的目录
rm -rf /opt/hadoop2.6/tmp/*
(2)删除hdfs-site.xml配置文件中datanode.data.dir目录
rm -rf /opt/hadoop2.6/hdfs/data/*
(3)修改主机名、IP地址
vi /etc/hostname
vi /etc/sysconfig/network
vi /etc/sysconfig/network-scripts/ifcfg-ens33
然后修改所有虚拟机的配置(加上新节点):(已start-all.sh中进行修改,也可以全部弄完再重新start-all.sh)
(1)/etc/hosts
(2)slaves
设置无密码访问hadoop004(在master生成密钥并分发给其他虚拟机)
ssh-keygen -t rsa #enter键一直敲到底
ssh-copy-id -i ~/.ssh/id_rsa.pub master
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop002
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop003
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop004
(3)启动hadoop004的datanode和nodemanager (已start-all.sh集群进行,hadoop004单独进行)
hadoop-daemon.sh start datanode
yarn-daemon.sh start nodemanager
刷新hadoop 的web页面即可看的新的节点。如果原节点中有数据,会自动分给新节点一定量的数据
三.删除节点----------------------------------------------------
一.在namenode中打开hdfs-site.xml,设置节点排除文件的位置(绝对路径)
1.添加下面:
dfs.hosts.exclude
/opt/hadoop2.6/etc/hadoop/excludes
在路径中新建文件excludes,并在文件中添加要排除的节点主机名(touch excludes)
2.刷新namenode、刷新resourcemanager
hdfs dfsadmin -refreshNodes
yarn rmadmin -refreshNodes
3.在hadoop的web页面上看到该节点变成Decommission
4.停止该节点:
hadoop-daemon.sh stop datanode
yarn-daemon.sh stop nodemanager
PS:如果副本数是3,服役的节点小于等于3,是不能退役成功的,需要修改副本数后才能退役。
5.通过命令也可以查看状态:
hdfs dfsadmin -report
几分钟后,节点将从Decommissioned进入Dead状态(注意是几分钟后,注意耐心。)
6.最后更新集群配置,从namenode的excludes文件及slaves文件、hosts文件中去掉已经移除的主机名,
在所有DataNode上执行hadoop-pull.sh脚本,同步配置
四.恢复删除的节点------------------------------------------------------------
#重新加入删除的节点
1.在master的excludes文件中删除相应节点IP
2.在被删除节点上重启进程:
hadoop-daemon.sh start datanode
yarn-daemon.sh start nodemanager
3.在master上刷新节点配置情况:hadoop dfsadmin -refreshNodes
参考搭建资源:
(1).https://www.cnblogs.com/unpro-mercy/p/11556467.html
(2).https://segmentfault.com/a/1190000013757816
=================================================================================