NameNode中数据节点的保存(2)——NetworkTopology
来源:互联网 发布:兼职数据录入招聘 编辑:程序博客网 时间:2024/05/17 23:12
在前面的一篇文章中,我分析了NameNode用来保存DataNode节点的一种数据结构——Host2NodesMap类,它被用来存储主机与DataNode节点之间的映射,同时NameNode用这个数据结构来计算整个集群的负载情况,在本文,我将介绍另一种DataNode节点的存储结构——NetworkTopology。NetworkTopology类将整个集群中的DataNode节点存储成了一个树状网络拓扑图,当然,在NameNode节点把一个DataNode节点交给NetworkTopology类保存之前,它已经将这个DataNode节点坐在的主机ip解析成了一个/*/*/*/*的形式,这样的话,NetworkTopology就更好处理了。
先来看看与NetworkTopology类相关联的类图,以便能更好地了解它是如何来表示整个集群中DataNode节点位置的。
Node接口表示网络拓扑图中节点的抽象,一个Node的实例可能表示的是一个DataNode节点,也可能是集群中的路由器或者是机架,而InnerNode的实例表示的可能是一个路由器,也可能是机架,在中是这样判断是不是机架的:
boolean isRack() {
if (children.isEmpty()) {
return true;
}
Node firstChild = children.get(0);
if (firstChild instanceof InnerNode) {
return false;
}
return true;
}
Node接口的基本实现是NodeBase,用来表示一个节点实体,并且顶多用来表示HDFS集群中的DataNode节点,它的四个属性含义是:
protected String name; //该结点的名称(host:port)protected String location; //该结点的网络位置
protected int level; //该结点在网络拓扑中的层次
protected Node parent; //该结点的父结点
集群中的一个路由器节点可以包含多个路由器节点,也可以包含多个机架节点,一个机架节点可以包含多个DataNode节点,这就是NameNode通过NetworkTopology来管存储群中所有节点的一种方式,那么,它为何要这样来存储呢?实际上,NameNode通过这种树状网络拓扑结构来表示集群中DataNode节点在物理位置上的关系,以方便任何两个DataNode节点之间距离的计算,同时也为NameNode评估集群的负载情况提供计算依据,例如,属于同一个机架的DataNode节点它们在物理上是非常近的,可能就在一个局域网内,同时NamNode也可以计算这个局域网当前的网络带宽的占用情况(这对NameNode节点为一个文件的block副本选取那些存储节点以提高性能是非常重要的)。
- NameNode中数据节点的保存(2)——NetworkTopology
- NameNode中数据节点的保存(1)——Host2NodesMap
- NameNode中数据节点的保存(1)——Host2NodesMap
- NameNode生成DataNode的网络拓扑图的源码分析---NetworkTopology
- 图说Hadoop源码-NameNode: NetworkTopology.InnerNode
- Hadoop中NameNode节点起不来可能出现的原因
- HDFS的文件操作流(5)——写操作(NameNode节点)
- NameNode节点的升级/回滚/提交
- handoop0.20.2:名字节点namenode的启动
- namenode中元数据的安全性
- 如何配置Hadoop的 Secondary节点 & NameNode节点失效恢复
- python中数据的保存
- 大数据实战下笔记——Hadoop NameNode HA的原理
- iOS保存数据——NSUserDefaults的用法(2)
- HDFS 2中Namenode启动时WebUI的变化
- namenode的机器也变成了tasktracker节点
- hadoop启动没有namenode节点的错误分析
- PHP写文件——将用户提交的数据保存到服务器的文件中
- 随笔之XP下编译Webkit
- TCP网络通信实例--消息的发送与接收
- javascript 字符串常用操作(replaceAll,trim)
- PHP+MYSQL乱码问题解决方法三步走
- 验证程序执行时间代码
- NameNode中数据节点的保存(2)——NetworkTopology
- windows DIB位图的4字节对齐
- 分页对象
- svn externals使用
- QT QGraphicsView
- 安装SQL Server 2000出现“以前进行的程序安装创建了挂起的文件操作”的解决办法
- Oracle 11g R2令人赞赏的五大新特性
- 昆山到苏州公交乘坐终极攻略-实践归来
- 虛擬機 centos4.8 oracle9i9204 安裝很順利