> Linux集群 > Hadoop >

Hadoop-HDFS源码学习草记

HDFS

protocol:

Block 块定义,组成(blockId,numBytes,generationStamp),定义问块文件的文件命名为blk_{blockId},存储的最小单位。

BlockListAsLongs:每个Block块可以由3个long的数字表达,使用long[]存储Block[],主要用于datanode高效的上报给namenode

DatanodeID:标准dataNode,由name,storageID,infoPort(info服务端口),ipcPort(ipc服务端口)组成。ustorageID是hadoop集群唯一的。name由hostname:port组成。

DatanodeInfo:

DatanodeInfo represents the status of a DataNode. 

This object is used for communication in the Datanode Protocol and the Client Protocol

继承DatanodeID,实现Node,表示dataNode的统计信息,包括总容量,已用,剩余,名称,hostname,路径等信息

 

LocatedBlock:定义块的定位,包括block,在文件中的偏移量offset和存储的所有节点信息DatanodeInfo[]

LocatedBlocks:定义文件的块信息,包括文件大小,LocatedBlock集合和underConstruction(目前不晓得做什么,后面看看在说)等

 

 

namenode:

ClientProtocol:定义客户端与Namenode的HDFS相关的文件系统操作,因为Namenode只是提供元数据的操作,所有该接口提供了出去IO操作的主要文件系统操作定义。

同时实现VersionedProtocol表示通过ipc方式为客户端提供RPC服务。由NameNode(服务器端)和DistributeFileSystem(客户端)分别实现该接口

DatanodeProtocol:namenode与datanode间通讯的业务接口

NamenodeProtocol:定义secondary Namenode与Namenode间通讯的业务接口。

 

 

core-net包

Node: 接口,抽象定义网络拓扑中的一个节点,每个节点都定义name(名称),networkLocation(路径,如/datacenter1/rack1);也拥有Node的Parent引用

NodeBase: Node的基本实现,默认适配器模式。


 

(责任编辑:IT)