因为ReplicationMonitor 依赖了其他4个所以这里先分析下DecommissionManager$Monitor
DecommissionManager主要是负责节点退役或者说节点停用,而Monitor负责定时来检测这些节点的退役状态,在DecommissionManager里其实也只有Monitor在真正执行功能,我们来看下Monitor的检测实现,
首先看下影响检测的几个参数
-
-
-
-
private
final
long
recheckInterval;
-
-
private
final
int
numNodesPerCheck;
-
-
private
String firstkey =
""
;
因为需要检测全部的datanode,然后datanode又比较多,所以采用迭代的步长检测,例如每次只检测n个机器,下次检测时就是相对上次检测的的后n个机器,又为了保证检测的连续性,所以检测的数据构成一个环形数据结构,然后需要记录每次迭代的起始点,所以有个firstkey,然后环形数据结构由hadoop自己实现的CyclicIteration来提供(其实就是首尾数据相连)
看下检测的逻辑
-
1
:判断节点是否处于DECOMMISSION_INPROGRESS状态
-
2
:如果处于DECOMMISSION_INPROGRESS状态,则检测该节点上的所有数据块是否已经到了复制因子
-
3
:如果已经到了复制因子块的个数则说明这个节点上的所有块都是多余了,也就是说这个节点可以退役了,将节点状态设置为退役
从上面的检测逻辑可以看出,其实就是为了确定是否这个节点上的数据块已经被完全复制过了到了复制因子,如果完全复制过了,那这个节点其实就没用了,所以就标示为退役了,主要起到一个审查的目的。
好上面有个状态常量
那这个值是谁设置的呢,一般在什么情况会触发呢,主要是DFSAdmiin负责触发
-
DFSAdmin的 -refreshNodes 命令或者说传递这个命令参数的其他调用者例如Balancer ,DFSck等。
-
refreshNode会依据exclude文件里配置的ip来更新node节点的状态,例如这里是调用setDECOMMISSION_INPROGRESS(datanode)
更多信息请查看 java进阶网 http://www.javady.com
分享到:
相关推荐
NameNode是Hadoop分布式文件系统HDFS的核心组件之一,负责维护文件系统的元数据。下面是NameNode的职责和相关知识点: NameNode的职责 NameNode是HDFS的中心节点,负责维护文件系统的命名空间。它的主要职责包括:...
2. **jstack+脚本**:通过jstack工具获取NameNode进程中的线程快照,并结合脚本自动化分析这些快照,寻找可能的死锁或阻塞情况。 3. **利用x86 PMU的Profiling工具**:利用Oprofile或Intel Vtune等工具对NameNode...
Hadoop 2.0 双 Namenode 双 Datanode 部署 Hadoop 是一个开源的大数据处理框架,它提供了分布式文件系统(HDFS)和Map/Reduce 计算框架。 在这个部署中,我们将使用 Hadoop 2.0 在两个 Ubuntu 服务器上部署双 ...
文件名“都是海量惹得祸 之 大家来聊Namenode瓶颈解决方案.pptx”表明这是一个关于Namenode问题的演讲或报告,可能详细阐述了大数据量对Namenode的影响,分析了问题的根源,并提供了具体的解决方案。 在实际解决...
HDFS 中 NameNode 节点的配置、备份和恢复 HDFS(Hadoop Distributed File System)是 Hadoop 生态系统中的分布式文件系统,它提供了高效、可靠、可扩展的文件存储解决方案。 NameNode 是 HDFS 集群中的中心服务器...
在Hadoop分布式文件系统(HDFS)中,Namenode是关键组件,它负责元数据管理,包括文件系统的命名空间和文件的块映射信息。当Namenode启动失败时,通常与fsimage和edits文件有关,这些文件是Namenode存储元数据的重要...
NameNode作为Hadoop分布式文件系统(HDFS)的核心组件之一,负责管理整个文件系统的命名空间以及客户端的文件访问。为了保证元数据的安全性和持久性,NameNode在运行过程中需要将元数据保存在内存中,并同时在磁盘中...
Hadoop之NameNode Federation图文详解 Hadoop的NameNode Federation是HDFS(Hadoop Distributed File System)中的一种架构设计,旨在解决NameNode的扩展性、隔离性和性能问题。本篇文章将对NameNode Federation的...
hdfs的namenode的元数据管理机制,简要画出了元数据管理的流程分析
3. **SafeMode Monitor线程(smmthread)**:SafeModeMonitor线程执行`SafeModeMonitor`的任务,监控集群的安全模式状态。安全模式是NameNode在启动或数据恢复期间的一种特殊状态,此时不允许文件系统的修改。...
[bigdata@namenode1 scripts]$ pwd /home/bigdata/software/hadoop/share/scripts [bigdata@namenode1 scripts]$ python configuration-utils.py -c 2 -m 8 -d 30 -k True Using cores=2 memory=8GB disks=30 hbase=...
Hadoop Namenode 是 Hadoop 分布式文件系统的核心组件之一,负责管理文件系统的命名空间。然而,在生产环境中,namenode 的崩溃可能会导致整个集群的不可用。因此,namenode 的恢复是非常重要的。本文将详细介绍 ...
Hadoop 的 NameNode 是 Hadoop 分布式文件系统(HDFS)的核心组件之一,负责管理文件系统的 namespace 和数据块的存储位置。在本文中,我们将深入探讨 Hadoop NameNode 的源码,了解其启动过程、配置加载、RPC ...
在IT行业中,高可用性是关键,特别是在大数据处理领域,Hadoop作为分布式计算框架,其NameNode节点的稳定性至关重要。"hadoop namenode双机热备"是为确保Hadoop集群持续运行而采取的一种重要策略,通过双机热备可以...
在Hadoop大数据存储系统中,HDFS(Hadoop Distributed File System)是核心组件之一,用于分布式存储大量数据。NameNode是HDFS的核心节点,负责管理文件系统的元数据,包括文件和目录的命名空间以及文件的块映射信息...
在分布式文件系统Hadoop的HDFS(Hadoop Distributed File System)中,NameNode是核心组件,负责元数据的管理,包括文件系统命名空间和文件块的映射信息。当NameNode发生故障时,数据的可用性和系统的稳定性都会受到...
NameNode及SecondaryNameNode分析
《HDFS的概念——Namenode和Datanode详解》 Hadoop分布式文件系统(HDFS)是Apache Hadoop项目的核心组件,为大数据处理提供了高效、可靠的分布式存储解决方案。HDFS设计的目标是处理海量数据,其架构基于两个核心...
小文件指的是大小相对较小的文件,它们在分布式系统中可能导致大量的数据块,增加NameNode的内存负担,降低I/O效率。为了解决这个问题,我们可以采用各种合并策略,其中一种是通过多线程并行合并小文件。本项目提供...