hadoop作为开源云平台得到了大力的发展,hadoop主要分为两部分,HDFS和MapReduce,下面主要从这两部分进行学习。
HDFS:结构如下
主要结构云云的就不在累述了,相信大家都已经很了解了,在这个结构中我们可以将HDFS再进一步进行细分,可以分为NameNode和DataNode两部分。NameNode主要负责对名字空间的存储管理,DataNode则实际对数据进行存储。在2.0版本中采用“池”的概念进行管理,这样能将多个Hadoop部署到同一个集群,每个hadoop集群使用一个pool池,并且互不影响。
DataNode:
hadoop中,datanode对数据的管理采用卷的管理方式,首先,hdfs含有一个卷组(FsDatasetImpl),卷组由多个卷(FsVolumeImpl)组成,卷则由BlockPoolSlice组成(及多个block池组成),最后在各个block池中则拥有数量不等的文件(文件夹和文件)组成(用于存放block及其元数据信息)。
初始化DataNode时主要你做一些初始化工作,例如初始化DataNode对应的NameNode,设置访问权限,初始化数据困存储目录等等,并同时开启DataNode服务,服务主要包括:开启DataNode服务线程,这个线程主要负责NameNode以及用户对DataNode发起的访问;开启IPC服务;开启数据块存储池管理器;另外还有初始化DataNode信息采集的的工具DataNodeMetrics等等。
下面我们主要讲解一下其中的“DataNode服务线程”运行机制以及数据块存储池管理对应源码中分别为:DataXceiverServer和BlockPoolTokenSecretManager
下一篇 DataXceiverServer运行流程学习