HDFS源码分析(1):datanode概况

March 5, 2012 / datanode, HDFS, source

前提

Hadoop版本:hadoop-0.20.2

概况

HDFS(Hadoop Distributed File System)是一个复杂的项目,大体上分为namenode、datanode、client三部分。namenode是核心部分,管理着文件的信息、数据块的映射关系、checkpoint、编辑日志等,处理HDFS的主要逻辑,作为服务端接收datanode、client的请求并进行处理。datanode主要管理文件的数据块,datanode与namenode是客户端/服务端结构,每隔一段时间会向namenode发送心跳,namenode会返回一些命令;datanode之间是对等结构,相互之间可以通过socket来进行通信、发送数据;datanode与client之间是服务端/客户端结构,接受client的读、写请求。

client读数据如下图所示:

client写数据如下图所示:

由datanode直接与操作系统的文件系统打交道,处理文件的操作,因而自底向上,先从datanode的源码开始分析。

datanode源码结构

在hadoop-0.20.2中,datanode相关的代码大约1万行左右,主要代码在以下几个包中:

后续将会对datanode的数据结构、协议、存储、数据、行为等进行分析。

后记

文中若有错误或疏漏之处,烦请批评指正。