hadoop0.19.0版的包和类的分析
时间:2016-03-11 23:20 来源:linux.it.net.cn 作者:IT
1 Hadoop包总量(15个包)
15个包,分下面几类:
(1) 配置文件:这是一个多方共享的话,让每个人可以告诉群里每个人我想干啥,由控制者根据配置文件去找相应的实体指向。
(2) 共用工具:基础功能的提供者
(3) 通讯工具:大家是基于通讯进行工作的
(4) 基础运算:MR
(5) 基本读写:IO
(6) 文件处理:HDFS
(7) 文件系统:FS
(8) 文件缓存:FILECACHE
(9) 安全机制:
(10)统计处理:
(11)类型释义:RECORD
(12)用户外壳:TOOL
(13)管控工具:HTTP
两个目的:(1)满足管理者的需要;HTTP(2)满足使用者的需要;
1.1 包的列表
1.2 包的作用
包名
作用
tool
提供一些命令行工具,如DistCp,archive
mapreduce
Hadoop的Map/Reduce实现
filecache
提供HDFS文件的本地缓存,用于加快Map/Reduce的数据访问速度
fs
文件系统的抽象,可以理解为支持多种文件系统实现的统一文件访问接口
hdfs
HDFS,Hadoop的分布式文件系统实现
ipc
一个简单的IPC的实现,依赖于io提供的编解码功能
io
表示层。将各种数据编码/解码,方便于在网络上传输
net
封装部分网络功能,如DNS,socket
security
用户和用户组信息
conf
系统的配置参数
metrics
系统统计数据的收集,属于网管范畴
util
工具类
record
根据DDL(数据描述语言)自动生成他们的编解码函数,目前可以提供C++和Java
http
基于Jetty的HTTP Servlet,用户通过浏览器可以观察文件系统的一些状态信息和日志
log
提供HTTP访问日志的HTTP Servlet
1.3 包的数量
包名
数量
tool
3
mapreduce
211
filecache
3
fs
69
hdfs
106
ipc
8
io
84
net
13
security
3
conf
3
metrics
23
util
30
record
50
http
3
log
1
15个
610个类
1.4 端口定义
端口名
位置
描述信息
8020
namenode RPC交互端口
8021
JT RPC交互端口
8649
查看运行状态的端口
50070
dfs.http.address
NAMENODE的HTTP服务器和端口
50010
dfs.datanode.address
DATANODE控制端口,主要用于DATANODE初始化时向NAMENODE提出注册和应答请求
50020
dfs.datanode.ipc.address
DATANODE的RPC服务器地址和端口
50075
dfs.datanode.http.address
DATANODE的HTTP服务器和端口
50090
dfs.secondary.http.address
辅助DATANODE的HTTP服务器和端口
50030
mapred.job.tracker.http.address
JOBTRACKER的HTTP服务器和端口
50060
mapred.task.tracker.http.address
TASKTRACKER的HTTP服务器和端口
1.4.1 与HDFS有关的地址及端口属性
任何一个系统具有内部协调职能、和对外职能服务、以级管控服务三部分组成。内部协调主要用于使系统内部提供一个统一的运营基础,对外职能是系统对外提供的主要服务。管控服务是使管者者对整个系统运行状况有一个整体的了解。
1.4.1.1 Namenode相关端口
(1) fs.default.name
位置:conf/core-site.xml
必须项:是
常用值:hdfs:// [域名或IP地址] :9000
说明:NameNode 主服务器的地址
•必须在所有master及slave上的conf/core-site.xml中设置此项。并且因为Hadoop架构是主master模式,所以在一个集群中的所有master及slave上设置的fs.default.name值应该是唯一一个NameNode 主服务器的地址。
(2) dfs.http.address
位置:conf/hdfs-site.xml
必须项:否
默认值:0.0.0.0:50070
说明:NameNode HTTP状态监视地址
(3) dfs.secondary.http.address
位置:conf/hdfs-site.xml
必须项:否
默认值:0.0.0.0:50090
说明:SecondaryNameNode HTTP状态监视地址
1.4.1.2 Datanode相关端口
(1) dfs.datanode.address
位置:conf/hdfs-site.xml
必须项:否
默认值:0.0.0.0:50010
说明:DataNode 服务的地址
(2) dfs.datanode.ipc.address
位置:conf/hdfs-site.xml
必须项:否
默认值:0.0.0.0:50020
说明:DataNode IPC服务的地址
(3) dfs.datanode.http.address
位置:conf/hdfs-site.xml
必须项:否
默认值:0.0.0.0:50075
说明:DataNode HTTP状态监视地址
1.4.2 与MapReduce 有关的地址及端口属性
1.4.2.1 JOBTACKER相关端口
(1) mapred.job.tracker
位置:conf/mapred-site.xml
必须项:是
常用值:[域名或IP地址] :9001
说明:JobTracker 主服务器地址及端口
•必须在所有master及slave上的conf/mapred-site.xml中设置此项。并且因为Hadoop架构是主master模式,所以在一个集群中的所有master及slave上设置的mapred.job.tracker的值应该是唯一一个JobTracker 主服务器的地址。
(2) mapred.job.tracker.http.address
位置:conf/mapred-site.xml
必须项:否
默认值:0.0.0.0:50030
说明:JobTracker HTTP状态监视地址
1.4.2.2 TASKTACKER相关端口
(1) mapred.task.tracker.report.address
位置:conf/mapred-site.xml
必须项:否
默认值:127.0.0.1:0
说明:提交报告用TaskTracker 服务地址
(2) mapred.task.tracker.http.address
位置:conf/mapred-site.xml
必须项:否
默认值:0.0.0.0:50060
说明:TaskTracker HTTP状态监视地址
2 IO包的分析(84个类)
2.1 IO基础包分析(45个类)
序号
类名
作用
备注
1
AbstractMapWritable
Class名与序号的读写抽象实现
抽象实现类
2
ArrayFile
数组到文件和读写实现
继承实现类
3
ArrayWritable
对象实例数组与文件间的读写实现
继承实现类
4
BinaryComparable
字节集的比较抽象类
抽象实现类
5
BooleanWritable
布尔值的读写
抽象实现类
6
BytesWritable
字节数组的读写
抽象实现类
7
ByteWritable
字节的读写
抽象实现类
8
Closeable
Closable的集合方法的呢称定义
接口类
9
CompressedWritable
压缩数组的读写
抽象实现类
10
DataInputBuffer
对内存缓冲区的读操作实现
继承实现类
11
DataOutputBuffer
对内存缓冲区的写操作实现
继承实现类
12
DefaultStringifier
缺省的对象转字串,字串转对象
继承实现类
13
DoubleWritable
双精度浮点数的读写
继承实现类
14
FloatWritable
浮点数的读写
继承实现类
15
GenericWritable
通用读写的代理类
继承实现类
16
InputBuffer
对过滤数据内存缓冲区的读操作实现
继承实现类
17
IntWritable
整数的读写
继承实现类
18
IOUtils
IO操作的工具类
独立内存类
19
LongWritable
长整数的读写
继承实现类
20
MapFile
键值文件的拷贝
独立内存类
21
MapWritable
Map集合的读写
继承实现类
22
MD5Hash
MD5的值的读写
继承实现类
23
MultipleIOException
多类出错信息的扩展
继承实现类
24
NullWritable
空读写类
继承实现类
25
ObjectWritable
对象读写
继承实现类
26
OutputBuffer
对过滤数据内存缓冲区的写操作实现
继承实现类
27
RawComparator
原始比较接口定义
接口类
28
SequenceFile
流式文件读写KV
独立内存类
29
SetFile
集合文件读写
继承实现类
30
SortedMapWritable
排序后集合文件读写
继承实现类
31
Stringifier
方法集定义
接口类
32
Text
UTF8文本格式读写
继承实现类
33
TwoDArrayWritable
二维数组的读写
继承实现类
34
UTF8
UTF8格式读写
继承实现类
35
VersionedWritable
版本读写
继承实现类
36
VersionMismatchException
版本出错信息扩展
继承实现类
37
VIntWritable
可变长整型值读写
继承实现类
38
VLongWritable
可变长长整型值读写
继承实现类
39
Writable
多字段读写方法集定义
接口类
40
WritableComparable
带比较方法多字段读写方法集定义
接口类
41
WritableComparator
带比较读写的实现类
继承实现类
42
WritableFactories
读写类实例化的工厂类代理
独立内存类
43
WritableFactory
生成读写类的接口
接口类
44
WritableName
根据符号名称找到读写的类型名
独立内存类
45
WritableUtils
读写类的方法汇总工具类
独立内存类
2.2 Compress包的分析(16个类)
序号
类名
作用
备注
1
CompressionOutputStream
压缩数据输出方法集合定义类
抽象类
2
CompressorStream
压缩数据输出方法实现类
继承实现类
3
BlockCompressorStream
块数据压缩输出扩展实现类
继承实现类
4
CompressionInputStream
压缩数据读取方法集合定义类
抽象类
5
DecompressorStream
解压缩数据读取方法集合实现类
继承实现类
6
BlockDecompressorStream
块数据解压缩读取扩展实现类
继承实现类
7
Compressor
压缩数据接口方法定义
接口类
8
Decompressor
解压缩数据接口方法定义
接口类
9
CompressionCodec
压缩和解压数据格式接口方法定义
接口类
10
BZip2Codec
BZIP2压和解压格式实现类
继承实现类
11
DefaultCodec
缺省压和解压格式实现类
继承实现类
12
GzipCodec
GZIP压和解压格式实现类
继承实现类
13
LzoCodec
LZO压和解压格式实现类
继承实现类
14
LzopCodec
Lzop压和解压格式实现类
继承实现类
15
CodecPool
压缩和解压类的管理代理类
独立内存类
16
CompressionCodecFactory
根据文件名找到对应的压缩和解压格式类
独立内存类
2.3 Compress.bzip2包的分析(4个类)
序号
类名
作用
备注
1
BZip2Constants
BZIP2压和解压的固定参数
接口类
2
CBZip2InputStream
按格式进行流式读取到内存中
继承实现类
3
CBZip2OutputStream
按格式进行流式写入到内存中组成写入数据集
继承实现类
4
CRC
加校验的工具类
独立内存类
2.4 Compres.lzo包的分析(2个类)
序号
类名
作用
备注
1
LzoCompressor
LZO格式压缩数据表定义及实现类
继承实现类
2
LzoDecompressor
LZO格式解压数据表定义及实现类
继承实现类
2.5 Compress.zlib包的分析(5个类)
序号
类名
作用
备注
1
BuiltInZlibDeflater
压缩实现类
继承实现类
2
BuiltInZlibInflater
解压实现类
继承实现类
3
ZlibCompressor
Zlib格式压数据表定义及实现类
继承实现类
4
ZlibDecompressor
Zlib格式解压数据表定义及实现类
继承实现类
5
ZlibFactory
压或解压实例生成代理类
独立内存类
2.6 Compress.retry包的分析(4个类)
序号
类名
作用
备注
1
RetryInvocationHandler
按重试策略调取压缩方法
继承实现类
2
RetryPolicies
重试策略集定义类
独立内存类
3
RetryPolicy
重试策略方法定义
接口类
4
RetryProxy
重试策略集实例化工具类
独立内存类
2.7 Serializer包的分析(8个类)
序号
类名
作用
备注
1
Deserializer
反序列化接口定义
接口类
2
Serializer
序列化接口定义
接口类
3
DeserializerComparator
反序例化实现类
继承实现类
4
Serialization
序列和反序列实例访问方法集定义
接口类
5
JavaSerialization
JAVA序列和反序列实例访问方法实现类
继承实现类
6
JavaSerializationComparator
JAVA反序列实现类
继承实现类
7
SerializationFactory
序列和反序列实例的创建和组织类
继承实现类
8
WritableSerialization
读写数据时经序列或反序列转换工具
继承实现类
3 IPC包的分析(8个类)
3.1 IPC包的简介
3.1.1 基础分析
RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。当我们讨论HDFS的,通信可能发生在:
•Client-NameNode之间,其中NameNode是服务器
•Client-DataNode之间,其中DataNode是服务器
•DataNode-NameNode之间,其中NameNode是服务器
•DataNode-DateNode之间,其中某一个DateNode是服务器,另一个是客户端
如果我们考虑Hadoop的Map/Reduce以后,这些系统间的通信就更复杂了。为了解决这些客户机/服务器之间的通信,Hadoop引入了一个RPC框架。该RPC框架利用的Java的反射能力,避免了某些RPC解决方案中需要根据某种接口语言(如CORBA的IDL)生成存根和框架的问题。但是,该RPC框架要求调用的参数和返回结果必须是Java的基本类型,String和Writable接口的实现类,以及元素为以上类型的数组。
既然是RPC,当然就有客户端和服务器,当然,org.apache.hadoop.rpc也就有了类Client和类Server。但是类Server是一个抽象类,类RPC封装了Server,利用反射,把某个对象的方法开放出来,变成RPC中的服务器。
3.1.2 应用分析
由于Client可能和多个Server通信,典型的一次HDFS读,需要和NameNode打交道,也需要和某个/某些DataNode通信。这就意味着某一个Client需要维护多个连接。同时,为了减少不必要的连接,现在Client的做法是拿ConnectionId(图中最右侧)来做为Connection的ID。ConnectionId包括一个InetSocketAddress(IP地址+端口号或主机名+端口号)对象和一个用户信息对象。这就是说,同一个用户到同一个InetSocketAddress的通信将共享同一个连接。
3.2 基础包的分析(5个类)
序号
类名
作用
备注
1
Client
通讯客户端实现类
独立内存类
2
RemoteException
IO出错信息类型扩展
继承实现类
3
RPC
根据类符号调用相应的类方法
独立内存类
4
Server
通讯服务器实现
抽象类
5
VersionedProtocol
根据通讯客户端参数来返回服务端协议版本
接口类
3.3 Metrics包的分析(7个类)
序号
类名
作用
备注
1
RpcMetrics
RPC调用对象时的信息记录表
继承实现类
2
RpcMgt
RPC信息表填充的实现类
继承实现类
3
RpcMgtMBean
RPC运行时的各信息应用方法定义
接口类
4 HDFS包的分析(106个类)
4.2 基础包的分析(6个类)
序号
类名
作用
备注
1
ChecksumDistributedFileSystem
分布式文件系统校验
继承实现类
2
DFSClient
客户端访问分布式文件系统的代理实现类,代理公司的对外服务,生产厂的各个包含。
独立内存类
3
DFSUtil
校验路径的分隔符存在有(: /)
独立内存类
4
DistributedFileSystem
分布式文件系统功能的实现
继承实现类
5
HftpFileSystem
采用HTTP协议来访问HDFS文件
继承实现类
6
HsftpFileSystem
采用HTTPs协议来访问HDFS文件
继承实现类
4.3 protocol包的分析(13个类)
序号
类名
作用
备注
1
AlreadyBeingCreatedException
文件已存在的异常信息抛出扩展
继承实现类
2
Block
Bolck内存基本块结构定义与读写访问
继承实现类
3
BlockListAsLongs
Bolck块的索引构成数组
独立内存类
4
ClientDatanodeProtocol
Datanode的协议结构的字段、值及方法
接口类
5
ClientProtocol
客户协议方法集定义
接口类
6
DatanodeID
DatanodeID组成部分的定义及访问读写类
继承实现类
7
DatanodeInfo
Datanode状态信息结构定义及访问读写类
继承实现类
8
DataTransferProtocol
数据传输状态或方法值定义
接口类
9
FSConstants
HDFS文件系统的规则值定义
接口类
10
LocatedBlock
已定位到的块的说明信息表的定义及读写
继承实现类
11
LocatedBlocks
一组数据块及文件长度说明信息表的定义及读写
继承实现类
12
QuotaExceededException
引用出错信息扩展
继承实现类
13
UnregisteredDatanodeException
未在索引块中定义的数据块中的出错信息定义
继承实现类
4.4 server.balancer包的分析(1个类)
序号
类名
作用
备注
1
Balancer
负载均衡进程,各节点基于他来进行任务量的平衡
独立内存类
4.5 server.common包的分析(12个类)
序号
类名
作用
备注
1
GenerationStamp
生成时间戳的功能及读写访问类
继承实现类
2
HdfsConstants
Hdfs常量字段及取值的定义
接口类
3
InconsistentFSStateException
文件状态检查出错提示信息
继承实现类
4
IncorrectVersionException
版本不正确检查时提示信息
继承实现类
5
Storage
内存中以扩展表记录方式记录当前namenode索引信息及状态信息(文件是否在打开)
继承实现类
6
StorageInfo
内存中文件索引信息基本表
独立内存类
7
Upgradeable
对象升级接口方法集定义
接口类
8
UpgradeManager
管理职责的定义
独立内存类、抽象
9
UpgradeObject
可升级对象的接口方法实现
继承实现类
10
UpgradeObjectCollection
可升级对象的集合容器实现
独立内存类
11
UpgradeStatusReport
升级过程状态信息表定义
继承实现类
12
Util
取系统时间的实现
独立内存类
4.6 server.datanode包的分析(14个类)
序号
类名
作用
备注
1
BlockMetadataHeader
数据块头部结构定义及实现
独立内存类
2
BlockReceiver
数据块接收容器信息结构及实现写入到盘中
继承实现类
3
BlockSender
从磁盘中读数据块并发送到相应接收者
继承实现类
4
BlockTransferThrottler
块传送时的调节参数配置表
独立内存类
5
DataBlockScanner
数据块的扫描工具实现
继承实现类
6
DataNode
数据块的核心管理器
继承实现类
7
DatanodeBlockInfo
数据块的基本信息维护表
独立内存类
8
DataStorage
数据存贮文件信息的定义与实现
继承实现类
9
DataXceiver
与数据读写通讯服务器的客户端实现
继承实现类
10
DataXceiverServer
读写的通讯服务器实现
继承实现类
11
FSDataset
数据块集合定义与实现
继承实现类
12
FSDatasetInterface
数据块操作的职能定义
接口类
13
UpgradeManagerDatanode
升级数据块管理者的实现
继承实现类
14
UpgradeObjectDatanode
升级数据块对象的实现
继承实现类
4.7 server.datanode.metrics包的分析(4个类)
序号
类名
作用
备注
1
DataNodeMetrics
数据块的量度信息输出实现类
继承实现类
2
DataNodeStatistics
数据块统计功能实现类
继承实现类
3
DataNodeStatisticsMBean
统计职能的定义
接口类
4
FSDatasetMBean
数据集的职能定义
接口类
4.8 server.namenode包的分析(40个类)
序号
类名
作用
备注
1
BlocksMap
数据块的索引信息定义及索引文件定义
独立内存类
2
CheckpointSignature
存贮信息的签名信息表定义
继承实现类
3
CorruptReplicasMap
损坏块的复制集合定义及实现
独立内存类
4
DatanodeDescriptor
数据节点的状态信息定义及实现
继承实现类
5
DfsServlet
Web方式操作DFS的代理接口
继承实现类
6
EditLogInputStream
读取日志数据的类方法定义及实现
继承实现类
7
EditLogOutputStream
写日志数据的类方法定义及实现
继承实现类
8
FileChecksumServlets
文件较验web操作命令的代理实现
继承实现类
9
FileDataServlet
文件数据web操作命令的代理实现
继承实现类
10
FsckServlet
文件系统检查web操作命令的代理实现
继承实现类
11
FSDirectory
文件目录结构的定义及实现
继承实现类
12
FSEditLog
文件系统日志表的定义
独立内存类
13
FSImage
文件系统的目录、文件、数据的索引及关系信息定义
继承实现类
14
FSNamesystem
为数据节点命名的信息结构定义
继承实现类
15
GetImageServlet
文件索引信息获取web操作命令的代理实现
继承实现类
16
Host2NodesMap
数据节点表集合的管理实现类
继承实现类
17
INode
节点基础信息结构定义
继承实现类
18
INodeDirectory
目录节点信息结构定义
继承实现类
19
INodeDirectoryWithQuota
带标记录的目录节点信息结构定义
继承实现类
20
INodeFile
文件节点信息结构定义
继承实现类
21
INodeFileUnderConstruction
在创建之下的文件节点信息结构定义
继承实现类
22
JspHelper
JSP文件生成工具
独立内存类
23
LeaseExpiredException
契约到期出错提示信息扩展
继承实现类
24
LeaseManager
契约信息结构定义及实现
独立内存类
25
ListPathsServlet
文件目录信息web操作命令的代理实现
继承实现类
26
NameNode
名称节点的核心服务器类
继承实现类
27
NamenodeFsck
名称节点的系统检测类
独立内存类
28
NotReplicatedYetException
未完成复制的出错提示信息扩展
继承实现类
29
PendingReplicationBlocks
正在复制数据块的信息表定义
独立内存类
30
PermissionChecker
权限检查表结构定义及实现
独立内存类
31
ReplicationTargetChooser
数据块复制策略设定
独立内存类
32
SafeModeException
安全模式下的提示信息扩展类定义
继承实现类
33
SecondaryNameNode
名称节点的热备节点核心线程类
继承实现类
34
SerialNumberManager
为用户或组设定基于名的一个编号关系
独立内存类
35
StreamFile
数据块流式读取web操作命令的代理实现
继承实现类
36
StringBytesWritable
字串转utf8字节工具
继承实现类
37
TransferFsImage
通过http方式来获取文件的镜像信息
继承实现类
38
UnderReplicatedBlocks
复制完成后的块信息表定义
继承实现类
39
UpgradeManagerNamenode
升级名称节点的管理信息
继承实现类
40
UpgradeObjectNamenode
升级名称节点的对象信息
继承实现类
4.9 server.namenode.metrics包的分析(5个类)
序号
类名
作用
备注
1
FSNamesystemMBean
取名称节点的文件状态信息
接口类
2
FSNamesystemMetrics
名称节点的文件命名度量信息设定
继承实现类
3
NameNodeMetrics
名称节点的自身度量信息设定
继承实现类
4
NameNodeStatistics
名称节点的统计信息读取
继承实现类
5
NameNodeStatisticsMBean
名称节点的统计信息方法集的定义
接口类
4.10 server.protocol包的分析(11个类)
序号
类名
作用
备注
1
BlockCommand
数据块命令定义及实现类
继承实现类
2
BlockMetaDataInfo
数据块的元数据信息定义及实现
继承实现类
3
BlocksWithLocations
带位置的块信息的读写
继承实现类
4
DatanodeCommand
数据节点基本信息定义及实现
继承实现类
5
DatanodeProtocol
数据节点的操作方法和基础配置信息定义
接口类
6
DatanodeRegistration
数据节点的注册信息读写方法定义及实现
独立内存类
7
DisallowedDatanodeException
与名称节点通讯出错的提示信息扩展
继承实现类
8
InterDatanodeProtocol
升级数据块信息的方法定义
接口类
9
NamenodeProtocol
名称节点方法集定义
接口类
10
NamespaceInfo
返回数据节点与名称节点关联信息定义
继承实现类
11
UpgradeCommand
升级数据块命名实现
继承实现类
4.11 tools包的分析(2个类)
序号
类名
作用
备注
1
DFSAdmin
管理员命令的实现
继承实现类
2
DFSck
文件系统检查命令的实现
继承实现类
5 UTIL包的分析(30个类)
序号
名称
作用
备注
1
Daemon
各种线程实例的集合存放处
2
DataChecksum
数据检查和统计类
3
DiskChecker
文件或目录是否在存检查
4
GenericOptionsParser
操作命令正确性检查器
5
GenericsUtil
取类型和数组转换
6
HeapSort
堆栈排序
7
HostsFileReader
宿主机上文件读取
8
IndexedSortable
索引排序基础端接口
接口
9
IndexedSorter
索引排序客户端接口
接口
10
LineReader
读取一行到内存中
11
MergeSort
合并后排序
12
NativeCodeLoader
系统程序加载类程序
13
PlatformName
取平台名称
14
PrintJarMainClass
列出jar文件中的类
15
PriorityQueue
队列优先级设置
16
ProcfsBasedProcessTree
进程树
17
ProgramDriver
有main类的驱动
18
Progress
进度计算
19
Progressable
进度方法接口
接口
20
QuickSort
快速排序
21
ReflectionUtils
类属性提取
22
RunJar
运行JAR包
23
ServletUtil
Servlet的工具类
24
Shell
运行操作系统命令类
25
StringUtils
字串处理类
26
Tool
Run方法接口
接口
27
ToolRunner
Run方法驱动
28
UTF8ByteArrayUtils
Utf8的字节数组比较
29
VersionInfo
系统版本信息
30
XMLUtils
XML解析类
6 TOOLS包的分析(3个类)
客户端用的工具命令
序号
类名
作用
备注
1
DistCp
不同文件之间位移
2
HadoopArchives
Hadoop文件打包
3
Logalyzer
日志分析
7 SERCURITY包的分析(3个类)
序号
类名
作用
备注
1
AccessControlException
权限检查提示信息
2
UnixUserGroupInformation
用户组信息unix系统上的读取实现
3
UserGroupInformation
用户组信息的存贮类和形式类
8 RECORD包的分析(50个类)
中介类是继承了接口的,中介类有三种(1)有委托中介类,即内部包含另一个存放地,此类只是规则中介;(2)无委托中介类,即自身就是一个存贮类;(3)控制委托中介类,即参数中介类,由控制提供该类具体的空间。
8.1 自身包下(13个类)
序号
类名
作用
备注
1
BinaryRecordInput
类型字段的读取
有委托中介类
2
BinaryRecordOutput
类型字段的写入
有委托中介类
3
Buffer
字节集存放类
无委手中介类
4
CsvRecordInput
推回类型方式字段读取
有委托中介类,推回输入流PushbackInputStream和PushbackReader带有一个推回缓冲区
5
CsvRecordOutput
推回类型方式字段写入
有委托中介类
6
Index
索引接口
接口类
7
Record
资源record方式读取抽象
抽象参数中介类,控制委托
8
RecordComparator
抽象类
参数委托中介类
9
RecordInput
原子读方法集
接口类
10
RecordOutput
原字写方法集
接口类
11
Utils
字串转XML,字串转字节等
独立功能类,基本内存类
12
XmlRecordInput
XML的记录方式读
有委托中介类
13
XmlRecordOutput
XML的记录方式写
有委托中介类
8.2 compiler包(21个类)
序号
类名
作用
备注
1
CGenerator
C语言代码生成
继承实现类
2
CodeBuffer
生成代码字串
独立内存类
3
CodeGenerator
代码生成方法抽象类
抽象类
4
CppGenerator
Cpp语言代码生成
继承实现类
5
JavaGenerator
JAVA语言代码生成
继承实现类
6
Consts
常量定义类
独立内存类
7
JBoolean
Boolean类型代码的描述文本生成
类继承实现类
8
JBuffer
buffer类型代码的描述文本生成
类继承实现类
9
JByte
byte类型代码的描述文本生成
类继承实现类
10
JCompType
comp类型代码的描述文本生成
类继承实现类
11
JDouble
double类型代码的描述文本生成
继承实现类
12
JField
名和类型键值对内存类
独立内存类
13
JFile
File名的定义类
独立内存类
14
JFloat
float类型代码的描述文本生成
继承实现类
15
JInt
int类型代码的描述文本生成
继承实现类
16
JLong
long类型代码的描述文本生成
继承实现类
17
JMap
map类型代码的描述文本生成
继承实现类
18
JRecord
Record类型代码的描述文本生成
继承实现类
19
JString
string类型代码的描述文本生成
继承实现类
20
JType
基本属性定义类
抽象定义类
21
JVector
Vector类型代码的描述文本生成
继承实现类
8.3 compiler.ant包(1个类)
序号
类名
作用
备注
1
RccTask
Ant文件定义及运行类
继承实现类
8.4 compiler.generate包(8个类)
序号
类名
作用
备注
1
ParseException
分析出错时的各类提示信息
继承实现类
2
Rcc
Rcc工具类
继承接口实现类
3
RccConstants
Rcc常量定义
独立内存类
4
RccTokenManager
JJ模板实现类
常量继承实现类
5
SimpleCharStream
简单字符流工具类
独立内存类
6
Token
间定义类
独立内存类
7
TokenMgrError
错误类型扩展定义类
继承实现类
8
rcc.jj
8.5 meta包(7个类)
序号
类名
作用
备注
1
FieldTypeInfo
字段类型定义类
独立内存类
2
MapTypeID
键值二列表定义类
继承实现类
3
RecordTypeInfo
记录类型定义类
继承实现类
4
StructTypeID
结构类型定义类
继承实现类
5
TypeID
字节与类型定义类
独立内存类
6
Utils
根据类型读取相应值
独立内存类
7
VectorTypeID
数组类型定义类
继承实现类
9 NET包的分析(13个类)
序号
类名
作用
备注
1
CachedDNSToSwitchMapping
内存DNS信息对
接口继承实现类
2
DNS
DNS功能实现类
独立内存类
3
DNSToSwitchMapping
解析DNS接口定义
接口类
4
NetUtils
网络功能调用类
独立内存类
5
NetworkTopology
网络拓朴关系类
独立内存类
6
Node
节点接口定义
接口类
7
NodeBase
节点接口实现类
接口继承实现类
8
ScriptBasedMapping
从脚本文件中读DNS信息
继承实现类
9
SocketInputStream
基于套接字的读
中介委托类
10
SocketIOWithTimeout
时间设置类
独立内存类
11
SocketOutputStream
基于套接字的写
中介委托类
12
SocksSocketFactory
套接字接口实现类
中介委托类
13
StandardSocketFactory
标准套接字实现类
继承实现类
10 Metrics包的分析(23个类)
10.1 自身类的分析(6个类)
序号
类名
作用
备注
1
ContextFactory
上下文数据采集类
独立内存类
2
MetricsContext
度量数据访问接口
接口类
3
MetricsException
度量出错信息类型扩展
继承实现类(纵向值扩展)
4
MetricsRecord
度量记录格式定义类
接口类
5
MetricsUtil
度量上下文访问类
对外访问独立类
6
Updater
度量上下文更新方法
接口类
10.2 Metrics.file包的分析(1个类)
序号
类名
作用
备注
1
FileContext
将度量信息写到文件中
继承实现类
10.3 Metrics.gangli包的分析(2个类)
序号
类名
作用
备注
1
GangliaContext
将度量信息写到map中
继承实现类
10.4 Metrics.jvm包的分析(2个类)
序号
类名
作用
备注
1
EventCounter
四种事件发生计数器
继承实现类
2
JvmMetrics
虚拟机度量信息管理
继承实现类
10.5 Metrics.spi包的分析(7个类)
序号
类名
作用
备注
1
AbstractMetricsContext
度量信息采集实现类
抽象继承实现类
2
MetricsRecordImpl
度量信息格式化记录类
继承实现类
3
MetricValue
度量值总量的定义类
独立内存类
4
NullContext
缺省信息采集实现类
继承实现类
5
NullContextWithUpdateThread
带采集周期的实现类
继承实现类
6
OutputRecord
度量信息的VO类
独立内存类
7
Util
采集目的地的指向类
独立内存类
10.6 Metrics.util包的分析(5个类)
序号
类名
作用
备注
1
MBeanUtil
度量服务对象的管理
独立内存类
2
MetricsIntValue
度量信息的值是整型的类
独立内存类
3
MetricsLongValue
度量信息的值是长整型的类
独立内存类
4
MetricsTimeVaryingInt
度量信息的值是随时间变化的整型的类
独立内存类
5
MetricsTimeVaryingRate
度量信息的值随时间变化的频率
独立内存类
11 LOG包的分析(1个类)
序号
类名
作用
备注
1
LogLevel
日志信息按类型输出管理
独立内存类
12 HTTP包分析(3个类)
序号
类名
作用
备注
1
FilterContainer
过滤器的填加方法
接口类
2
FilterInitializer
过滤器集合的设置方法
接口类
3
HttpServer
Jetty通讯容器工具
独立内存类
13 Conf包的分析(3个类)
序号
类名
作用
备注
1
Configurable
配置信息读写方法集合
接口类
2
Configured
配置信息读写实现类
继承实现类
3
Configuration
配置信息的VO类
独立内存类
14 FileCache包的分析(3个类)
序号
类名
作用
备注
1
Configurable
配置信息读写方法集合
接口类
2
Configured
配置信息读写实现类
继承实现类
3
Configuration
配置信息的VO类
独立内存类
15 FS包的分析(69个类)
15.1 自身包的分析(36个类)
序号
类名
作用
备注
1
BlockLocation
存贮块数据的空间索引信息
继承实现类
2
BufferedFSInputStream
从buffer内存中读取数据到字节数组中
继承实现类
3
ChecksumException
出错信息扩展类
继承实现类
4
ChecksumFileSystem
带校验文件的创建增删操作
继承实现类
5
ContentSummary
文件或目录统计信息数据类
继承实现类
6
DF
磁盘空间统计信息访问类
继承实现类
7
DU
磁盘空间统计信息访问类
继承实现类
8
FileChecksum
文件校验信息方法定义类
抽象继承实现类
9
FileStatus
文件当前状况结构定义及读写数据类
继承实现类
10
FileSystem
文件功能集的抽象实现实义类
继承实现类
11
FileUtil
文件操作的组织代理类。
独立内存类
12
FilterFileSystem
文件系统过滤实现类
继承实现类
13
FSDataInputStream
文件数据读入到用户内存定义空间中
继承实现类
14
FSDataOutputStream
用户内存数据写入到文件中
继承实现类
15
FSError
ERRO信息扩展类
继承实现类
16
FSInputChecker
带校验数据读入类
继承实现类
17
FSInputStream
从FS中读取数据
继承实现类
18
FSOutputSummer
写入数据到FS中
继承实现类
19
FsShell
FS功能的集合代理类
继承包含委托执行类实现
20
FsShellPermissions
文件操作权限检查
独立内存类
21
FsUrlConnection
远程FS文件的读取行为连接类
继承实现类
22
FsUrlStreamHandler
远程FS文件的读取行为连接驱动类
继承实现类
23
FsUrlStreamHandlerFactory
连接驱动类的工厂类
继承实现类
24
GlobExpander
全局扩展类
独立内存类
25
HarFileSystem
FS压缩文件操作实现类
继承实现类
26
InMemoryFileSystem
内存文件系统的操作实现类
继承实现类
27
LocalDirAllocator
本地目录文件块操作类
独立内存类
28
LocalFileSystem
本地文件系统操作类
继承实现类
29
MD5MD5CRC32FileChecksum
MD5格式的文件较验
继承实现类
30
Path
FS文件路径信息操作类
继承实现类
31
PathFilter
FS文件路径过滤
接口类
32
PositionedReadable
指定位置读方法定义
接口类
33
RawLocalFileSystem
无较验本地文件操作
继承实现类
34
Seekable
偏移地址方法定义
接口类
35
Syncable
异步操作方法定义
接口类
36
Trash
文件移动到垃圾箱操作
独立内存类
15.2 Fs.ftp包的分析(3个类)
序号
类名
作用
备注
1
FTPException
FTP出错信息扩展
独立内存继承类
2
FTPFileSystem
FTP远程文件在HDFS存贮中的创建
继承实现类
3
FTPInputStream
FTP文件的读入后并写入到FS中
继承实现类
15.3 Fs. kfs包的分析(5个类)
序号
类名
作用
备注
1
IFSImpl
KFS的方法集合
接口类
2
KFSImpl
KFS的方法实现类
继承实现类
3
KFSInputStream
从KFS读取数据写入到FS
继承实现类
4
KFSOutputStream
从FS读取数据写入到KFS
继承实现类
5
KosmosFileSystem
FKS的系统功能中介类
继承实现类
15.4 Fs.s3包的分析(12个类)
序号
类名
作用
备注
1
Block
块记录表定义(序号,度量)
独立内存类
2
FileSystemStore
FS系统读写的接口
接口类
3
INode
目录或文件的节点定义类
独立内存类
4
Jets3tFileSystemStore
S3文件系统的访问接口
继承实现类
5
MigrationTool
S3文件数据的迁移工具
继承实现类
6
S3Credentials
S3凭证验证
独立内存类
7
S3Exception
S3出错信息扩展
继承实现类
8
S3FileSystem
S3文件系统的统一代理使者
继承实现类
9
S3FileSystemException
S3文件操作时出错信息扩展
继承实现类
10
S3InputStream
S3文件读入到FS中
继承实现类
11
S3OutputStream
FS文件写入到S3中
继承实现类
12
VersionMismatchException
版本出错信息扩展
继承实现类
15.5 Fs.s3native包的分析(5个类)
序号
类名
作用
备注
1
FileMetadata
文件元数据(文件名、长度、状态)定义类
独立内存类
2
Jets3tNativeFileSystemStore
S3文件本地访部问实现类
继承实现类
3
NativeFileSystemStore
S3文件读写方法集定义
接口类
4
NativeS3FileSystem
S3文件读写到本地实现类
继承实现类
5
PartialListing
组成部分定义表
独立内存类
15.6 Fs.permission包的分析(4个类)
序号
类名
作用
备注
1
AccessControlException
出错信息的扩展,具有的记录定义
继承实现类
2
FsAction
行为枚举键值类
独立内存类
3
FsPermission
文件访问行为权限信息记录的中介类
继承实现类
4
PermissionStatus
文件访问的用户和组信息记录的中介类
继承实现类
15.7 Fs.shell包的分析(4个类)
序号
类名
作用
备注
1
Command
命令执行代理类
继承实现类
2
CommandFormat
命令格式检查类
独立内存类
3
CommandUtils
命令语句生成工具类
独立内存类
4
Count
数量统计功能类
继承实现类
16 MapRed包的分析(211个类)
16.1 基础类包的分析(135个类)
序号
类名
作用
备注
1
BasicTypeSorterBase
基本k-v的元数据信息定义类(K数量、度量等)
继承实现类
2
BufferSorter
排序方法接口定义
扩展接口类
3
Child
启动子线程管理类
独立内存类
4
ClusterStatus
MR集群的总量定义类
继承实现类
5
CommitTaskAction
置任务状态为确认
继承实现类
6
CompletedJobStatusStore
已完成作业的事后管理类
线程实现类
7
Counters
作业数量管理器
继承实现类
8
DefaultJobHistoryParser
作业历史文件读写
独立内存类
9
DisallowedTaskTrackerException
不充许任务者与作业连接时出错信息扩展
继承实现类
10
EagerTaskInitializationListener
作业创建事件发生时的监听类,生成大量任务线程
继承实现类
11
FileAlreadyExistsException
文件已存在出错信息扩展类
继承实现类
12
FileInputFormat
从文件中按KV格式的信息定义
继承实现类
13
FileOutputCommitter
指定输出到文件的确认
继承实现类
14
FileOutputFormat
从KV格式读取信息输出到文件的规则信息定义
继承实现类
15
FileSplit
文件分割器
继承实现类
16
HeartbeatResponse
心跳信息的定义类
继承实现类
17
HistoryViewer
Job历史文件的查看
独立内存类
18
ID
ID记录的访问
继承实现类
19
IFile
文件的读取与生成代理组织
独立内存类
20
IFileInputStream
带校验的文件读取执行
继承实现类
21
IFileOutputStream
带校验的文件写入执行
继承实现类
22
IndexCache
索引缓冲区的创建与访问
独立内存类
23
IndexRecord
索引记录格式定义类
独立内存类
24
InputFormat
切割份数和读取记录的方法定义
接口类
25
InputSplit
切割度量和切割位置的方法扩展
接口扩展类
26
InterTrackerProtocol
内部任务协议方法定义
接口扩展类
27
InvalidFileTypeException
非法文件类型错误信息扩展
继承实现类
28
InvalidInputException
无效输入类型错误信息扩展
继承实现类
29
InvalidJobConfException
JOB配置出错信息扩展
继承实现类
30
IsolationRunner
独立执行某个作业的程序
独立可执行类
31
JobChangeEvent
作业事件定义的抽象类
抽象类
32
JobClient
作业的逻辑策略执行管理类,是服务的注册入口
继承实现类
33
JobConf
MR的输入、输出、规则的值配置定义和存贮类
继承实现类
34
JobConfigurable
MR配置文件的接口方法定义
接口类
35
JobContext
作业和进程的关系定义类
独立内存类
36
JobEndNotifier
任务结束事件的监测和发送管理器
独立内存类
37
JobHistory
作业历史记录格式定义与记录读取和写入类
独立内存类
38
JobID
JOBID的定义类
继承扩展类
39
JobInProgress
作业和进程的所有信息的定义类
独立内存类
40
JobInProgressListener
作业相关进程的临听事件定义
抽象类
41
JobPriority
作业优先级符号枚举定义
枚举类
42
JobProfile
作业基本信息表定义类
继承扩展类
43
JobQueueClient
列出正在执行的作业队列的工具类
继承扩展类
44
JobQueueInfo
作业队列信息表的定义管理类
继承实现类
45
JobQueueJobInProgressListener
作业队例的所有作业的事件监听器定义
继承实现类
46
JobQueueTaskScheduler
作业队列关联的任务执行计划管理类
继承实现类
47
JobShell
作业的命令行执行工具
继承实现类
48
JobStatus
作业状态表定义管理类
继承实现类
49
JobStatusChangeEvent
作业状态事件变化前后表定义
继承实现类
50
JobSubmissionProtocol
作业的各类查询命令和状态控制命令集合
接口定义类
51
JobTracker
作业命令的实现
继承实现类
52
JobTrackerInstrumentation
作业命令执行状态方法定义(提交、完成)
独立内存类
53
JobTrackerMetricsInst
作业命令执行状态方法的计数实现
继承实现类
54
JSPUtil
处理JSP提交指令和生成JSP格式的报告
独立内存类
55
JVMId
虚拟机ID信息表定义及访问方式实现
继承实现类
56
JvmManager
虚拟机与作业的MR 任务关系管理
独立内存类
57
JvmTask
任务与虚拟机关系表定义及管理
继承实现类
58
KeyValueLineRecordReader
以行为单位的KV表的定义及KV记录的生成
继承实现类
59
KeyValueTextInputFormat
文本文件按行方式读取到内存中写入到KV记录表中
继承实现类
60
KillJobAction
被kill的作业的记录表定义
继承实现类
61
KillTaskAction
被kill的任务的记录表定义
继承实现类
62
LaunchTaskAction
已调装的任务的记录表定义
继承实现类
63
LimitTasksPerJobTaskScheduler
每作业最少任务计划表定义
继承实现类
64
LineRecordReader
行记录表的记录创建与读取
继承实现类
65
LocalJobRunner
本地作业的命令应用实现
继承实现类
66
MapFileOutputFormat
MAP文件输出格式定义(顺序)
继承实现类
67
MapOutputFile
获取MAP输出文件的路径信息
独立内存类
68
Mapper
文件内容分拆成N个KV键值对文件
接口类
69
MapReduceBase
扩展方法的空实现类
继承实现类
70
MapRunnable
客户继承该接口可以实现局部的文件映射
接口类
71
MapRunner
70接口的实现类
继承实现类
72
MapTask
MAP任务的任务定义表和任务执行实现类
继承实现类
73
MapTaskCompletionEventsUpdate
MAP任务完成事件通知表定义及记录读写
继承实现类
74
MapTaskRunner
Map作务的线程实现类
继承实现类
75
MapTaskStatus
MAP任务的执行状态访问方法实现
继承实现类
76
Merger
合并文件实现类
独立内存类
77
MergeSorter
合并前的排序实现类
继承实现类
78
MRConstants
MR常量定义
接口类
79
MultiFileInputFormat
多个文件输入时的处理方式定义类
继承实现类
80
MultiFileSplit
多文件分隔表的定义与记录处理
继承实现类
81
OutputCollector
KV记录收集方法定义
接口类
82
OutputCommitter
KV记录输出的确认抽象类方法定义
抽象类
83
OutputFormat
KV输出格式的类型定义接口
接口类
84
OutputLogFilter
输出日志过滤类实现
继承实现类
85
Partitioner
按K值进行分类块多少的方法定义
接口类
86
QueueManager
所有队列表的集合管理类
独立内存类
87
RamManager
预留内存块大小方法定义
接口类
88
RawKeyValueIterator
KEY的递归关系接口定义
接口类
89
RecordReader
KV读取类方法定义
接口类
90
RecordWriter
KV写入类方法定义
接口类
91
Reducer
归并接口定义
接口类
92
ReduceTask
归并任务表的定义与访问驱动类
继承实现类
93
ReduceTaskRunner
归并任务的线程实现类
继承实现类
94
ReduceTaskStatus
归并任务的状态表定义及记录管理类
继承实现类
95
ReinitTrackerAction
重新初始化跟踪器类型增加实现类
继承实现类
96
Reporter
控制报告的接口定义
接口类
97
ResourceEstimator
资源估计量的实现类
独立内存类
98
RunningJob
正在运行作业的操作方法集合定义
接口类
99
SequenceFileAsBinaryInputFormat
以二进制格式KV顺序读取流式文件
继承实现类
100
SequenceFileAsBinaryOutputFormat
以二进制格式KV顺序定入流式文件
继承实现类
101
SequenceFileAsTextInputFormat
以文本格式KV顺序读取流式文件
继承实现类
102
SequenceFileAsTextRecordReader
生成文件格式KV记录
继承实现类
103
SequenceFileInputFilter
读取流式文件的过滤条件设置
继承实现类
104
SequenceFileInputFormat
流式文件读取时的参数设置
继承实现类
105
SequenceFileOutputFormat
流式文件输出时的参数设置
继承实现类
106
SequenceFileRecordReader
流式文件MR记录的读取工具类实现
继承实现类
107
SkipBadRecords
跳过坏的记录类的工具实现
独立内存类
108
SortedRanges
指定范围形成排序的工具类
继承实现类
109
StatusHttpServer
生成各种状态图
继承实现类
110
Task
任务表的字段定义及设置方法实现类
独立内存类
111
TaskAttemptContext
任务上下文内存表定义及设置方法实现类
继承扩展子表实现类
112
TaskAttemptID
任务偿试ID定义类
继承扩展子表实现类
113
TaskCompletionEvent
任务完成事件表字段定义及设置类
继承实现类
114
TaskID
任务ID定义类
继承扩展子表实现类
115
TaskInProgress
在进程中的任务所有信息的内存表定义类
独立内存类
116
TaskLog
任务日志表定义及表记录生成实现类
独立内存类
117
TaskLogAppender
任务日志追加实现类
继承实现类
118
TaskLogServlet
任务日志文件的html页面生成
继承实现类
119
TaskMemoryManagerThread
任务内存管理线程实现类
继承实现类
120
TaskReport
任务报告表字段定义及设置类
继承实现类
121
TaskRunner
任务执行线程实现类
继承实现类
122
TaskScheduler
任务计划数据及方法定义类
抽象类
123
TaskStatus
任务状态表字段定义及设置方法类
继承实现类
124
TaskTracker
任务执行的各种方法实现类
继承实现类
125
TaskTrackerAction
任务跟踪的代理实现类
继承实现类
126
TaskTrackerInstrumentation
各类任务的状态信息访问方法集定义
独立内存类
127
TaskTrackerManager
任务跟踪管理者的职能工作定义
接口类
128
TaskTrackerMetricsInst
任务状态的度量值处理类
继承实现类
129
TaskTrackerStatus
任务跟踪器的状态表字段定义及存取类
继承实现类
130
TaskUmbilicalProtocol
任务与父类间方法定义
接口类
131
TextInputFormat
从文件切片内存中以字串的形式生成KV键值表
继承实现类
132
TextOutputFormat
以字串的形式输出KV键值表
继承实现类
133
JobInProgress_Counter.properties
作业次数概念的定义文件
134
Task_Counter.properties
任务次数概念的定义文件
135
Task_FileSystemCounter.properties
任务文件系统次数概念的定义文件
16.2 Mapred.jobcontrol包的分析(2个类)
序号
类名
作用
备注
1
Job
Job内存表的定义
独立内存类
2
JobControl
Job状态的全程监测类
继承实现类
16.3 Mapred.join包的分析(16个类)
序号
类名
作用
备注
1
ArrayListBackedIterator
用数组管理多模递归树
继承实现类
2
ComposableInputFormat
按照组合设定格式创建KV键值
继承实现类
3
ComposableRecordReader
组合格式KV创建与读写的方法接口定义
接口类
4
CompositeInputFormat
合成格式的KV键值的创建和读写实现
继承实现类
5
CompositeInputSplit
按照合成格式要求进行文件拆分
继承实现类
6
CompositeRecordReader
组合记录表的定义及记录管理
继承实现类
7
InnerJoinRecordReader
KV记录内存合成实现
继承实现类
8
JoinRecordReader
组合KV记录的创建与读取
继承实现类
9
MultiFilterRecordReader
多重过滤的KV记录读取
继承实现类
10
OuterJoinRecordReader
外部组合KV记录
继承实现类
11
OverrideRecordReader
KV记录重载读取
继承实现类
12
Parser
语法符号定义类
独立内存类
13
ResetableIterator
全状态递归集合的方法定义
接口类
14
StreamBackedIterator
字节流构成的递归集合
继承实现类
15
TupleWritable
序列化数据类的读写表定义及实现
继承实现类
16
WrappedRecordReader
有包装的KV记录的创建与加工处理
继承实现类
16.4 Mapred.lib包的分析(27个类)
序号
类名
作用
备注
1
Chain
组织MR的执行链集合类
独立内存类
2
ChainMapper
一个map任务多个执行活动组织
继承实现类
3
ChainReducer
一个reduce任务多个执行活动组织
继承实现类
4
DelegatingInputFormat
代理输入方式的处理类(切割策略和KV组织策略)
继承实现类
5
DelegatingMapper
Map任务的代理实现类
继承实现类
6
FieldSelectionMapReduce
内存字段的的MR实现类
继承实现类
7
HashPartitioner
Hash方式实现分类
继承实现类
8
IdentityMapper
KV不变输出到out中
继承实现类
9
IdentityReducer
KV不变输出到out中
继承实现类
10
InputSampler
输入的处理范例
继承实现类
11
InverseMapper
KV互换map实现
继承实现类
12
KeyFieldBasedComparator
按key字段进行比较
继承实现类
13
KeyFieldBasedPartitioner
按key字段进行v值的组合
继承实现类
14
KeyFieldHelper
Key字段的属性表定义与管理
独立内存类
15
LongSumReducer
长整型V值合加实现
继承实现类
16
MultipleInputs
多个输入路径的指定
独立内存类
17
MultipleOutputFormat
指定多种不同的文件输出方式
继承实现类
18
MultipleOutputs
输出值多种附加输出方式设定
独立内存类
19
MultipleSequenceFileOutputFormat
指定多种不同的流式文件输出方式
继承实现类
20
MultipleTextOutputFormat
指定多种不同的文本文件输出方式
继承实现类
21
MultithreadedMapRunner
多线程并发的MAP任务管理器
继承实现类
22
NLineInputFormat
指定N行V值读取方式
继承实现类
23
NullOutputFormat
空输出KV值
继承实现类
24
RegexMapper
带正则式的KV值处理
继承实现类
25
TaggedInputSplit
带标签的输入切分方式指定
继承实现类
26
TokenCountMapper
带缺省分隔符的KV生成类
继承实现类
27
TotalOrderPartitioner
分割后的文件排序
继承实现类
16.5 Mapred.lib.aggregate包的分析(17个类)
序号
类名
作用
备注
1
DoubleValueSum
计算浮点数的总和
独立内存类
2
LongValueMax
长整数中的最大值
独立内存类
3
LongValueMin
长整数中的最小值
独立内存类
4
LongValueSum
计算长整数的总和
独立内存类
5
StringValueMax
字串中最长的
独立内存类
6
StringValueMin
字串中最短的
独立内存类
7
UniqValueCount
消除重复值
独立内存类
8
UserDefinedValueAggregatorDescriptor
用户指定的一个聚合的格式表
继承实现类
9
ValueAggregator
聚合操作方法定义
接口类
10
ValueAggregatorBaseDescriptor
值聚合的总体介绍(有多少种),代理类
继承实现类
11
ValueAggregatorCombiner
聚合类的组合输出
继承实现类
12
ValueAggregatorDescriptor
描述接口方法定义
接口类
13
ValueAggregatorJob
聚合任务主类
独立内存类
14
ValueAggregatorJobBase
聚合的MR的公共数据基类
继承实现类
15
ValueAggregatorMapper
聚合的KV值生成算法
继承实现类
16
ValueAggregatorReducer
聚合的KV值聚类算法
继承实现类
17
ValueHistogram
计算字串的柱状图
继承实现类
16.6 Mapred.lib.db包的分析(4个类)
序号
类名
作用
备注
1
DBConfiguration
数据库访问参数逻辑标识符定义类及数据库访问操作
独立内存类
2
DBInputFormat
数据库表读取表名和字段名及查询条件设定与操作
继承实现类
3
DBOutputFormat
输出到指定的表中
继承实现类
4
DBWritable
数据库类的读写方法定义
接口类
16.7 Mapred.pipes包的分析(10个类)
序号
类名
作用
备注
1
Application
任务执行的进程启动管理类,启动相应任务
独立内存类
2
BinaryProtocol
二进制读取通讯实现类,调用MR相应的类
继承实现类
3
DownwardProtocol
进程中任务的时序方法定义
接口类
4
OutputHandler
输出的响应处类实现
继承实现类
5
PipesMapRunner
接收管道信息进行KV数组生成
继承实现类
6
PipesNonJavaInputFormat
从管道中设定KV的组成方式
继承实现类
7
PipesPartitioner
管道KV的分类整理
继承实现类
8
PipesReducer
管道KV的归类整理输出
9
Submitter
管道方式作业的执行策略代理类
继承实现类
10
UpwardProtocol
同步管道进程间信息传递处理方法
接口类
(责任编辑:IT)
1 Hadoop包总量(15个包)15个包,分下面几类: (1) 配置文件:这是一个多方共享的话,让每个人可以告诉群里每个人我想干啥,由控制者根据配置文件去找相应的实体指向。 (2) 共用工具:基础功能的提供者 (3) 通讯工具:大家是基于通讯进行工作的 (4) 基础运算:MR (5) 基本读写:IO (6) 文件处理:HDFS (7) 文件系统:FS (8) 文件缓存:FILECACHE (9) 安全机制: (10)统计处理: (11)类型释义:RECORD (12)用户外壳:TOOL (13)管控工具:HTTP 两个目的:(1)满足管理者的需要;HTTP(2)满足使用者的需要; 1.1 包的列表
1.2 包的作用
1.3 包的数量
1.4 端口定义
1.4.1 与HDFS有关的地址及端口属性任何一个系统具有内部协调职能、和对外职能服务、以级管控服务三部分组成。内部协调主要用于使系统内部提供一个统一的运营基础,对外职能是系统对外提供的主要服务。管控服务是使管者者对整个系统运行状况有一个整体的了解。 1.4.1.1 Namenode相关端口(1) fs.default.name 位置:conf/core-site.xml 必须项:是 常用值:hdfs:// [域名或IP地址] :9000 说明:NameNode 主服务器的地址 •必须在所有master及slave上的conf/core-site.xml中设置此项。并且因为Hadoop架构是主master模式,所以在一个集群中的所有master及slave上设置的fs.default.name值应该是唯一一个NameNode 主服务器的地址。 (2) dfs.http.address 位置:conf/hdfs-site.xml 必须项:否 默认值:0.0.0.0:50070 说明:NameNode HTTP状态监视地址 (3) dfs.secondary.http.address 位置:conf/hdfs-site.xml 必须项:否 默认值:0.0.0.0:50090 说明:SecondaryNameNode HTTP状态监视地址 1.4.1.2 Datanode相关端口(1) dfs.datanode.address 位置:conf/hdfs-site.xml 必须项:否 默认值:0.0.0.0:50010 说明:DataNode 服务的地址 (2) dfs.datanode.ipc.address 位置:conf/hdfs-site.xml 必须项:否 默认值:0.0.0.0:50020 说明:DataNode IPC服务的地址 (3) dfs.datanode.http.address 位置:conf/hdfs-site.xml 必须项:否 默认值:0.0.0.0:50075 说明:DataNode HTTP状态监视地址 1.4.2 与MapReduce 有关的地址及端口属性1.4.2.1 JOBTACKER相关端口(1) mapred.job.tracker 位置:conf/mapred-site.xml 必须项:是 常用值:[域名或IP地址] :9001 说明:JobTracker 主服务器地址及端口 •必须在所有master及slave上的conf/mapred-site.xml中设置此项。并且因为Hadoop架构是主master模式,所以在一个集群中的所有master及slave上设置的mapred.job.tracker的值应该是唯一一个JobTracker 主服务器的地址。 (2) mapred.job.tracker.http.address 位置:conf/mapred-site.xml 必须项:否 默认值:0.0.0.0:50030 说明:JobTracker HTTP状态监视地址 1.4.2.2 TASKTACKER相关端口(1) mapred.task.tracker.report.address 位置:conf/mapred-site.xml 必须项:否 默认值:127.0.0.1:0 说明:提交报告用TaskTracker 服务地址 (2) mapred.task.tracker.http.address 位置:conf/mapred-site.xml 必须项:否 默认值:0.0.0.0:50060 说明:TaskTracker HTTP状态监视地址
2 IO包的分析(84个类)2.1 IO基础包分析(45个类)
2.2 Compress包的分析(16个类)
2.3 Compress.bzip2包的分析(4个类)
2.4 Compres.lzo包的分析(2个类)
2.5 Compress.zlib包的分析(5个类)
2.6 Compress.retry包的分析(4个类)
2.7 Serializer包的分析(8个类)
3 IPC包的分析(8个类)3.1 IPC包的简介3.1.1 基础分析RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。当我们讨论HDFS的,通信可能发生在: •Client-NameNode之间,其中NameNode是服务器 •Client-DataNode之间,其中DataNode是服务器 •DataNode-NameNode之间,其中NameNode是服务器 •DataNode-DateNode之间,其中某一个DateNode是服务器,另一个是客户端 如果我们考虑Hadoop的Map/Reduce以后,这些系统间的通信就更复杂了。为了解决这些客户机/服务器之间的通信,Hadoop引入了一个RPC框架。该RPC框架利用的Java的反射能力,避免了某些RPC解决方案中需要根据某种接口语言(如CORBA的IDL)生成存根和框架的问题。但是,该RPC框架要求调用的参数和返回结果必须是Java的基本类型,String和Writable接口的实现类,以及元素为以上类型的数组。 既然是RPC,当然就有客户端和服务器,当然,org.apache.hadoop.rpc也就有了类Client和类Server。但是类Server是一个抽象类,类RPC封装了Server,利用反射,把某个对象的方法开放出来,变成RPC中的服务器。
3.1.2 应用分析由于Client可能和多个Server通信,典型的一次HDFS读,需要和NameNode打交道,也需要和某个/某些DataNode通信。这就意味着某一个Client需要维护多个连接。同时,为了减少不必要的连接,现在Client的做法是拿ConnectionId(图中最右侧)来做为Connection的ID。ConnectionId包括一个InetSocketAddress(IP地址+端口号或主机名+端口号)对象和一个用户信息对象。这就是说,同一个用户到同一个InetSocketAddress的通信将共享同一个连接。
3.2 基础包的分析(5个类)
3.3 Metrics包的分析(7个类)
4 HDFS包的分析(106个类)4.2 基础包的分析(6个类)
4.3 protocol包的分析(13个类)
4.4 server.balancer包的分析(1个类)
4.5 server.common包的分析(12个类)
4.6 server.datanode包的分析(14个类)
4.7 server.datanode.metrics包的分析(4个类)
4.8 server.namenode包的分析(40个类)
4.9 server.namenode.metrics包的分析(5个类)
4.10 server.protocol包的分析(11个类)
4.11 tools包的分析(2个类)
5 UTIL包的分析(30个类)
6 TOOLS包的分析(3个类)客户端用的工具命令
7 SERCURITY包的分析(3个类)
8 RECORD包的分析(50个类)中介类是继承了接口的,中介类有三种(1)有委托中介类,即内部包含另一个存放地,此类只是规则中介;(2)无委托中介类,即自身就是一个存贮类;(3)控制委托中介类,即参数中介类,由控制提供该类具体的空间。 8.1 自身包下(13个类)
8.2 compiler包(21个类)
8.3 compiler.ant包(1个类)
8.4 compiler.generate包(8个类)
8.5 meta包(7个类)
9 NET包的分析(13个类)
10 Metrics包的分析(23个类)10.1 自身类的分析(6个类)
10.2 Metrics.file包的分析(1个类)
10.3 Metrics.gangli包的分析(2个类)
10.4 Metrics.jvm包的分析(2个类)
10.5 Metrics.spi包的分析(7个类)
10.6 Metrics.util包的分析(5个类)
11 LOG包的分析(1个类)
12 HTTP包分析(3个类)
13 Conf包的分析(3个类)
14 FileCache包的分析(3个类)
15 FS包的分析(69个类)15.1 自身包的分析(36个类)
15.2 Fs.ftp包的分析(3个类)
15.3 Fs. kfs包的分析(5个类)
15.4 Fs.s3包的分析(12个类)
15.5 Fs.s3native包的分析(5个类)
15.6 Fs.permission包的分析(4个类)
15.7 Fs.shell包的分析(4个类)
16 MapRed包的分析(211个类)16.1 基础类包的分析(135个类)
16.2 Mapred.jobcontrol包的分析(2个类)
16.3 Mapred.join包的分析(16个类)
16.4 Mapred.lib包的分析(27个类)
16.5 Mapred.lib.aggregate包的分析(17个类)
16.6 Mapred.lib.db包的分析(4个类)
16.7 Mapred.pipes包的分析(10个类)
(责任编辑:IT) |