本文主要介绍如下内容:
- 关于几个Block类之间的继承、实现关系;
- 针对文章标题中的每个类,细化到每个成员去注释分析
- 列出、并详细分析BlockInfo抽象类提供的抽象方法、非抽象方法的功能
- 针对几个跟块组织结构的方法再进行分析。moveBlockToHead、listInsert、listRemove等。
一、几个Block类的继承关系
二、Block
块(Block)是Hadoop FS中的一种原语,由long类型的块ID唯一标识。一个block也有一个伴随的generation stamp(GS), 这个 GS 是由NameNode持久化维护的每个块的一个单调递增的8字节数。然而,对于这个类而言,如果两个块具有相同的块ID,则认为它们是相等的。可以看重写的equals方法,如果两个块对象的block id相等,那么equals返回true。重写的hashCode方法是对block id求Long.hashCode()
。
类定义如下:实现了Writable接口,证明可以被序列化;实现了Comparable接口,证明可以比较。
public class Block