首页 > 其他分享 >HDFS 节点动态管理

HDFS 节点动态管理

时间:2024-09-26 12:54:42浏览次数:3  
标签:hdp01 HDFS hdp04 hdfs local hadoop 动态 root 节点

一、节点上线

1.新机器安装环境准备
参考集群安装文档环境准备

2.namenode节点配置
[root@hdp01 hadoop]# cat workers
hdp01.dialev.com
hdp02.dialev.com
hdp03.dialev.com
hdp04.dialev.com
[root@hdp01 hadoop]# pwd
/usr/local/hadoop/etc/hadoop
[root@hdp01 hadoop]# cd /usr/local/
[root@hdp01 local]# scp -r -q hadoop-3.1.4 192.168.1.134:/usr/local/      #注意如果namenode节点数据目录也在的话记得排除掉


3.新增节点配置
[root@hdp04 ~]#  cd /usr/local/
[root@hdp04 local]# ln -sv hadoop-3.1.4 hadoop
[root@hdp04 local]# mkdir -p /var/run/hadoop-hdfs/  #如果配置了短路本地读取记得socket目录创建一下
[root@hdp04 local]# cd hadoop/logs/
[root@hdp04 logs]# rm -rf ./*  #删除所有拷贝过来的日志
[root@hdp04 logs]# hdfs --daemon start datanode #启动服务
[root@hdp04 logs]# jps
36871 Jps
36794 DataNode
[root@hdp04 logs]# hdfs dfsadmin -report  #打印集群状态,也可以访问namenode UI  http://192.168.1.131:50070/dfshealth.html#tab-datanode

4.根据实际情况执行HDFS Blocak负载均衡,因为当前是测试集群没有数据,不做操作,以下是命令参考
#首先设置数据传输带宽。
hdfs dfsadmin -setBalancerBandwidth 104857600
#然后启动Balancer,等待集群自均衡完成即可。
hdfs balancer -threshold 10

二、节点下线

1.namenode 添加节点黑名单列表,将下线节点写入列表
[root@hdp01 local]# cd hadoop/etc/hadoop/
[root@hdp01 hadoop]# vim hdfs-site.xml
    <!-- 添加黑名单排除指定节点在集群之外,如果列表为空则表示不禁止任何机器,建议在集群创建时就添加该配置,否则后续需要重启namenode才能重新加载 -->
    <!-- 注意:如果副本数是3,服役的节点小于等于3,是不能退役成功的,需要修改副本数后才能退役 -->
    <property>
        <name>dfs.hosts.exclude</name>
        <value>/usr/local/hadoop/etc/hadoop/excludes</value>
    </property>
[root@hdp01 hadoop]# vim /usr/local/hadoop/etc/hadoop/excludes #添加需要下线的主机
hdp04.dialev.com
[root@hdp01 hadoop]# scp excludes hdfs-site.xml 192.168.1.132:$PWD #同步配置,下线节点可以忽略


2.重启集群或刷新集群
#如果dfs.hosts.exclude没有提前配置需要重启集群,否则此步骤可以跳过
[root@hdp01 hadoop]# stop-dfs.sh 
[root@hdp01 hadoop]# start-dfs.sh 
    
#如果dfs.hosts.exclude配置已经提前存在,可以直接刷新配置即可,命令如下
hdfs dfsadmin -refreshNodes   

3.检查集群状态
[root@hdp01 logs]# jps
36132 NameNode
36644 Jps
36295 DataNode
[root@hdp01 logs]#  hdfs dfsadmin -report  |grep -E '^Name|^Decommission'  #可以看到第四台服务器的状态处于退役,也可以访问namenode UI  http://192.168.1.131:50070/dfshealth.html#tab-datanode
Name: 192.168.1.131:9866 (hdp01.dialev.com)
Decommission Status : Normal
Name: 192.168.1.132:9866 (hdp02.dialev.com)
Decommission Status : Normal
Name: 192.168.1.133:9866 (hdp03.dialev.com)
Decommission Status : Normal
Name: 192.168.1.134:9866 (hdp04.dialev.com)
Decommission Status : Decommissioned   ##如果节点数据比较多从Decommissioning状态到Decommissioned可能需要一段时间
 
4.手动关闭下线节点DataNode进程  
hdfs --daemon stop datanode

5.DataNode负载均衡
#如果需要可以对已有的HDFS集群进行负载均衡服务。
hdfs balancer -threshold 5

三、扩展(HDFS黑白名单机制)

3.1 白名单

所谓的白名单指的是允许哪些机器加入到当前的HDFS集群中,是一种准入机制。
白名单由dfs.hosts参数指定,该参数位于hdfs-site.xml。默认值为空。
dfs.hosts指向文件,该文件包含允许连接到namenode的主机列表。必须指定文件的完整路径名。如果该值为空,则允许所有主机准入

3.2 黑名单  

所谓的黑名单指的是禁止哪些机器加入到当前的HDFS集群中,是一种禁入机制。
黑名单由dfs.hosts.exclude参数指定,该参数位于hdfs-site.xml。默认值为空。节点下线时我们已经配置过了
dfs.hosts.exclude指向文件,该文件包含不允许连接到名称节点的主机列表。必须指定文件的完整路径名。如果该值为空,则不禁止任何主机加入。

  

 

"一劳永逸" 的话,有是有的,而 "一劳永逸" 的事却极少



标签:hdp01,HDFS,hdp04,hdfs,local,hadoop,动态,root,节点
From: https://blog.51cto.com/u_8901540/12118309

相关文章

  • HDFS数据安全与隐私保护
    一、HDFSTrash垃圾桶1.文件系统垃圾桶背景HDFS本身也是一个文件系统,那么就会涉及到文件数据的删除操作。默认情况下,HDFS中是没有回收站垃圾桶概念的,删除操作的数据将会被直接删除,没有后悔药。2.功能概述1.HDFSTrash机制,叫做回收站或者垃圾桶。Trash就像Windows操作系统中的回收......
  • IDEA调试的时候怎么确认一个代理对象是cglib动态代理实现的还是jdk动态代理实现的
    在调试过程中,判断一个代理对象是通过CGLIB实现的还是通过JDK动态代理实现的,可以从以下几个方面入手:###1.检查代理对象的实际类型在IntelliJIDEA中,你可以使用调试工具查看对象的实际类型。JDK动态代理和CGLIB动态代理在对象类型上有显著区别:-**JDK动态代理**:代理对......
  • 【GEE-PIE遥感】夜间灯光指数提取、长时间尺度植被覆盖度反演、水域动态监测、农作物
    随着航空、航天、近地空间等多个遥感平台的不断发展,近年来遥感技术突飞猛进。由此,遥感数据的空间、时间、光谱分辨率不断提高,数据量也大幅增长,使其越来越具有大数据特征。对于相关研究而言,遥感大数据的出现为其提供了前所未有的机遇,但同时也提出了巨大的挑战。传统的工作站和服......
  • 【C语言】链接动态链接库时提示符号在链接时未能找到的一个解决
    在你描述的场景中,出现undefinedreferenceto'process'和undefinedreferenceto'total_received'的错误是因为这些符号在链接时未能找到。这通常是由于某些文件未被正确添加到构建过程中,或者这些符号的定义和声明不匹配导致的。你提到interface.o和file.o被链接生......
  • 伪类选择器:动态伪类、结构伪类、否定伪类、UI伪类、目标伪类、语言伪类
    什么是伪类:很像类,但不是类,是元素特殊状态的一种描述。作用:选中特殊状态的元素1.动态伪类什么是动态伪类:因为它的变化是动态的,拿a:hover举例,一会悬浮一会不悬浮,是动态变化的。拿a标签举例:a:link 代表没有访问过的超链接      a:visited 代表访问过的超链接......
  • HDFS NameNode元数据管理
    一、什么是元数据在HDFS中,元数据主要指的是文件相关的元数据,由NameNode管理维护。从广义的角度来说,因为NameNode还需要管理众多DataNode节点,因此DataNode的位置和健康状态信息也属于元数据。二、元数据管理概述1.文件相关元数据类型在HDFS中,文件相关元数据具有两种类型:文件自身属性......
  • 关于动态库加载问题
    1,GetProcAddress只能加载与函数名一致的符号,如果是C++符号是无法加载函数的所以在进行动态库加载时候,如果被加载的库是C++组件,需要将接口声明添加extern“C”或者增加def文件;否则会出现GetProcAddress加载动态函数时候失败;2,查看动态库是否有符号可以使用depend工具:http://w......
  • 大模型训练:K8s 环境中数千节点存储最佳实践
    今天这篇博客来自全栈工程师朱唯唯,她在前不久举办的KubeCon中国大会上进行了该主题分享。Kubernetes已经成为事实的应用编排标准,越来越多的应用在不断的向云原生靠拢。与此同时,人工智能技术的迅速发展,尤其是大型语言模型(LLM)的推进,导致企业需要处理的数据量急剧增加,例如,Llama......
  • vue项目中——如何用echarts实现动态水球图
            有时候UI的脑洞真的很大,总是设计出一些稀奇古怪的图形,但又不得不佩服他们的审美,确实还挺好看的。今天给大家介绍echarts如何实现动态水球图。如图所示:  实现步骤一、引入在vue页面中引入echarts,如未安装需要先npm安装html:<template><divid="chart">......
  • 【C++篇】解密 STL 动态之魂:全面掌握 C++ vector 的高效与优雅
    文章目录C++`vector`容器详解:从入门到精通前言第一章:C++`vector`容器简介1.1C++STL容器概述1.2为什么使用`vector`1.3`vector`的优缺点第二章:`vector`的构造方法2.1常见构造函数2.1.1示例:不同构造方法2.1.2相关文档第三章:`vector`容量与大小操作3.1......