datanode communicate with namenode

12
NameNodeDataNode通信

Upload: jiang-yu

Post on 15-Jul-2015

510 views

Category:

Data & Analytics


6 download

TRANSCRIPT

Page 1: DataNode communicate with NameNode

NameNode与DataNode通信

Page 2: DataNode communicate with NameNode

Protocol

• register: handshake,register when startup

• heartbeat: liveness,capacity,used,remaining. short time 3s default

• blockreport: diff. long time 6h

Protocol

Page 3: DataNode communicate with NameNode

Inside NameNode

• FSNameSystem : INode,Metadata

• BlockManager:Block,DataNode,Heartbeat

• 两者关系不是割裂,紧密联系

Page 4: DataNode communicate with NameNode

Inside NameNode

• DataNode在NameNode中对应的对象

• DataNode ——> DataNodeDescriptor

• Disk ——> DataNodeStorageInfo

• Block在DataNodeStorageInfo中以List存储,头结点为blockList

Page 5: DataNode communicate with NameNode

INode

• Dir —> INodeDirectory只有meta,没有实际存储

• File —> INodeFile Blocks Replica

Page 6: DataNode communicate with NameNode

INodeFile• INodeFile存储BlockInfo

• BlockInfo存储triplet : save memory, block report

Page 7: DataNode communicate with NameNode

Heartbeat

• the function of heartbeat

Page 8: DataNode communicate with NameNode

BlockReport

• The function of BlockReport

Page 9: DataNode communicate with NameNode

BlockReport• toInvalidate:不在BlockMap中,该Block已经被删除

• toUC:在BlockMap中,状态为UC

• toCorrupt:在BlockMap中,状态为Corruput

• toAdd:在BlockMap中,triplet没有该节点的该磁盘

• toRemove:没有汇报,丢失的Block

Page 10: DataNode communicate with NameNode

BlockReport流程

Page 11: DataNode communicate with NameNode

BlockReport

Page 12: DataNode communicate with NameNode

BlockReport