NameNode和DataNode工作原理

  • 组件模块说明
  • NameNode工作原理
    • 第一阶段: NameNode 启动
    • 第二阶段: Secondary NameNode 工作
  • DataNode 工作机制

组件模块说明

Hadoop:以下内容以V3.3版本

NameNode:存储文件的元数据。作用:管理HDFS的名称空间;配置副本策略;管理数据块(Block)映射信息;处理客户端读写请求。NameNode两个重要文件(内存中的镜像=fsimage+edits)。

fsimage:元数据镜像文件。NameNode的元数据存放在内存中,为了断电不丢数据,因此需要在磁盘中备份元数据。

edits:元数据操作日志(针对目录树的修改操作),被写入共享存储系统中, 如NFS、 JournalNode。当在内存中的元数据更新时,如果同时更新 FsImage,就会导致效率过低,但如果不更新,就会发生一致性问题,一旦 NameNode 节点断电,就会产生数据丢失。 因此,引入 Edits 文件(只进行追加操作,效率很高) 。每当元数据有更新或者添加元数据时,修改内存中的元数据并追加到 Edits 中。 这样,一旦 NameNode 节点断电,可以通过 FsImage 和 Edits 的合并,合成元数据。

SecondaryNamenode:如果长时间添加数据到 Edits 中,会导致该文件数据过大,效率降低,而且一旦断电,恢复元数据需要的时间过长。因此,需要定期进行 FsImage 和 Edits 的合并,如果这个操作由 NameNode完成,又会效率过低。因此,引入一个新的组件SecondaryNamenode,专门用于 FsImage 和 Edits 的合并。

DataNode:在本地文件系统存储文件块数据,以及块数据的校验和。作用:存储实际的数据块;执行数据块的读/写操作。

Checkpoints: 作用就是合并fsimage和Edits文件,然后生成最新的fsimage。时间设置:1.定时时间到,默认每隔一小时执行一次(dfs.namenode.checkpoint.period)。2.数据满了,默认一分钟检查一次操作次数,当操作次数达到 1 百万时, SecondaryNameNode 执行一次(dfs.namenode.checkpoint.check.period和dfs.namenode.checkpoint.txns)。

NameNode工作原理

第一阶段: NameNode 启动

  1. 第一次启动 NameNode 格式化(hdfs namenode -format)后, 创建 Fsimage 和 Edits 文件。如果不是第一次启动,直接加载编辑日志和镜像文件到内存。
  2. 客户端对元数据进行增删改的请求。
  3. NameNode 记录操作日志,更新滚动日志,写入edits_inprogress,先记录文件再写入内存。
  4. NameNode 在内存中对元数据进行增删改。

第二阶段: Secondary NameNode 工作

  1. Secondary NameNode 询问 NameNode 是否需要 CheckPoint。
  2. Secondary NameNode 请求执行 CheckPoint。
  3. NameNode 滚动正在写的 Edits 日志,生成edits_inprogress_002记录正在写的日志,再把edits_inprogress_001改为edits_001。
  4. 将滚动前的编辑日志(edits_001)和镜像文件(fsimage)拷贝到 Secondary NameNode。
  5. Secondary NameNode 加载编辑日志(edits_001)和镜像文件(fsimage)到内存,并合并。
  6. 生成新的镜像文件 fsimage.chkpoint。
  7. 拷贝 fsimage.chkpoint 到 NameNode。
  8. NameNode 将 fsimage.chkpoint 重新命名成 fsimage。

DataNode 工作机制

  1. 一个数据块在 DataNode 上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。DataNode 启动后向 NameNode 注册。
  2. 注册成功。
  3. 注册成功后,周期性(6 小时) 的向 NameNode 上报所有的块信息。
  4. 心跳是每 3 秒一次,心跳返回结果带有 NameNode 给该 DataNode 的命令(如复制块数据到另一台机器,或删除某个数据块)。
  5. 如果超过 10 分钟+30秒没有收到某个 DataNode 的心跳,则认为该节点不可用。

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

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

而默认的dfs.namenode.heartbeat.recheck-interval 大小为5分钟,dfs.heartbeat.interval默认为3秒。即10 分钟+30秒。
源码位于hadoop-hdfs-project\hadoop-hdfs\src\main\java\org\apache\hadoop\hdfs\server\blockmanagement\DatanodeManager.java:

    heartbeatIntervalSeconds = conf.getTimeDuration(DFSConfigKeys.DFS_HEARTBEAT_INTERVAL_KEY,DFSConfigKeys.DFS_HEARTBEAT_INTERVAL_DEFAULT, TimeUnit.SECONDS);heartbeatRecheckInterval = conf.getInt(DFSConfigKeys.DFS_NAMENODE_HEARTBEAT_RECHECK_INTERVAL_KEY, DFSConfigKeys.DFS_NAMENODE_HEARTBEAT_RECHECK_INTERVAL_DEFAULT); // 5 minutesthis.heartbeatExpireInterval = 2 * heartbeatRecheckInterval+ 10 * 1000 * heartbeatIntervalSeconds;

HDFS原理 | NameNode和DataNode工作原理(图形化通俗易懂)相关推荐

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

    1. 概述HDFS集群分为两大角色:NameNode.DataNode(Secondary NameNode) NameNode负责管理整个文件系统的元数据,记录存放在哪些datanode中,以及存放 ...

  2. namenode和datanode工作机制_NameNode与DataNode的工作原理剖析

    NameNode与DataNode的工作原理剖析 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HDFS写数据流程 1>.客户端通过Distributed FileSys ...

  3. Secondary Namenode的Check point机制以及Namenode、Datanode工作机制说明

    目录 前言: 1.NameNode的工作机制 2.DataNode的工作机制 3.Secondary Namenode的Check point机制 目录 前言: 在说明checkpoint机制之前,先 ...

  4. 计算机网络交换机原理,计算机网络__交换机工作原理

    计算机网络交换机工作原理 在前面了解到根据交换机在OSI参考模型中工作的协议层不同,将交换机分为二层交换机.三层交换机.四层交换机.交换机工作的协议层不同,其工作原理也不相同.下面我们将介绍各层交换机 ...

  5. 时钟服务器工作原理,NTP时间服务器工作原理

    文章目录 [隐藏] NTP简介 NTP工作原理 NTP工作模式 NTP简介 NTP(Network Time Protocol, 网络时间协议)是由RFC 1305定义的时间同步协议,用来在分布式时间 ...

  6. 微机计算机系统结构原理,计算机系统组成及工作原理题目

    计算机系统组成及工作原理计算机系统组成及工作原理 1 计算机系统一般有 硬件 和 软件 两大系统组成 2 微型计算机系统结构由运算器 控制器 存储器 输入设备 输出设备五大部分组成 3 微型计算机的运 ...

  7. 计算机网络中的网桥,一个动画看懂网络原理之网桥的工作原理

    一个动画看懂网络原理之网桥的工作原理 一.网桥是干什么的 网桥工作在OSI参考模型数据链路层的两端口或多端口二层网络设备,是用来连接不同网段的存储转发设备.使用网桥能扩展网络的距离或范围,还可以提高网 ...

  8. namenode和datanode工作机制_Hadoop的namenode的管理机制,工作机制和datanode的工作原理...

    HDFS前言: 1) 设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: 2)在大数据系统中作用: 为各类分布式运算框架(如:mapr ...

  9. bmp180气压传感器工作原理_37张传感器工作原理动图,张张经典

    37张传感器工作原理动图来袭, 让你大饱眼福! 1.布料张力测量及控制原理 2.直滑式电位器控制气缸活塞行程 3.压阻式传感器测量液位的工作原理 4.MQN型气敏电阻结构及测量电路 5.气泡式水平仪的 ...

  10. 计算机动态图显示原理,30张传感器工作原理动态图

    这里分享30张传感器工作原理的动态图,非常全面,建议大家收藏起来!什么是传感器?传感器是能够感受规定的被测量并按一定规律转换成可用输出信号的器件或装置的总称,通常被测量是非电物理量,输出信号一般为电量 ...

最新文章

  1. android浮动文本,android 添加浮动标签在textView最尾端,自动换行
  2. struts标签判断两个session中的字符串值是否相等
  3. SpringBoot环境切换
  4. k-means均值向量
  5. react中@withrouter_为什么 withRouter 高阶组件应该 处于最外层?
  6. #pragma once 和 #ifndef ... #define ... #endif 的区别
  7. IS-IS数据包--包头结构
  8. java 进度条 不更新_java进度条不动怎么解决?
  9. 强大的Java辅助类工具箱Hutool
  10. 第三代计算机的内存是,Intel正式发布Cooper Lake、第三代傲腾内存和新数据中心SSD...
  11. 如何用计算机管理员权限,怎么打开管理员权限,电脑怎么用管理员权限
  12. navicat 1146错误
  13. Oracle19C下载安装教程(图文详解)
  14. Mac 用py2app将写好的python代码打包成一个app
  15. pd对焦速度_硬知识|都红圈了,为何对焦速度还很慢?你的镜头呢?
  16. Flutter FFI实践
  17. nas存储用网线直连服务器,NAS将存储设备通过标准的网络拓扑结构连接,无需服务器直接上网...
  18. 吃透Java并发:AQS结构详解及其CLH变种、CLH、MCS
  19. java 随机生成英文名_java随机数Reandom(简单介绍)
  20. 卡尔曼滤波器、扩展卡尔曼滤波器、无向卡尔曼滤波器的详细推导

热门文章

  1. 计算机组成原理(唐朔飞)--第一篇 概论
  2. 51单片机多种方式点亮LED
  3. 高等数学习题全解指南下册同济第七版课后习题答案
  4. TokenInsight作为联盟伙伴加入CoinMarketCap的数据透明联盟(DATA) | TokenInsight
  5. 2021华为软挑赛题_思路分析——实时更新,做多少更多少(五)
  6. 冒泡排序算法之C语言实现
  7. 机器人新车号牌安装_他指挥机器人给新车“穿衣” 分分钟搞定
  8. 啊哈算法(pdf免积分下载)
  9. 正则表达式视频教程免费下载
  10. 多媒体计算机组装过程,多媒体技术及《计算机组装及维护》课精彩结合.doc