HDFS 的健壮性体现在哪里?

这篇具有很好参考价值的文章主要介绍了HDFS 的健壮性体现在哪里?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

本文隶属于专栏《大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和参考文献请见大数据技术体系


正文

HDFS 的健壮性体现在哪里?

HDFS 的主要目标就是即使在出错的情况下也要保证数据存储的可靠性。

常见的三种出错情况是 Namenode 出错、Datanode 出错和网络割裂,HDFS 提供了多种错误恢复手段, 保障了系统的健壮性。

1.磁盘数据错误,心跳检测和重新复制

每个 Datanode 节点周期性地向 Namenode 发送心跳信号。

网络割裂可能导致一部分Datanode 与 Namenode 失去联系。

Namenode 通过心跳信号的缺失来检测这一情况,并将这些近期不再发送心跳信号的 Datanode 标记为死机,不会再将新的 10 请求发给它们。

任何存储在死机 Datanode 上的数据将不再有效。

Datanode 的死机可能会引起一些数据块的副本系数低于指定值,Namenode 不断地检测这些需要复制的数据块,一旦发现就启动复制操作。

在下列情况下,可能需要重新复制:

  • 某个 Datanode 节点失效
  • 某个副本遭到损坏
  • Datanode 上的硬盘错误
  • 文件的副本系数增大。

2. 集群均衡

HDFS 的架构支持数据均衡策略。

如果某个 Datanode 节点上的空闲空间低于特定的临界点,按照均衡策略系统就会自动地将数据从这个 Datanode 移动到其他空闲的Datanode。

当对某个文件的请求突然增加时,也可能启动一个计划创建该文件新的副本, 并旦同时重新平衡集群中的其他数据。

3.数据完整性

从某个Datanode 获取的数据块有可能是损坏的,损坏可能是由 Datanode 的存储设备错误、网络错误或者软件漏洞造成的。

HDFS 客户端软件实现了对 HDFS 文件内容的校验和 (checksum) 检查。

当客户端创建一个新的 HDFS 文件时,会计算这个文件每个数据块的校验和,并将校验和作为一个单独的隐藏文件保存在同一个 HDFS 名宇空间下。

当客户端获取文件内容后,它会检验从 Datanode 获取的数据以及相应的校验和与文件中的校验和是否匹配,如果不匹配,客户端可以选择从其他 Datanode 获取该数据块的副本。

4.元数据磁盘错误

FsImage 和 Editlog 是 HDFS 的核心数据结构。

如果这些文件损坏,整个 HDFS 实例都将失效。

因而,Namenode 可以配置成支持维护多个 Fslmage 和 Editlog 的副本。

任何对Fslmage 或者 Editlog 的修改,都将同步到它们的副本上。

这种多副本的同步操作可能会降低 Namenode 每秒处理的名字空间事务数量。

然而这个代价是可以接受的,因为即使HDFS 的应用是数据密集的,它们也非元数据密集的。

当 Namenode 重启的时候,它会选取最近的完整的 Fsimage 和 Editlog 来使用。

5.快照

快照支持某一特定时刻的数据的复制备份。

利用快照,可以让 HDFS 在数据损坏时恢复到过去一个已知正确的时间点。

思维导图

HDFS 的健壮性体现在哪里?文章来源地址https://www.toymoban.com/news/detail-467299.html

到了这里,关于HDFS 的健壮性体现在哪里?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • VR全景的价值体现在哪里?VR全景创业有市场吗?

    在这个5G时代,思维一定要快,动作还得要帅,动作快的现在已经挣到钱了。VR全景行业赶上了风口,在5G的搭载下发展非常迅速。 随着时代的发展,各行各业百花齐放,而创业的门槛也越来越低,作为创业项目来说,VR全景创业的投资还是比较小的,一人一套设备就可以简单

    2024年02月10日
    浏览(44)
  • 自动化测试工具比传统测试工具的优势体现在哪里?

    随着软件行业的快速发展和扩张,自动化测试工具在提高测试效率和质量方面起到了不可或缺的作用,那你知道自动化测试工具比传统测试工具的优势体现在哪里吗?   首先,自动化测试工具能够大大缩短测试周期。相比于传统手动测试,自动化测试工具能够在短时间内执行

    2024年02月16日
    浏览(50)
  • 去哪里能找到真正的黑客?现在黑客的聚集地在这些地方!

    如果想找黑客办事,去哪里才能找到真正的黑客,不是抖音,而是这些黑客高手的聚集地,99%的人都不知道。 第一个是公开的漏洞平台,比如补天和漏洞盒子,每天都有大量的白帽黑客在上面用技术给企业挖漏洞,不过这里的黑客都是有着原则的,不然他们也不会甘心于挖漏

    2024年02月19日
    浏览(38)
  • LS-DYNA几种连接关系 刚体/柔性体

    用于连接两个柔性体之间,不能用于刚体 面板-1D-rigid 点calculate node可自动计算出一群node点的物理中心,不用自己创建了 用于连接柔性体和刚体之间 右击创建 constrained-extra nodes 设置刚体的component 设置柔性体的set组 用于连接刚体和刚体之间 右击创建 constrained-rigid bodies 设置主

    2024年02月05日
    浏览(32)
  • 重试,让程序更健壮

    任何通过网络与其它应用通讯地的程序,都应该有足够的灵活性,来应对短暂的临时性故障。因为这些故障很多时候是可以自恢复的。 例如,为了避免服务过载,很多应用会采取某些限流措施,在并发请求达到一定数量时,暂时性的拒绝新的请求加入。这种情况下,尝试使用

    2023年04月11日
    浏览(25)
  • 健壮性测试是什么?

    当大多数人开车时,他们不会担心刹车失灵。当他们的孩子得到一个新玩具时,他们也不担心因故障受伤。事实上,大多数人在日常生活中根本不担心系统故障。 这是因为软件开发人员或质量控制工程师已经解决了质量问题。如果目标是交付高质量、可靠的软件系统,那么必

    2024年02月01日
    浏览(28)
  • 如何编写一个健壮的 npm 包

    比如老王我,用 npm init 新建一个包,改把改把,然后来个 npm publish ,so easy ✌️! Too young too naive, baby 👶! 请容我讲述一些发布过程中踩过的坑。 首先,算了也可以之后有空再说,我们需要通读 npm 的配置文档。 package.json doc 利用 package.json 中 files 字段精简发布体积。 若不指

    2024年02月06日
    浏览(33)
  • JUnit 使用详解,让你的项目健壮起来

    JUnit 是 Java 中最为流行的测试框架之一,用于对单元测试进行自动化测试。本文将全面介绍 JUnit 的相关概念和使用方式,并提供多种类型的代码示例。 1.1 JUnit 概述 JUnit 是一个基于 Java 语言的测试框架,最初是由 Kent Beck 和 Erich Gamma 开发的。JUnit 提供了一系列的 API ,可以帮

    2024年02月07日
    浏览(32)
  • Python 异常处理深度解析:掌握健壮代码的关键

    有效管理和处理异常是构建健壮、可靠和用户友好应用程序的基石。异常处理不仅有助于防止程序意外崩溃,还能为用户提供更清晰的错误信息,帮助开发者诊断问题。本文将全面介绍 Python 中的异常处理机制,从基本的 try-except 结构到高级的异常管理技术,包括异常链和自

    2024年04月26日
    浏览(38)
  • SpringBoot 如何增强PageHelper入参的健壮性

    PageHelper.startPage(int pageNum, int pageSize, boolean count) 参数为外部输入,故存在异常输入场景。比如 pageNum 和 pageSize 输入的值 负数 或者 0 ,所以引入 PageUtils 来对入参进行判断矫正,从而避免引入异常。 @PostConstruct 的执行时机

    2024年01月21日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包