服务新数据节点和退役旧数据节点

版权声明:有一种生活不去经历不知其中艰辛,有一种艰辛不去体会,不会知道其中快乐,有一种快乐,没有拥有不知其中纯粹 https://blog.csdn.net/wwwzydcom/article/details/83792859

服务新数据节点

当原有的数据节点容量达不到存储数据需求,需要在原有集群基础上动态添加新的数据节点

  1. 准备一台虚拟机

  2. 修改ip,主机名称.以及hosts

  3. 配置jdk以及hadoop的环境

  4. 修改xcall和xsync文件,增加新节点,同步ssh
    修改xcall
    在这里插入图片描述
    修改xsync
    在这里插入图片描述
    设置免密码登录

     ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
    

    将生成的公钥拷贝到主机testnote1里 .ssh目录下 authorized_keys

     scp authorized_keys root@testnote04:`pwd`
    

    同步集群

     xsync authorized_keys
    
  5. 删除原来HDFS文件系统的日志文件以及 data

具体准备:
6. 在 namenode 的/opt/module/hadoop-2.7.2/etc/hadoop 目录下创建 dfs.hosts 文件

[root@testnote01 .ssh]# cd /opt/module/hadoop-2.7.2/etc/hadoop/
[root@testnote01 hadoop]# touch dfs.hosts
[root@testnote01 hadoop]# vim dfs.hosts
testnote01
testnote02
testnote03
testnote04
  1. 在 namenode 的 hdfs-site.xml 配置文件中增加 dfs.hosts 属性即testnote01的主机上

     <property>
     <name>dfs.hosts</name>
     <value>/opt/module/hadoop-2.7.2/etc/hadoop/dfs.hosts</value>
     </property>
    
  2. 刷新namenode

    扫描二维码关注公众号,回复: 4011486 查看本文章
     [root@testnote01 hadoop]# hdfs dfsadmin -refreshNodes
     Refresh nodes successfu
    
  3. 更新resourcemanager节点

     [root@testnote01 hadoop]# yarn rmadmin -refreshNodes
     18/11/07 03:54:31 INFO client.RMProxy: Connecting to ResourceManager at testnote02/192.168.18.51:8033
    
  4. 在namenode的slaves文件中增加新的主机名称

    [root@testnote01 hadoop]# cat slaves 
    testnote01
    testnote02
    testnote03
    testnote04
    
  5. 在单独命令启动新的数据节点和节点管理器

    [root@testnote04 .ssh]# hadoop-daemon.sh start datanode
    starting datanode, logging to /opt/module/hadoop-2.7.2/logs/hadoop-root-datanode-testnote04.out
    
    [root@testnote04 .ssh]# yarn-daemon.sh start nodemanager
    starting nodemanager, logging to /opt/module/hadoop-2.7.2/logs/yarn-root-nodemanager-testnote04.out
    

访问主页:http://testnote01:50070/dfshealth.html#tab-overview
点击liveVies
http://testnote01:50070/dfshealth.html#tab-datanode

在这里插入图片描述

退役旧数据节点

1)在 namenode 的/opt/module/hadoop-2.7.2/etc/hadoop 目录下创建 dfs.hosts.exclude 文件

[root@testnote01 hadoop-2.7.2]# vim dfs.hosts.exclude
[root@testnote01 hadoop-2.7.2]# cat dfs.hosts.exclude 
testnote04
/opt/module/hadoop-2.7.2/etc/hadoop/dfs.hosts.exclude 在这个目录下
  1. 在namenode的hdfs-site.xml的配置文件中增加dfs.hosts.exclude

     [root@testnote01 hadoop-2.7.2]# vim etc/hadoop/hdfs-site.xml 
    
     <property>
     <name>dfs.hosts.exclude</name>
     <value>/opt/module/hadoop-2.7.2/etc/hadoop/dfs.hosts.exclude</value>
     </property>
    
  2. 刷新namenode,刷新resourcemanager

     [root@testnote01 hadoop-2.7.2]# hdfs dfsadmin -refreshNodes
     Refresh nodes successful
    
     [root@testnote01 hadoop-2.7.2]# yarn rmadmin -refreshNodes
     18/11/07 04:39:33 INFO client.RMProxy: Connecting to ResourceManager at testnote02/192.168.18.51:8033
    

4)检查 web 浏览器,退役节点的状态为 decommission in progress(退役中),说明数据节点正在复制块到其他节点。
在这里插入图片描述

  1. 等待退役节点状态为 decommissioned(所有块已经复制完成),停止该节点及节点资源管理器。
    在这里插入图片描述

注意:如果副本数是3,服务节点小于等于3,是不能退役成功的,需要修改副本数后才能退役

  1. 停止节点

     [root@testnote04 .ssh]# hadoop-daemon.sh stop datanode
     stopping datanode
     [root@testnote04 .ssh]# yarn-daemon.sh stop nodemanager
     stopping nodemanager
    
  2. 从include文件中删除退役节点,再运行刷新节点的命令

     	(1)从 namenode 的 dfs.hosts 文件中删除退役节点 testnote04	
     	[root@testnote01 hadoop]# vim dfs.hosts
     	[root@testnote01 hadoop]# cat dfs.hosts
     	testnote01
     	testnote02
     	testnote03
     	(2)刷新namenode,刷新resourcemanager
     	
     	[root@testnote01 hadoop]# hdfs dfsadmin -refreshNodes
     	Refresh nodes successful
     	[root@testnote01 hadoop]# yarn rmadmin -refreshNodes
     	18/11/07 04:51:40 INFO client.RMProxy: Connecting to ResourceManager at testnote02/192.168.18.51:8033
    

在这里插入图片描述
没有节点

  1. 从namenode的slave文件中删除退役节点testnote04

     [root@testnote01 hadoop]# vim slaves 
     [root@testnote01 hadoop]# cat slaves 
     testnote01
     testnote02
     testnote03
    
  2. 如果数据不平衡,可以用命令实现集群的再平衡

     [root@testnote01 hadoop]# start-balancer.sh 
     starting balancer, logging to /opt/module/hadoop-2.7.2/logs/hadoop-root-balancer-testnote01.out
    
  3. 同步文件实现集群间的文件相同

    [root@testnote01 hadoop]# xsync ./
    

猜你喜欢

转载自blog.csdn.net/wwwzydcom/article/details/83792859