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(显示平衡过程)

二.增加节点-------------------------------------------------------------------

已有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

=================================================================================

发布了11 篇原创文章 · 获赞 11 · 访问量 129

猜你喜欢

转载自blog.csdn.net/weixin_43307695/article/details/104444274