热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

Erasurecode(纠删码)

1.概述在编码理论里,有一种前向纠错(FEC)编码方式,也称为纠删码。这种技术可以将原始数据中丢失的k字节数据从n个含编码字节的信息中进行恢复。在纠删码

1.概述


在编码理论里,有一种前向纠错(FEC)编码方式,也称为纠删码。
这种技术可以将原始数据中丢失的k字节数据从n个含编码字节的信息中进行恢复。
在纠删码技术中,Reed-Solomon(里所码)码是一种常见的纠删码。



2.纠删码的应用


对于在分布式环境下数据存储的可靠性保证,有两种策略:
1)引入副本冗余机制策略
2)利用纠删码技术,相比于副本策略,纠删码技术可以节省更多磁盘的空间。即有更高的磁盘利用率



拿Hadoop的HDFS来说,策略一般是三副本,当某个副本丢失时,可以通过其他副本复制回来。所以在这种情况下,Hadoop集群的磁盘利用率为1/3。而如果使用纠删码技术后,可以提高磁盘的利用率。



3.纠删码的思想

在这里插入图片描述


上图的含义是:有n个原始数据块,再引入m个数据校验块,然后通过编码(encode)是原始数据块和数据校验块产生关联。



纠删码技术是一种数据恢复技术,最早用于通信行业中数据传输中的数据恢复,是一种编码容错技术。它通过在原始数据中加入新的校验数据,使得各个部分的数据产生关联性。在一定范围内的数据出错情况下,通过纠删码技术都可以进行恢复。
比如:有原始数据块n个,然后加入m个校验数据块。
原始数据块和校验数据块在丢失时,都可以通过现有的数据块进行恢复



举例:
①x=1
②y=2
③z=3
④x+y+z=6
⑤2x+3y+z=11
⑥x+2y+3z=14



1)如果我们丢了3个原始数据块,可以恢复
④x+y+z=6
⑤2x+3y+z=11
⑥x+2y+3z=14
2)如果我们丢失了3个数据校验块,可以恢复
①x=1
②y=2
③z=3
3)可以
②y=2
③z=3
④x+y+z=6
⑤2x+3y+z=11
⑥x+2y+3z=14
4)可以
③z=3
④x+y+z=6
⑤2x+3y+z=11
⑥x+2y+3z=14
5)不可以
③z=3
⑥x+2y+3z=14



4.Reed-solomon codes


4.1.概述


Reed-Solomon里所码(RS)码是存储系统较为常用的一种纠删码,也称为里所码。它有两个参数n和m,记为RS(n,m)。n代表原始数据块个数。m代表校验块个数。接下来介绍RS码的原理。



4.2Reed-Solomon(RS)码的编码和解码过程

1)编码过程(encoding)

在这里插入图片描述

数据丢失:

在这里插入图片描述

2)解码过程

在这里插入图片描述


4.3.RS的优缺点:


优点:低冗余度,高磁盘利用率。
比如一个文件有5个文件块,假设用3副本冗余机制,最后总的文件块是15块,则磁盘利用率是:5/15=1/3=33%
而用RS码来实现,5个文件块+3个数据校验块,则磁盘利用率是:5/8=62.5%



缺点:
1)计算代价高。 丢失数据块或者编码块时, RS需要读取n个数据块和剩余的校验块才能恢复数据。
2)数据更新代价高。 数据更新相当于重新编码, 代价很高, 因此常常针对只读数据,或者冷数据。



工程实践中,一般对于热数据还是会使用多副本策略来冗余,冷数据使用纠删码。



4.4.两种冗余技术对比如下:

在这里插入图片描述


推荐阅读
  • 初探Hadoop:第一章概览
    本文深入探讨了《Hadoop》第一章的内容,重点介绍了Hadoop的基本概念及其如何解决大数据处理中的关键挑战。 ... [详细]
  • 深入解析:存储技术的演变与发展
    本文探讨了从单机文件系统到分布式文件系统的存储技术发展过程,详细解释了各种存储模型及其特点。 ... [详细]
  • 本文介绍了Hadoop的核心组件,包括高可靠性和高吞吐量的分布式文件系统HDFS、分布式的离线并行计算框架MapReduce、作业调度与集群资源管理框架YARN以及支持其他模块的工具模块Common。 ... [详细]
  • Hadoop的文件操作位于包org.apache.hadoop.fs里面,能够进行新建、删除、修改等操作。比较重要的几个类:(1)Configurati ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • Zookeeper作为Apache Hadoop生态系统中的一个重要组件,主要致力于解决分布式应用中的常见数据管理难题。它提供了统一的命名服务、状态同步服务以及集群管理功能,有效提升了分布式系统的可靠性和可维护性。此外,Zookeeper还支持配置管理和临时节点管理,进一步增强了其在复杂分布式环境中的应用价值。 ... [详细]
  • 从理想主义者的内心深处萌发的技术信仰,推动了云原生技术在全球范围内的快速发展。本文将带你深入了解阿里巴巴在开源领域的贡献与成就。 ... [详细]
  • 流处理中的计数挑战与解决方案
    本文探讨了在流处理中进行计数的各种技术和挑战,并基于作者在2016年圣何塞举行的Hadoop World大会上的演讲进行了深入分析。文章不仅介绍了传统批处理和Lambda架构的局限性,还详细探讨了流处理架构的优势及其在现代大数据应用中的重要作用。 ... [详细]
  • 本文介绍如何通过整合SparkSQL与Hive来构建高效的用户画像环境,提高数据处理速度和查询效率。 ... [详细]
  • 本文详细介绍了 Spark 中的弹性分布式数据集(RDD)及其常见的操作方法,包括 union、intersection、cartesian、subtract、join、cogroup 等转换操作,以及 count、collect、reduce、take、foreach、first、saveAsTextFile 等行动操作。 ... [详细]
  • 本文介绍了如何使用Flume从Linux文件系统收集日志并存储到HDFS,然后通过MapReduce清洗数据,使用Hive进行数据分析,并最终通过Sqoop将结果导出到MySQL数据库。 ... [详细]
  • Hadoop平台警告解决:无法加载本机Hadoop库的全面应对方案
    本文探讨了在Hadoop平台上遇到“无法加载本机Hadoop库”警告的多种解决方案。首先,通过修改日志配置文件来忽略该警告,这一方法被证明是有效的。其次,尝试指定本地库的路径,但未能解决问题。接着,尝试不使用Hadoop本地库,同样没有效果。然后,通过替换现有的Hadoop本地库,成功解决了问题。最后,根据Hadoop的源代码自行编译本地库,也达到了预期的效果。以上方法适用于macOS系统。 ... [详细]
  • 【漫画解析】数据已删,存储空间为何未减?揭秘背后真相
    在数据迁移过程中,即使删除了原有数据,存储空间却未必会相应减少。本文通过漫画形式解析了这一现象背后的真相。具体来说,使用 `mysqldump` 命令进行数据导出时,该工具作为 MySQL 的逻辑备份工具,通过连接数据库并查询所需数据,将其转换为 SQL 语句。然而,这种操作并不会立即释放存储空间,因为数据库系统可能保留了已删除数据的碎片信息。文章进一步探讨了如何优化存储管理,以确保数据删除后能够有效回收存储空间。 ... [详细]
  • Hadoop中NameNode与SecondaryNameNode的运行机制解析
    在Hadoop架构中,NameNode中的元数据存储位置是一个关键问题。通常,元数据会存储在内存中以提高访问效率,因为频繁的磁盘随机访问会导致性能下降。此外,NameNode还会定期将元数据的快照保存到磁盘上,以确保数据的持久性和恢复能力。SecondaryNameNode则负责定期合并这些快照和编辑日志,进一步增强系统的稳定性和可靠性。 ... [详细]
  • 在搭建Hadoop集群以处理大规模数据存储和频繁读取需求的过程中,经常会遇到各种配置难题。本文总结了作者在实际部署中遇到的典型问题,并提供了详细的解决方案,帮助读者避免常见的配置陷阱。通过这些经验分享,希望读者能够更加顺利地完成Hadoop集群的搭建和配置。 ... [详细]
author-avatar
明诺新源研_889
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有