我是靠谱客的博主 深情蜻蜓,这篇文章主要介绍DatanodeID,现在分享给大家,希望可以做个参考。

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.
}

最后

以上就是深情蜻蜓最近收集整理的关于DatanodeID的全部内容,更多相关DatanodeID内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部