Sgg:HDFS读写数据原理&&NameNodeDataNode


Hadoop distributed file system
Hadoop分布式文件系统

1 写数据原理

在这里插入图片描述

  1. 客户还client向namenode请求上传文件
  2. namenode应答,可以上传
  3. 请求上传第一个block(HDFS中对数据的存储都是成块存在的,默认为128MB/block),因此需要成块上传。
  4. namenode返回存储数据的几个节点。
  5. client请求datanode建立传输block的通道
  6. datanode回复应答成功
  7. 开始传输数据。

2 读数据原理

在这里插入图片描述

  • 客户端client向namnode请求下载文件
  • namenode返回元数据
  • 客户端client拿到元数据开始找元数据所在的节点
  • 根据每个节点请求读取数据
  • 然后传输数据

3 NameNode&DataNode

3.1NameNode&SecondaryNameNode

3.1.1作用

NameNode:
在这里插入图片描述

  • 存储文件的元数据。(文件名、文件目录结构、文件属性)
  • 每个文件块所在的DataNode

SecondaryNameNode:
在这里插入图片描述
不是NameNode的备份!!

  • 监控整个HDFS的集群运行
  • 每隔一段时间获取NameNode的快照,帮助它合并文件。

3.1.2工作机制

在这里插入图片描述
第一阶段

  1. hdfs第一次启动需要格式化NameNode,创建edits和Fsimage文件。如果不是第一次启动,则直接加载edits文件和Fsimage文件到内存。
  2. 客户端请求对元数据进行增删查改。
  3. NameNode记录操作日志,更新滚动日志。
  4. NameNode进行增删改查。

第二阶段

  1. SecondaryNameNode每隔一段时间询问NameNode是否需要checkpoint。
  2. SecondaryNameNode向NameNode请求checkpoint。
  3. NameNode滚动文件日志edits
  4. 拷贝edits文件和fsimage文件到SecondaryNameNode,将二者加载到内存,并合并。
  5. 生成新的fsimage文件:fsimage.chkpoint。
  6. 拷贝fsimage.chkpoint文件到NameNode。
  7. NameNode将fsimage.chkpoint重新命名为fsimage。

3.2 DataNode

3.2.1 作用

在这里插入图片描述
存储数据文件、数据块的校验和。

3.2.2 原理

在这里插入图片描述

  1. DataNode启动后向NameNode注册。
  2. NameNode返回注册成功。
    心跳机制:
  3. 每隔三秒DataNode向NameNode传递一次心跳,伴随NameNode对DataNode的命令
  4. 如果超过10分钟DataNode不向NameNode传递信息,则认为这个节点不可用。已挂。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值