• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

黄文超

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

HDFS如何保证数据的完整性呢?

HDFS如何保证数据的完整性呢?

1、客户端向HDFS写数据的时候

1、假设客户端发送2KB的数据
2、客户端会以字节的方式往datanode发送,所以客户端会计算发送的数据有多少个,而这个单位就是chunk,它一般情况是512字节,也就是说,每512字节就称为一个chunk。
3、客户端可以计算出checksum值,checksum = 2KB/512B=4
4、然后datanode接收客户端发送来的数据,每接收512B的数据,就让checksum的值+1
5、最后比较客户端和datanade的checksum值

注意:客户端读取数据也是同样的道理

2、DataNode读取block块的时候

1、block创建的时候会有一个初始的checksum值
2、DataNode每隔一段时间就会计算block新的checksum值,看block块是否已经丢失
3、如果checksum和之前一样,则没丢失,和之前比出现了不一样,那就说明数据丢失(或者异常)
4、当发生异常的时候,DateNode会报告给NameNode,NameNode会发送一条命令,清除这个异常块,然后找到这个块对应的副本,将完整的副本复制给其他的DataNode节点

posted on 2021-04-11 19:55  黄文超  阅读(548)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3