上一页 1 2 3 4 5 6 7 ··· 9 下一页
摘要: 数据块的复制当然需要一个源数据节点,从其上拷贝数据块至目标数据节点。那么数据块复制是如何选取复制源节点的呢?本文我们将针对这一问题进行研究。 在BlockManager中,chooseSourceDatanode()方法就是用来选取数据块复制时的源节点的,它负责解析数据块所属数据节点列表,并选择一个 阅读全文
posted @ 2016-06-03 14:53 吉日木图 阅读(543) 评论(0) 推荐(0) 编辑
摘要: ReplicationMonitor是HDFS中关于数据块复制的监控线程,它的主要作用就是计算DataNode工作,并将复制请求超时的块重新加入到待调度队列。其定义及作为线程核心的run()方法如下: [java] view plain copy /** * Periodically calls c 阅读全文
posted @ 2016-06-03 14:52 吉日木图 阅读(317) 评论(0) 推荐(0) 编辑
摘要: UnderReplicatedBlocks还提供了一个数据块迭代器BlockIterator,用于遍历其中的数据块。它是UnderReplicatedBlocks的内部类,有三个成员变量,如下: [java] view plain copy // 当前迭代级别 private int level; 阅读全文
posted @ 2016-06-03 14:51 吉日木图 阅读(220) 评论(0) 推荐(0) 编辑
摘要: UnderReplicatedBlocks是HDFS中关于块复制的一个重要数据结构。在HDFS的高性能、高容错性体系中,总有一些原因促使HDFS系统内进行块复制工作,比如基于高性能的负载均衡、基于容错性的数据块副本数恢复等。普遍的,任何工作都会有一个优先级的问题,特别是这里的数据块复制,不可能简单的 阅读全文
posted @ 2016-06-03 14:50 吉日木图 阅读(358) 评论(0) 推荐(0) 编辑
摘要: LightWeightGSet是名字节点NameNode在内存中存储全部数据块信息的类BlocksMap需要的一个重要数据结构,它是一个占用较低内存的集合的实现,它使用一个数组array存储元素,使用linked lists来解决冲突。它没有实现重新哈希分区,所以,内部的array不会改变大小。这个 阅读全文
posted @ 2016-06-03 14:49 吉日木图 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 无论是第一次,还是之后的每次数据块汇报,名字名字节点都会对汇报上来的数据块进行检测,看看其是否为损坏的数据块。那么,损坏数据块是如何被检测的呢?本文,我们将研究下损坏数据块检测的checkReplicaCorrupt()方法。 关于数据块及其副本的状态,请阅读《HDFS源码分析之数据块及副本状态Bl 阅读全文
posted @ 2016-06-03 14:48 吉日木图 阅读(690) 评论(0) 推荐(0) 编辑
摘要: 关于数据块、副本的介绍,请参考文章《HDFS源码分析之数据块Block、副本Replica》。 一、数据块状态BlockUCState 数据块状态用枚举类BlockUCState来表示,代码如下: [java] view plain copy /** * States, which a block  阅读全文
posted @ 2016-06-03 14:47 吉日木图 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 数据块在数据节点上是按照如下方式存储的。 首先是一个存储的根目录/Hadoop/data/dfs/dn,如下图所示: 接着进入current目录,如下图所示: 再进入后续的BP-433072574-192.168.1.224-1440568979639下current目录,如下图所示: 在它下面,有 阅读全文
posted @ 2016-06-03 14:46 吉日木图 阅读(627) 评论(0) 推荐(0) 编辑
摘要: CorruptReplicasMap用于存储文件系统中所有损坏数据块的信息。仅当它的所有副本损坏时一个数据块才被认定为损坏。当汇报数据块的副本时,我们隐藏所有损坏副本。一旦一个数据块被发现完好副本达到预期,它将从CorruptReplicasMap中被移除。 我们先看下CorruptReplicas 阅读全文
posted @ 2016-06-03 14:45 吉日木图 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 我们知道,HDFS中的文件是由数据块Block组成的,并且为了提高容错性,每个数据块Block都会在不同数据节点DataNode上有若干副本Replica。那么,什么是Block?什么又是Replica? 首先,我们看下Block的定义,如下: [java] view plain copy /*** 阅读全文
posted @ 2016-06-03 14:45 吉日木图 阅读(274) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 9 下一页