Hadoop 3.0 Erasure Coding 纠删码功能预分析

前言HDFS也可以支持Erasure Coding功能了,将会在Hadoop 3.0中发布,可以凭图为证: 在HDFS-7285中,实现了这个新功能.鉴于此功能还远没有到发布的阶段,可能后面此块相关的代码还会进行进一步的改造,因此只是做一个所谓的预分析,帮助大家提前了解Hadoop社区目前是如何实现这一功能的.本人之前也没有接触过Erasure Coding技术,中间过程也确实有些偶然,
摘要由CSDN通过智能技术生成

前言


HDFS也可以支持Erasure Coding功能了,将会在Hadoop 3.0中发布,可以凭图为证:
这里写图片描述
HDFS-7285中,实现了这个新功能.鉴于此功能还远没有到发布的阶段,可能后面此块相关的代码还会进行进一步的改造,因此只是做一个所谓的预分析,帮助大家提前了解Hadoop社区目前是如何实现这一功能的.本人之前也没有接触过Erasure Coding技术,中间过程也确实有些偶然,相信本文可以带给大家收获.

巧遇Hadoop 3.0 Erasure Coding


第一次主动去了解erasure coding这个东西纯粹是好奇,因为我平时主要混迹于Hadoop社区中HDFS模块部分,经常看到有很多的Issue Summary以单词Erasure Coding打头,而且这些任务一般都隶属于HDFS-8031下的子任务,比如下图所示的1个:
这里写图片描述
原来这是Erasure coding后续1阶段的工作.然后我就上网查了一下Erasure coding的意思于是就萌生了写此文的意图.Erasure coding同样作为一门技术,在学习hadoop 3.0 erasure coding之前,还是非常有必要去了解学习Erasure coding这门技术.

Erasure coding纠删码


Erasure coding纠删码技术简称EC,是一种数据保护技术.最早用于通信行业中数据传输中的数据恢复,是一种编码容错技术.他通过在原始数据中加入新的校验数据,使得各个部分的数据产生关联性.在一定范围的数据出错情况下,通过纠删码技术都可以进行恢复.下面结合图片进行简单的演示,首先有原始数据n个,然后加入m个校验数据块.如下图所示:
这里写图片描述
Parity部分就是校验数据块,我们把一行数据块组成为Stripe条带,每行条带由n个数据块和m个校验块组成.原始数据块和校验数据块都可以通过现有的数据块进行恢复,原则如下:

  • 如果校验数据块发生错误,通过对原始数据块进行编码重新生成
  • 如果原始数据块发生错误, 通过校验数据块的解码可以重新生成

而且m和n的值并不是固定不变的,可以进行相应调整.可能有人会好奇,这其中到底是什么原理呢? 其实道理很简单,你把上面这图看成矩阵,由于矩阵的运算具有可逆性,所以就能使数据进行恢复,给出一张标准的矩阵相乘图,大家可以将二者关联.
这里写图片描述
至于里面涉及数学推理的方面,同学们可以自行寻找资料进行学习.

Erasure Coding技术的优劣势


优势

纠删码技术作为一门数据保护技术,自然有许多的优势,首先可以解决的就是目前分布式系统,云计算中采用副本来防止数据的丢失.副本机制确实可以解决数据丢失的问题,但是翻倍的数据存储空间也必然要被消耗.这一点却是非常致命的.EC技术的运用就可以直接解决这个问题.

劣势

EC技术的优势确实明显,但是他的使用也是需要一些代价的,一旦数据需要恢复,他会造成2大资源的消耗:

  • 网络带宽的消耗,因为数据恢复需要去读其他的数据块和校验块
  • 进行编码,解码计算需要消耗CPU资源

概况来讲一句话,就是既耗网络又耗CPU,看来代价也不小.所以这么来看,将此计数用于线上服务可能会觉得不够稳定,所以最好的选择是用于冷数据集群,有下面2点原因可以支持这种选择

  • 冷数据集群往往有大量的长期没有被访问的数据,体量确实很大,采用EC技术,可以大大减少副本数
  • 冷数据集群基本稳定,耗资源量少,所以一旦进行数据恢复,将不会对集群造成大的影响

出于上述2种原因,冷数据集群无非是一个很好的选择.

Erasure Coding技术在Hadoop中的实现


前面花了大量的篇幅介绍EC技术,相信大家已经或多或少了解了这项技术.现在才是本文的一个重点,Hadoop Erasure Coding的实现.因为我们都知道,Hadoop作为一个成熟的分布式系统,用的也是3副本策略,所以这项技术的产生对于Hadoop本身来说,意义还是非常重大的.考虑到EC技术在Hadoop中的实现细节可能比较复杂,所以我不会逐行代码般的进行分析,从大的方向上理一理实现思路.

EC概念在Hadoop中的演变


EC概念指的是data block数据块,parity block校验块,stripe条带等这些概念在H

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: Hadoop 2.和Hadoop 3.是两个不同版本的Hadoop分布式计算框架。Hadoop 2.是Hadoop的第二个主要版本,于2012年发布,引入了许多新功能和改进,包括支持非MapReduce计算模型、高可用性、资源管理和调度等。Hadoop 3.是Hadoop的第三个主要版本,于2017年发布,引入了更多的新功能和改进,包括支持容器化、GPU加速、Erasure Coding等。Hadoop 3.还提高了性能和可靠性,并改进了安全性和管理性。总的来说,Hadoop 3.是Hadoop的一个重要升级,为大规模数据处理提供了更好的支持。 ### 回答2: Hadoop是当今流行的大数据处理框架之一,它可以在成千上万的服务器之间分配和处理数据。Hadoop 2.0和Hadoop 3.0Hadoop的两个主要版本,下面我们将对两个版本进行比较和分析。 首先,Hadoop 2.0是Hadoop生态系统的一个重要更新,其主要目标是改变Hadoop的一个核心组件——YARN(Yet Another Resource Negotiator)。在Hadoop 2.0中,YARN作为一个资源管理器来管理计算任务,并且将计算和存储分离开来。这个改进使Hadoop更可扩展和更灵活,因此能够加速大规模数据处理和分析。除此之外,Hadoop 2.0还添加了一些新的功能、优化和改进,例如NameNode High Availability (HA)、HDFS Federation和MapReduce NextGen等。 相比而言,Hadoop 3.0Hadoop的又一次重要更新,其主要集中在优化、改进和升级Hadoop的各个方面。它引入了许多新特性,包括存储优化、计算性能提升、网络增强等,其中最大的更新之一是引入了一个全新的存储框架:Hadoop三原色,即HDFS Erasure CodingHadoop Common Cache和HDFS Record Service。这些新特性使得Hadoop 3.0更加灵活和高效,有能力处理更高密度的数据存储以及更多的计算工作。此外,Hadoop 3.0也进一步加强了安全性,加强了对各种系统和平台的支持,以及加入了更多工具和集成插件。 总而言之,Hadoop 2.0和Hadoop 3.0都是Hadoop框架的重要更新和改进。它们各自的核心组件和特性都有所不同,但它们都致力于提高Hadoop的性能和扩展性,使其能够更好地满足处理大规模数据的需求,同时也提供更好的安全性和可管理性。 ### 回答3: Hadoop是一个开源的分布式数据处理框架,可用于处理大规模的数据集。Hadoop的历史可以追溯到2004年,最初由Doug Cutting和Mike Cafarella开发,以Google的文件系统和MapReduce方案为基础。随着大数据的兴起,Hadoop变得越来越受欢迎,成为今天大数据处理的主流。 Hadoop 2.0和Hadoop 3.0都是Hadoop的版本升级,有哪些变化呢? Hadoop 2.0: Hadoop 2.0是Hadoop的一个重大版本更新。它最主要的变化是废弃了Hadoop 1.0那个单点故障的资源管理器,采用了新的资源管理器和调度器YARN(Yet Another Resource Negotiator),使得Hadoop可以支持更多的计算框架,例如Spark和Storm等,从而更好地满足各种不同的数据处理需求。 另外,Hadoop 2.0还引入了HA(高可用)功能,使得Hadoop的主节点和从节点可以支持自动故障转移,提高了Hadoop的可靠性。 Hadoop 3.0: Hadoop 3.0Hadoop的又一个重大版本更新。同样,它也对Hadoop进行了一些关键性的改变。Hadoop 3.0引入了Containerization,即用Docker等容器技术将每个任务分配给隔离的容器,从而实现更好的任务隔离。 此外,Hadoop 3.0还改进了HDFS(Hadoop分布式文件系统)的可靠性和性能,增加了Erasure Coding等机制,提升了数据存储效率。同时,Hadoop 3.0还引入了一些新的特性,例如GPU加速,让Hadoop框架支持更多的计算和存储选项,从而更好地满足不同的需求。 总体来说,Hadoop 2.0和Hadoop 3.0都是在前一版本的基础上进行了重大的升级,引入了更多的功能和性能改进,使得Hadoop框架更加灵活和强大。随着数据处理的需求越来越高,Hadoop也将不断升级和完善,持续为我们的数据处理提供帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值