hadoop源码分析流程图
2023-04-18 11:02:24 0 举报
源码详细解剖
作者其他创作
大纲/内容
NameNodeRpcServer
registerDatanode()
namenode
getNumLiveDataNodes()>datanodeThreshold?
HttpServer2
HeartbeatManager
打开一个新的editLog
是
addDatanode()
50070
servlet
DataNode心跳
BPServiceActor
Namenode
否
移除信息
updateHeartbeatState()
blockSafe < blockThreshold?
sendHeartbeat
DataNode
getNumLiveDataNodes()
在内存中合并
DataXceiverServer
isDatanodeDead()
editLog
FSNamesystem
BlockManager
leaseManager
BPOfferService
DatanodeDescriptor node
FSimage
heartbeatCheck()
BlockPoolManager
blockManager
进入安全模式
计算出一个值blockThreshold
NameNode
Fsimage
blockSafe
handleHeartbeat()
替换旧的fsimage
DataNode注册
bpNamenode
updateHeartbeat()
datanodeThreshold=0
checkAvailableResources()
往datanodes list结构里面存进去了datanode的信息
httpserver2
DataNodeManager
外部客户端访问
sendHeartbeat()
DataStorage
node.getLastUpdateMonotonic() < (monotonicNow() - heartbeatExpireInterval) ?
//TODO 更改存储的信息 setCacheCapacity(cacheCapacity); setCacheUsed(cacheUsed); setXceiverCount(xceiverCount); //TODO 更新时间 setLastUpdate(Time.now()); setLastUpdateMonotonic(Time.monotonicNow());
DatanodeManager
往一堆数据结构里面添加信息
没事
NameNodeResourceChecker
DatanodeInfo
NameNode注册
定期的心跳检查
availableSpace < duReserved?
RPCServer
getDatanodeManager()
0 条评论
下一页