HDFS 的健壮性体现在哪里?

news2024/11/28 6:33:52

前言

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

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


正文

在这里插入图片描述

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 在数据损坏时恢复到过去一个已知正确的时间点。

思维导图

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/597890.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux进程间通信(消息队列)

可以用命令“ipcs”查看三种 IPC,“ipcrm”删除 IPC 对象。在 i.MX6ULL 终结者开发板终端输入“ipcs” 查看系统中存在的 IPC 信息: 这些 IPC 对象存在于内核空间,应用层使用 IPC 通信的步骤为: 1. 获取 key 值,内核…

【网络】交换机的原理和配置方法

目录 🍁交换机工作原理 🍁交换机接口的双工模式 🍁交换机命令行模式 🍁交换机常见命令 🧧帮助命令 🧧常用命令介绍 🍁交换机的基本配置 🧧配置接口的双工模式及速率 🦐博…

数据库误删恢复

说明 经常听说删库跑路这真的不只是一句玩笑话,若不小心删除了数据库,事情很严重。你一个不小心可能会给公司删没。建议研发不要直连生成环境,一般的话都会分配账号权限,生产环境的账号尽量是只读,以防你一个不经意给库…

java快速结束嵌套循环

java快速结束嵌套循环 快速结束for循环 out:for (int i 0; i < 5; i) {in:for (int j 0; j < 5; j) {if (j 2) {break out;}System.out.println("i " i " j " j);}}解释 将外层for循环起别名 o u t \color{red}{out} out,将内层for循环起别名…

Java NIO-非阻塞I/O(一)

文章目录 1. 简介2. 一个示例服务器3. 缓冲区4. 创建缓冲区5. 填充与排空6. 批量方法7. 数据转换8. 视图缓冲区9. 压缩缓冲区10. 复制缓冲区11. 分片缓冲区 1. 简介 与CPU和内存相比&#xff0c;甚至和磁盘相比&#xff0c;网络都很慢&#xff0c;但要允许CPU速度高于网络&…

YOLOV8最强操作教程.

YoloV8详细训练教程. 相信各位都知道yolov8发布了&#xff0c;也是U神大作&#xff0c;而且V8还会出论文喔&#xff01; 2023.1.17 更新 yolov8-grad-cam热力图可视化链接 2023.1.20 更新 YOLOV8改进-添加EIoU,SIoU,AlphaIoU,FocalEIoU 链接 2023.1.30 更新 如果你需要修改或者…

Vector Scope

下面以PicoScope 6403E-034为例说明 1.Scope 硬件结构介绍 前面板&#xff1a; 最多支持捕获2路CAN/CANFD/FlexRay总线&#xff0c;或者4路LIN总线 后面板&#xff1a; Scope Bus Probe 300 Mhz 2.Option Scope使用条件 前提条件1&#xff1a;购买CANoe/CANalyzer Option Sc…

03-SpringBoot3JDK9~17新特性

1、JDK9新特性---jshell交互式工具 前提是已经配置好了Jdk的环境变量。 2、JDK9新特性---模块化开发 需求&#xff1a; testA可以被模块A调用&#xff0c;testB可能是内部工具类&#xff0c;不想被模块A调用&#xff0c;又不能设置成private。 这时候我们就会用到模块化开发。…

vue3+element-plus+ts elplus table 实现表格动态列 表格列显示与隐藏的动态控制 支持传递插槽与多级表头

如题 先上效果 部分代码展示 Home页面 使用时除了名字不同其他没啥不同,但是我这个封装的函数或者属性较少,如果需要请自行增加 <script setup lang"ts"> import { IPage } from /mixins/pagination import { TableKey } from /types/enum import { useRou…

Vue3-01-Vue3 新特性及环境搭建

Vue.js是一种被广泛使用的JavaScript框架&#xff0c;用于构建用户界面和单页面应用。Vue3是其最新的主要版本&#xff0c;引入了许多新特性并做了一些改进。 一、Vue3 性能提升 1. Object.defineProperty VS Proxy Vue2 和 Vue3 在数据响应性系统的实现上采用了不同的方式&…

通则ZLT X21 CPE使用指南

目录 设备介绍应用场景案例详细配置CPE基本配置网络实现DMZ方式实现网络互通IP Passthrough方式实现网络互通 注意事项 设备介绍 ZLT X21 是一款高性能5G室内CPE&#xff0c;支持NR(SA&NSA)、TDD-LTE、FDD-LTE&#xff0c;将蜂窝网络数据转换为WIFI和有线网口数据&#xf…

【项目实战】博客系统设计与实现

一、项目概述 1.项目需求 前端&#xff1a;展示文章&#xff0c;文章分类&#xff0c;评论&#xff0c;用户登录。 后端 &#xff1a;系统管理&#xff1a;用户管理&#xff0c;菜单管理&#xff0c;角色管理。内容管理&#xff1a;文章管理&#xff0c;分类管理&#xff0c;标…

地震勘探基础(一)之地震波

地震波 纵波/P波 (Compressional Wave) &#xff1a;质点的动方向与波的传播方向一致。天然地震时&#xff0c;纵波造成地面上下颠簸震动&#xff0c;纵波先达到地表。 纵波速度与弹性参数的关系&#xff1a;纵波速度与体积模量&#xff0c;杨氏模量&#xff0c;剪切模量&…

tcpdump 抓包工具详细图文教程(下)

目录 一、tcpdump 常用参数的使用 1.1 tcpdump -i # 指定监听网络接口 1.2 tcpdump -w # 将捕获到的信息保存到文件中&#xff0c;且不分析和打印在屏幕 1.3 tcpdump -r # 从文件中读取数据 1.4 tcpdump -n # 不把 ip 转化成域名 1.5 tcpdump -t # 在每行的输出中不…

springboot自定义注解的使用++日志

1.添加切面依赖 <dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.8.9</version> </dependency> 2.自定义注解 Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTI…

Java语言---PriorityQueue与堆

目录 一.堆 1.1堆的概念 1.2堆的存储方式 1.3堆的操作 1.3.1堆的创建 1.3.2代码的实现&#xff1a; 堆的插入元素 堆的删除 二、PriorityQueue 2.1概念 2.2性质 2.3PriorityQueue的创建构造 2.4PriorityQueue的操作方法 总结 &#x1f63d;个人主页&#xff1a;t…

堆的应用:Top-K问题

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下堆的应用--Top-K问题的相关知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; 数据结构与算法专栏&#xff1a;数据结构与算法 个…

基于Web智慧油库三维可视化管理系统

油库是协调原油生产、原油加工、成品油供应及运输的纽带&#xff0c;是国家石油储备和供应的基地&#xff0c;它对于保障国防和促进国民经济高速发展具有相当重要的意义。 建设背景 石油作为重要的战略资源&#xff0c;关系着国家安全和人民生活。油库是石油能源供应链中的关…

俞浩“死磕”抖音,追觅科技618面临三变数

​文 | 智能相对论 作者 | 渡过 智能清洁“新秀”追觅科技来势汹汹。 创始人俞浩曾向媒体表示&#xff0c;“追觅科技……2023年做到行业技术第一&#xff0c;2024年做到行业市占率第一&#xff0c;2025年做到行业利润第一。” 具体到市场上&#xff0c;能拱火热度的电商节…

linux实践php8.2加laravel-cotane和roadrunner服务器

php8.2 composer -v 报错&#xff1a; Deprecation Notice: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in phar:///usr/bin/composer/vendor/symfony/console/Descriptor/TextDescriptor.php:290 解决方法可以升级下composer&#xff1…