DatanodeProtocol#blockReceivedAndDeleted。
仅发生在DataNode和NameNode之间。是NameNode处理DataNode增量块汇报的RPC。
DataNode的sendIBRs方法里,会去调用这个RPC,把增量的块(新增or删除)汇报给NameNode处理,NameNode收到后对blocksMap进行修改。
前置知识:
需要了解HDFS里Block的状态以及副本的状态,可以参考下面的文章:
【HDFS】–块状态&副本状态
下面直接来看NameNodeRpcServer里的代码:
@Override // DatanodeProtocol
public void blockReceivedAndDeleted(final DatanodeRegistration nodeReg,