namenode和datanode工作机制_HDFS详解一:namenode、datanode工作原理

1. 概述HDFS集群分为两大角色:NameNode、DataNode(Secondary NameNode)

NameNode负责管理整个文件系统的元数据,记录存放在哪些datanode中,以及存放路径

dataNode 负责管理用户的文件数据块

文件会按照固定大小(blocksize)来切分成块后分布式存储在若干台datanode上

每一个文件快可以有多个副本,并存放在不同的datanode上

datanode 会定期向namenode汇报自身所保存的文件block信息,而namenode则会负责保持文件的副本数量(当减少datanode的时候,namenode才知道当前副本状态,从而进行副本维持)

HDFS的内部工作机制对客户端保持透明,客户端请求访问HDFS都是通过向namenode申请来进行

2. 写数据流程

比较简单,看图即懂

上传文件到HDFS流程图

3. 读数据流程

比较简单,看图即懂

从HDFS读取文件流程图

4. nameNode、secondNameNode管理元数据机制

4.1 机制

每次更新元数据,namenode都需要记录下来这些更新信息,方便之后查询更新过的元数据。

假如每次记录在磁盘上,几千万上亿条元数据写入速度会非常慢,导致磁盘IO使用率过高,效率低;读数据的时候再上亿条数据里面搜索,查询的效率也非常低。

因此需要将更新记录放在内存中(new一个元数据对象),如果仅仅使用内存,亿级的数据又会使nameNode死机或者意外断电,那么内存中的记录全部丢失。

所以需要把内存中的亿级元数据定时写入fsimage中。由于一条元数据平均大小为150Bytes,定时时间太长的话中途断电就丢失了,定时时间太短又会导致磁盘IO占用过高的问题。

这样,secondNameNode就引入了,用于fsimage镜像同步管理。

1. 用户更新元数据时,将更新记录写入namenode内存

2. 在第1步的同时,在namenode中,只将内存中更新的记录追加到日志文件(edi

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值