chenshaowei

HDFS组成架构

NameNode
  1. 管理HDFS的名称空间
  2. 配置副本策略,fsimage和edit
  3. 管理数据块block映射信息
  4. 处理客户端读写请求
DataNode
  1. 存储实际的数据块
  2. 执行数据块的读写操作
Client
  1. 文件切分,split成block
  2. 与NameNode交互,获取数据块位置信息
  3. 与DataNode交互,读写或写入数据
  4. 通过Shell管理HDFS,操作HDFS
SecondaryNameNode
  1. 合并镜像和编辑日志,fsimage和edit,帮助NameNode备份
  2. 紧急情况下,充当NameNode

HDFS写数据流程

  1. 客户端向NameNode请求上传文件
  2. NameNode返回确认信息
  3. 客户端发送文件大小等信息,需要几个block
  4. NameNode返回DataNode节点,一般为3个
  5. 客户端向DataNode1请求上传数据,DataNode1收到请求后,向DataNode2发送,DataNode2向DataNode3发送
  6. 3个DataNode逐渐答应请求,完成通信管道建立
  7. 客户端向数据节点1发送第一个Block数据,数据节点1接收后发送给数据节点2,数据节点2发送数据节点3,完成备份
  8. 传输完毕后,关闭通信,结束写数据流程

其中,第一个副本随机一个,第二个副本和第一个副本同一个机架,第三个副本位于不同机架,随机节点。

HDFS读数据流程

  1. 客户端向名称节点请求读文件,通过元数据得到数据所在的数据节点
  2. 向数据节点请求读数据
  3. 数据节点传输数据给客户端
  4. 接收完毕,关闭连接

分类:

技术点:

相关文章: