Hadoop NameNode启动的资源检查

2023-05-26 0 262

Hadoop NameNode启动的资源检查

简述

上一则预测了Hadoop的Rpc服务项目,这一则将接著往下预测startCommonServices那个方式,先看标识符总体的业务流程。

Hadoop NameNode启动的资源检查

startCommonServices

主要就是三步:

namesystem.startCommonServicesrpcServer.start();

Hadoop NameNode启动的资源检查请点选输

FSNamesystem

FSNamesystem是NameNode核心成员变量用来管理元数据(实现对DataNode、Block的管理以及读写日志),FSNamesystem的startCommonServices将开启一些磁盘检查和、安全模式等一些后台服务项目及线程。

1、将需要检查和的URL添加到volumes中 , 后台有线程会一直执行hasAvailableDiskSpace来检查和

2、checkAvailableResources(); 进行天然资源检查和

3、NameNode开启,进入到safemode阶段,处于一个等待汇报blocks的状态

4、汇报所有的block,用于后面判断是否进入安全模式

5、激活BlockManager

先new一个NameNodeResourceChecker,我们进入构造方式

Hadoop NameNode启动的资源检查

那个构造方式主要是:

1、声明namenode容忍的磁盘大小的阈值

2、封装好需要检查和的磁盘路径(fsimage和edits)

3、将需要检查和的磁盘路径通过addDirToCheck方式添加到volumes那个map集合里面,然后在FSNameSystem中有一个NameNodeResourceMonitor线程,不断的调用checkAvailableResources方式来检查和volumes(磁盘的天然资源情况)

Hadoop NameNode启动的资源检查
Hadoop NameNode启动的资源检查
Hadoop NameNode启动的资源检查

NameNodeResourceMonitor

FSNamesystem的内部类,实现了Runnable,在这里是后台线程,不断检查和天然资源的情况。

Hadoop NameNode启动的资源检查
Hadoop NameNode启动的资源检查

NameNodeResourceChecker

NameNodeResourceChecker是实际天然资源检查和的类,调用的是类里面的hasAvailableDiskSpace方式,监控NameNode主机上的磁盘还是否可用。如果一旦发现有天然资源不足的情况,会使NameNode进入安全模式。如果随后返回的状态代表天然资源大小到达可使用的级别,那么那个线程就使NameNode退出安全模式。依照那个注释,去解读run()方式的标识符逻辑:在一个while循环里,首先判断天然资源是否可用,如果不可用,日志里就会发出一个警告信息,然后调用enterSafeMode();进入安全模式。

Hadoop NameNode启动的资源检查

总结

从上面预测可知,这一则主要就介绍预测了NameNodeResourceChecker类的构造和线程类NameNodeResourceMonitor的run方式的天然资源检查和。

举报/反馈

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务