2021SC@SDUSC
DataNodeProtocol
public DatanodeRegistration register(DatanodeRegistration nodeReg
) throws IOException
用于DataNode 向 NameNode 登记。输入和输出参数都是 DatanodeRegistration
在NameNode里,先是检查
该 DataNode 是否能接入到 NameNode,到准备应答,更新请求的 DataNodeID。从DataNodeMap得到对应的 DataNodeDescriptor,为 NodeS。从Host2NodesMap(主机名到DatanodeDescriptor 数组的映射)中获取DataNodeDescriptor,为 NodeN;
如果 NodeN!=null 同时 NodeS!=NodeN。
那么我们需要先在系统中删除NodeN,并在 Host2NodesMap 中删除 NodeN;
如果 NodeS 存在,表明前面已经注册过。则: