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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值