HDFS理论基础

HDFS理论基础,第1张

HDFS理论基础 1.存储模型

2.架构设计

3.角色功能

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

4.元数据持久化

5.安全模式

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的 *** 作日志)。

6.副本放置策略

7.读写流程

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

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

HDFS读流程:

 

参考链接:

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

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5679425.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存