3.1 DatanodeID
这个类就是定义一下Datanode的身份证。
一个DatanodeID是由以下四部分组成的。
protected String name; /// 主机名:端口号
protected String storageID; /// unique per cluster storageID
protected int infoPort; /// the port where the infoserver is running
protected int ipcPort; /// the port where the ipc server is running
infoPort是Server的一个端口号。
ipcPort当NameNode和DataNode进行连接时,或者是DataNode之间通讯的时候所使用的一个端口号。
public DatanodeID(DatanodeID from) 这个构造函数用于拷贝另外的一个节点
这个类主要定义了这个DataNode的HostName、Port、infoPort和ipcPort这些东西同时有些函数来set和get他们。
它的hashcode是name.hashCode()^ storageID.hashCode(); 做了一个异或处理。
updateRegInfo(DatanodeID nodeReg) 从这句我们可以看出DatanodeID对象的域的更新可以更新它的Name和它的infoPort两项内容,而storageID是不可更新的。
如果进行两个DatanodeID的比较的话主要是比较他们的name,可以从下面的代码中得出。
public int compareTo(DatanodeID that) {
return name.compareTo(that.getName());
}