HDFS理论基础

1.存储模型

HDFS理论基础_第1张图片

2.架构设计

HDFS理论基础_第2张图片

HDFS理论基础_第3张图片

HDFS理论基础_第4张图片

3.角色功能

PS:角色对应的就是一个或者多个进程

HDFS理论基础_第5张图片

4.元数据持久化

HDFS理论基础_第6张图片

5.安全模式

HDFS理论基础_第7张图片

HDFS理论基础_第8张图片

HDFS理论基础_第9张图片

HDFS合并EditLog与FsImage的过程:

  1. HDFS启动前会进行格式化,生成一个空的FsImage,假设HDFS集群在8:00时进行第一次初始化启动
  2. 8:00 - 9:00 期间,对HDFS的操作记录在EditLog中,NameNode内存中存储了相关的元数据,但是此时硬盘中的FsImage还是空的
  3. 假设9点到达checkpoint,Secondary NameNode拉取NameNode中的FsImage(此时为空),以及EditLog(记录了8:00 - 9:00的操作日志),NameNode同时会生成一个新的EditLog,记录9:00以后的操作日志
  4. Secondary NameNode将拉取到的EditLog合并到FsImage中,合并完成之后,将其推送到NameNode
  5. NameNode使用新的FsImage替换之前旧的FsImage,将NewEditLog(记录9:00的操作日志)替换之前的EditLog(记录的是8:00 - 9:00的操作日志)。

HDFS理论基础_第10张图片

6.副本放置策略

HDFS理论基础_第11张图片

7.读写流程

下图描述了在某一时间点,客户端往HDFS上传一个块的示意图:

  1. 客户端与NameNode交互,告诉NameNode需要上传文件
  2. NameNode触发副本放置策略,告诉客户端块的副本放到哪些节点,节点是有序的
  3. 客户端与第一个节点创建TCP连接,并告诉这个节点,后面的节点是哪些
  4. 第一个节点与第二个结点建立连接,并告诉第二个节点,后面的节点是哪些
  5. 同理,这些副本放置节点会串联起来
  6. 客户端将块分为多个小块,依次将小块传输给第一个节点
  7. 客户端将第一个小块往第二个节点传输完成后,就开始向其传输第二个小块,与此同时,第一个节点就会向第二个节点传输第一个小块
  8. 类推下去,与流水线类似,客户端只需要往第一个节点传输数据,就能完成将数据传输到多个节点的功能。且耗费的时间比客户端分别向多个节点传输花费的时间更少。这里,流水线传输就类似于一个变种的并行传输。

HDFS理论基础_第12张图片

HDFS读流程:

HDFS理论基础_第13张图片 HDFS理论基础_第14张图片

参考链接:

清华大牛精讲Hadoop全套教程_从入门到精通(HDFS集群/MapReduce底层原理、源码~~)_哔哩哔哩_bilibili

你可能感兴趣的:(Hadoop,hdfs,hadoop,big,data)