DatanodeID
public String name;
/// 内容存放 :“hostname:portNumber” 也可以没有端口
///name 的值配置在这个 hdfs-site.xml的{dfs.datanode.address}
public String storageID;
/// 存放介质 不同机器存放不同介质。
protected int infoPort;
/// infoserver 的端口
public int ipcPort;
/// ipc server 端口
方法:
读出主机ip
public String getHost() {
int colon = name.indexOf(":");
if (colon < 0) {
return name;
} else {
return name.substring(0, colon);
}
}
读出主机端口 默认是50010
public int getPort() {
int colon = name.indexOf(":");
if (colon < 0) {
return 50010; // default port.
}
return Integer.parseInt(name.substring(colon+1));
}
equals和hashCode 由name 和storageID共同决定
public boolean equals(Object to) {
if (this == to) {
return true;
}
if (!(to instanceof DatanodeID)) {
return false;
}
return (name.equals(((DatanodeID)to).getName()) &&
storageID.equals(((DatanodeID)to).getStorageID()));
}
public int hashCode() {
return name.hashCode()^ storageID.hashCode();
}
因为介质不可能发生改变。 所以updateRegInfo只有三个参数
public void updateRegInfo(DatanodeID nodeReg) {
name = nodeReg.getName();
infoPort = nodeReg.getInfoPort();
ipcPort = nodeReg.getIpcPort();
// update any more fields added in future.
}
public String name;
/// 内容存放 :“hostname:portNumber” 也可以没有端口
///name 的值配置在这个 hdfs-site.xml的{dfs.datanode.address}
public String storageID;
/// 存放介质 不同机器存放不同介质。
protected int infoPort;
/// infoserver 的端口
public int ipcPort;
/// ipc server 端口
方法:
读出主机ip
public String getHost() {
int colon = name.indexOf(":");
if (colon < 0) {
return name;
} else {
return name.substring(0, colon);
}
}
读出主机端口 默认是50010
public int getPort() {
int colon = name.indexOf(":");
if (colon < 0) {
return 50010; // default port.
}
return Integer.parseInt(name.substring(colon+1));
}
equals和hashCode 由name 和storageID共同决定
public boolean equals(Object to) {
if (this == to) {
return true;
}
if (!(to instanceof DatanodeID)) {
return false;
}
return (name.equals(((DatanodeID)to).getName()) &&
storageID.equals(((DatanodeID)to).getStorageID()));
}
public int hashCode() {
return name.hashCode()^ storageID.hashCode();
}
因为介质不可能发生改变。 所以updateRegInfo只有三个参数
public void updateRegInfo(DatanodeID nodeReg) {
name = nodeReg.getName();
infoPort = nodeReg.getInfoPort();
ipcPort = nodeReg.getIpcPort();
// update any more fields added in future.
}