Hadoop 框架是两个模型实现的有机整合,亦即Hadoop分布式文件系统(HDFS)与MapReduce并行编程模型,也就是说,Hadoop框架要能够提供的基本功能就是,在存储系统HDFS上进行MapReduce并行计算,所以,如果想要了解Hadoop框架的工作原理和运行机制,主要从这两个方面着手。
其实,Hadoop中MapReduce并行计算应该是在HDFS实现的,因此了解计算所基于HDFS应该是入口点,当对HDFS有了一定的了解,就能够知道这样一个并行计算平台能够提供哪些进行计算的基础要素。
当然,在了解HDFS之前,应该先熟悉一下Hadoop对文件系统FS是如何实现的,都提供了哪些操作。在org.apache.hadoop.fs包中,提供了文件系统的高层抽象(FileSystem类),基于该抽象的文件系统,可以来实现满足实际需要的文件系统实现类,例如用来在本地存储原生文件的文件系统(RawLocalFileSystem),例如一个文件系统之上可以存在其它一些类型的文件系统(基于校验和的文件系统ChecksumFileSystem类就是这样的,ChecksumFileSystem extends FilterFileSystem,FilterFileSystem是一个最基本的文件系统实现)。
我在阅读源代码的过程中,首先从与org.apache.hadoop.fs包中文件系统相关的其它包org.apache.hadoop.security开始。
org.apache.hadoop.security包中的一些类涉及到文件系统中用户的信息,例如用户权限等等。所以,为了能够深入了解文件系统和方便阅读源代码,就应该了解与文件系统相关的安全支持,实际上也就是位于Hadoop源代码中org.apache.hadoop.security包中实现。
下面org.apache.hadoop.security包中类的继承关系: