当前位置: 首页 > news >正文

【Hadoop|HDFS篇】DataNode概述

1. DataNode的工作机制

1)一个数据块在DataNode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。

2)DataNode启动后向NameNode注册,通过后,周期性(6h)的向NameNode上报所有块信息。

DN向NN汇报当前解读信息的时间间隔,默认6小时。

DN扫描自己节点块信息列表的时间,默认为6小时。

3)心跳是每3s一次,心跳返回的结果带有NameNode给该DataNode的命令如复制块数据到另一台机器上,或删除某个数据块,如果超过10分钟没收到某个DataNode的心跳,NameNode认为该DataNode挂掉了。信息不会存储在该DataNode上了。

如图:

我把hadoop104这台机器停掉了,超过了10分种加三十秒没向hadoop102发送心跳,NameNode则认为我这台机器挂掉了。以后Block不会存储在这个节点上了。但能不能恢复呢。是可以的。开启hadoop104并输入命令hdfs --daemon start datanode.

2. 数据的完整性

思考:如果电脑磁盘里面存储的数据是控制高铁信号灯的红灯信号(1)和绿灯信号(0).但是存储该数据的磁盘坏了,一直显示是绿灯,是否很危险呢?同理DataNode节点上的数据损坏了,但没有发现,是否也很危险呢?该如何解决呢?

如下是DataNode节点保证数据完整性的方法:

  • 当DataNode读取Block时,它会计算CheckSum校验和。
  • 如果计算后的校验和与Block创建的时候的值不一样,说明Block已经损坏。
  • Client读取其他DataNode上的Block。
  • 常见的校验算法crc(32),md5(128),shal(160).
  • DataNode在其文件创建后周期验证CheckSum。

3. DataNode掉线时参数设置

1. DataNode进程死亡或者网络故障造成DataNode无法与NameNode通信。

2. NameNode不会立即把该节点判定为死亡,要经过一段时间,这段时间暂停称作超时时长。

3. HDFS默认的超时时长为10分钟+30s。

如果定义超时时间为TimeOut,则超时时长的计算公式为:

TimeOut = 2*dfs.namenode.heartbeat.recheck-interval + 10*dfs.heartbeat.interval。

而默认的dfs.namenode.heartbeat.recheck-interval大小为5分钟,dfs.heartbeat.interval默认为3s。

绿色框框的表示2s前向NameNode发送心跳。

http://www.lryc.cn/news/436952.html

相关文章:

  • Vue2 VueRouter学习笔记
  • 3D培训大师,化工企业安全教育与应急演练的新助力
  • 斯坦福大学论文润色chat-gpt指令
  • 简单硬件在环搭建(ROS+Prescan+Carsim+simulink)
  • 【Python 数据分析学习】Pandas基础与应用(1)
  • pytorch入门(1)——pytorch加载数据初认识
  • Spring下载文件
  • 如何在数据库中备份表:操作指南与注意事项
  • 【数据结构】第八节:链式二叉树
  • Fair Graph RepresentationLearning via Diverse Mixture-of-Experts
  • 电机驱动开发之驱动板
  • STM32F1 HAL库笔记2_HAL 系统驱动程序
  • el-table实现当内容过多时,el-table显示滚动条,页面不显示滚动条
  • Java面试篇基础部分-Java中的异常以及异常处理
  • win11 MySQL的坑
  • stm32单片机个人学习笔记1(简单介绍)
  • python中@staticmethod、@classmethod用法
  • Harmony Next 文件命令操作(发送、读取、媒体文件查询)
  • Go语言中的链表与双向链表实现
  • 开始一个WPF项目时的记忆重载入
  • 用go语言实现树和哈希表算法
  • 基于SpringBoot+Vue+MySQL的校园健康驿站管理系统
  • 深入理解MATLAB中的事件处理机制
  • 线程--线程同步
  • 【QT】Qt窗口
  • 场外个股期权怎么给股票加杠杆?
  • 【Docker部署ELK】(7.15)
  • UE4_后期处理_后期处理材质及后期处理体积一
  • 【PyQt6 应用程序】基于QtDesigner做一个用户登录页面
  • Ollama—87.4k star 的开源大模型服务框架!!