Replica‑aware data recovery performance improvement for Hadoop system with NVM

摘要

       非易失性存储器(non-volatile memory, NVM)由于其出色的I/O性能,成为存储数据和加速大数据分析的热门设备。但是我们发现,简单地用NVM替换硬盘驱动器(HDD)并不能带来预期的性能提升。本文以Hadoop 文件系统(HDFS)中的数据恢复问题为例,探讨如何利用NVM的性能优势。我们分析了HDFS中的数据恢复机制,发现DataNode中复制任务的配置对数据恢复有很大的影响。我们进行了广泛的分析和实验,调优了配置,也得到了一些有趣的发现。通过新的配置,我们将数据恢复性能从17%提高到71%。我们还可以通过优化配置,将MapReduce作业的执行性能从28%提高到59%。突然的数据恢复带来了无序的网络资源竞争,降低了MapReduce作业的性能。因此,我们提出了一种优先级感知的多阶段数据恢复方法。另外,对于MapReduce作业,性能提高了32.5%。

1、介绍

       目前,数据恢复系统是互联网或万维网应用中最具挑战性的方面。如今,即使是1兆字节(TB)和peta字节(PB)的数据也不足以存储大量的数据库。在大数据分析方面,Apache Hadoop已经成为新兴的分布式处理平台。Hadoop分布式文件系统(HDFS) (Kim et al. 2014)以其可扩展性和可靠性而闻名,HDFS是Hadoop数据库的底层文件系统(Islam 2018), Hadoop的上层中间件依赖于HDFS存储数据。

        HDFS的一个实例可能由数千台服务器机器组成,每台服务器机器存储一部分文件系统数据(Dai et al. 2016),并且每个服务器都有失败的概率,如常见的数据损坏、节点故障、意外数据删除等。常见节点故障概率及其恢复代价如表1所示。因此,核心结构的目标是快速、自动地检测和恢复错误。而且,随着硬件和软件技术的发展,用户所要求的服务质量也随之提高。对数据处理平台的数据安全性、可靠性和处理效率提出了更高的要求(Taleb And Serhani 2017)。

        HDFS通常部署在便宜的硬盘上,而硬盘介质具有读写数据速度慢、容易丢失数据的缺点。新兴的非易失性存储器(NVM)具有许多优点,如低功耗的非易失性、高存储密度、低功耗(Mittal and Vetter 2018)。NVM具有比HDD更高的I/O性能。由于HDFS最初的设计考虑集中在主要用于商品集群的技术上,因此可以通过使用NVM和RDMA等先进的存储技术来实现性能优势,从而获得更好的性能质量和更短的处理时间。

       HDFS是一个具有高容错率的分布式文件系统(Arafa et al. 2018)。其典型实现是通过多副本机制来保证数据的可靠性。HDFS可以存储跨大型集群和机器的大型物品。在HDFS中,“肉体”以数据块的形式存储。为了提高数据访问效率和更好的容错性,所有数据块将有其他代表。HDFS的数据副本放置策略基于机架感知。通过机架感知策略HDFS (Kouba et al. 2016)可以获得整个集群节点的网络拓扑。

       当HDFS集群由HDD介质改为NVM介质时,集群的数据恢复性能平均提高17%。但是,这与NVM介质在提高传统硬件读写性能方面存在着很大的差距。在本文中,我们通过学习HDFS的数据恢复机制(Dewitt and Gray 1992),提出了一种动态优化复制器和集群资源参数的策略,以获得更好的数据恢复性能。

       考虑到MapRedcue作业运行时涉及的高网络开销和磁盘I/O (Kalavri et al. 2013),使用NVM介质可以加速批处理作业的执行(Islam et al. 2016)。我们进一步研究当HDFS存在数据恢复现象时,数据恢复任务是否会影响批处理任务的执行效率。同时,研究了MapReduce作业与数据恢复之间的关系。在不影响MapReduce作业执行的情况下,通过改变复制器实现高效的数据恢复。

       本文的主要贡献如下:

       在现有数据恢复策略的基础上,提出了一种动态优化复制器和资源参数的策略。结果表明,该策略能有效地将回收时间提高71%。

       研究了Mapreduce任务与数据恢复过程之间的具体关系。通过优化复制因素和资源参数,可以降低数据恢复对MapReduce任务的影响。

       提出了一种基于计算质量的动态优先级策略。可以进一步优化数据恢复任务,选择合适的数据恢复任务数量和最紧急的数据恢复任务,保证MapReduce任务的平稳运行。

       本文的其余部分组织如下。在第二节中我们介绍了NVM媒体的性能优势和我们的研究动机。第三节分析了现有数据恢复机制的不足,提出了动态调整策略和动态优先级数据恢复策略。第四节对优化后的数据恢复性能进行了评估。第五节明确了MapReduce任务与数据恢复的关系,第六节总结了相关工作。最后,在第7节给出结论。

2、背景和动机

2.1、非易失性存储器

       非易失性存储器是指当电流关闭时数据不会消失的计算机存储器。非易失性存储器,根据内存中的数据是否可以随时改写标准,可分为两大类产品,即ROM和Flash存储器。NVM已经从理论上的完美技术转变为市场上的现有产品,如英特尔Optane Memory使用的3D XPoint技术(Hady et al. 2017)。NVM以其非易失性的字节寻址能力而闻名,这意味着它可以支持处理器的字节寻址,并以非常低的功耗一致地存储信息。这些令人难以置信的特性给NVM带来了广泛的应用,如嵌入式系统(Wang et al. 2015)、通常的计算(Ando et al. 2014)和许多其他应用。NVM有很多种类型,每一种都使用不同的技术。比较流行的有相变存储器(PCM)、磁阻RAM (MRAM)、电阻RAM (ReRAM) (Attarimashalkoubeh et al. 2016)等。

       在过去提出并正在研究的替代NVM的创新概念中,相变存储器似乎是覆盖不同NVM应用领域的最佳候选人之一,匹配高密度和高性能规格。PCM由具有相变特性的材料制成,利用晶相和非晶相来区分数据状态。结晶相是通过加热电池在其结晶温度范围内一段时间来实现的,而非晶相是通过加热电池超过其熔点并快速冷却来实现的。本文也是基于此材料。

2.2、HDFS的容错

       Hadoop架构由主/从架构组成。如图1 (Apache 2021)所示,主实体是用于存储元数据的NameNode,从实体是用于实际存储数据的DataNode。NameNode在HDFS架构中也被称为主节点。NameNode存储元数据。该元数据存储在主节点的内存中,以便尽可能快地获取数据。NameNode负责从节点的维护和管理,并为从节点分配任务。它是整个HDFS的核心,所以应该部署在高度依赖的机器上。DataNode是HDFS模式下的一个从节点。在Hadoop HDFS架构中,DataNode是实际存储的DataNode。它可以执行来自客户端的每一个读写请求。datanode支持在普通硬件上部署。

       HDFS通过保持一个优先队列来保存所有等待复制的数据块的集合。队列分为5个子队列,每个子队列对应一个优先级列表,0代表最高优先级,4代表最低优先级:

       优先级0:必须立即复制的数据块。这种类型的数据块很可能会丢失。

       优先级1:复制因子值低的数据块。

       优先级2:保存份数低于预期的数据块,但该块的份数未达到优先级1队列的比例。

       优先级3:满足复制因子但副本分布不是很好的数据块。

       优先级4:保存损坏的数据块,该数据块对应的所有副本都损坏。

       HDFS使用多副本机制来实现数据容错,每个DataNode在启动DataNode之前都会扫描本地磁盘,并将当前DataNode中存储的数据块信息上报给NameNode。然后Namenode在数据块和存储该数据块副本的datanode之间建立关系。NameNode将这些信息存储在BlocksMap中。如图2所示,当集群中出现DataNode故障(Kouba et al. 2016)时,NameNode会将丢失的块副本创建一个新的副本并存储到其他节点,以确保副本数量满足副本参数要求。对于丢失的数据副本,NameNode选择一对源节点和目标节点,其中源节点是块中其他副本的可用节点。目标节点是存储新块副本的节点。由于副本在集群中的分布是随机的,因此复制可以在大型集群中大规模并行进行。 

2.3、MapReduce任务与数据恢复任务的关系

        Hadoop集群的网络通常是被动占用的。少量活动的数据节点可能会占用集群的带宽。修复无效数据造成的拥塞是不可忽视的。理想的存储解决方案不仅要保证存储效率,还要优化数据恢复的时间,协调计算任务和数据恢复任务。

       集群中的数据恢复任务依赖于集群的网络带宽,Hadoop集群的典型能力也提供了批处理的计算能力。在实际环境中,数据中心内部的网络通信通常用于MapReduce作业的计算,也用于数据恢复任务的计算。因此,根据集群的网络状态,实时协调计算任务和数据恢复所使用的带宽就显得尤为重要。

2.4、观察与动机

        HDFS考虑了分布式文件系统的一致性、原子性、性能优化等因素。第一次写数据是随机的,然后它只支持数据追加和读取,并且当DataNode执行数据块拷贝任务时是连续传输过程。因此,我们观察HDD和NVM存储介质的持续读写速率(Li et al. 2017)。如表2所示,NVM介质盘顺序读和顺序写的速率是HDD的12 ~ 16倍,NVM介质盘随机读和随机写的速率是HDD的700倍以上。因此,我们希望通过NVM介质加速集群节点故障后的数据恢复速度。

       在NVM媒体上部署HDFS服务的想法自然而然地出现了,我们希望利用NVM的高磁盘吞吐量,在节点故障后快速恢复数据。经过大量实验,如图3所示,在NVM上部署HDFS服务比在HDD介质上部署HDFS提高了17%的数据恢复性能。但这种简单的替代媒体的方法远远没有达到我们的预期。因此,本文的目标问题是研究限制数据恢复效率的因素,以便充分利用NVM特性实现更好的数据恢复性能。

3、分析与策略

       如上所述,HDFS根据损坏数据的紧迫性组成一个优先级队列进行数据恢复。每个心跳周期中规划的复制数据块是有效数据节点数量和复制因子的乘积。因此,我们可以将影响数据恢复性能的因素归纳为:数据块容量、有效数据节点数量、复制因子值和BlockMap表形成时间。但由于有效datanode的数量客观上是不可控制的,所以我们的实验主要关注数据块容量、复制因素和存储介质对数据恢复性能的影响。

3.1、限制数据恢复性能的因素

        G = l k r              (1)

        如公式(1)所示,节点的最大数量的复制任务在中央跳周期是l,k是幸存的活跃节点的数量,和HDFS数据块大小是r,G代表复制数据块的理论最大数量。集群中故障节点的数据恢复总量受最大复制数据总量G和每个心跳周期的网络传输速率的影响。根据HDFS配置的单位心跳周期内的节点复制任务数,修改G,并设置心跳周期内网络传输数据的上限。可以传输的数据量由实际的网络传输速率决定。由于NameNode访问时间极短,BlockMap映射设置时间可以忽略不计,假设网络传输时间为f, HDD磁盘的I/O时间为m, NVM磁盘的I/O时间为n,则将NVM介质与HDD介质进行比较。媒体数据恢复时间的缩短可以用公式表示,H为NVM媒体替代集群后节点数据恢复时间缩短的百分比:

        H = m − n/(f + m)      (2)
       如公式(2)所示,在确定了NVM和HDD介质的情况下,影响NVM恢复效果的主要因素是集群的网络状况。通过增加replication参数值,增加单个心跳周期内每个DataNode复制任务的个数,可以有效提高数据恢复性能。但是存在一个上限,因为HDFS只支持单个写操作以保证数据一致性,而HDD媒体和NVM媒体的持续读写速度远远高于网络传输速度的上限。此外,MapRedue任务的带宽抢占也会影响生产环境下的恢复性能。当整个Hadoop集群确定后,有效的datanode个数、数据块大小和磁盘介质不再发生变化。影响系统恢复时间的因素仅为单位心跳周期内的节点复制任务数量。当集群的心跳间隔中需要复制的数据量很小,且集群需要恢复的数据量小于单位心跳间隔中可以传输的数据量上限时,集群数据恢复的总时间会随着可复制节点数量的减少而逐渐减少。节点故障后的数据恢复性能逐渐提高。
        如式(3)所示,我们可以计算出网络负载丢失数据副本后的恢复时间。数据块大小r,磁盘读取速度的持续a,磁盘的随机写操作率b,故障节点的数据块的数量x,剩下的数量有效datanodek集群中,和实际的网络传输速率在集群휇휃心跳周期,的最大数量(max-streams)是휄可复制的任务,和集群中的节点数据的总恢复时间是T.

       在商业Hadoop集群中,数据块大小通常是不固定的,这也会影响数据恢复性能。计算结果表明,数据块容量越小,数据恢复性能越好。但是由于数据块太小,磁盘的寻址时间会占用更多的数据传输时间。因此,为特定集群适当地设置数据块的容量是非常重要的。

3.2、因素调整策略                                                                                                                                                                                                                                                                                                 在实验中,我们证明了Hadoop计算任务和数据恢复对集群的可用带宽都是敏感的。如算法1所示,我们在不显著影响实验数据计算能力的情况下,动态调整复制因子的大小(1%),以获得更好的数据恢复性能。如算法1所示,其中B表示复制因子,S表示数据恢复性能,M表示集群的数据计算能力。

       如表3所示,在实验中修改Max-streams参数值时,需要将Iteration的值(默认为2)修改为等于Max-streams。当修改的Max-streams的值大于4时,根据HDFS块副本进程选择源节点的方法需要修改Limit的值(默认为4),使其等于Max-streams。 

4 Mapreduce和数据恢复

       Hadoop作为一种著名的分布式存储计算框架,不仅可以提供海量存储功能,还可以基于海量数据进行高效的并行计算。MapReduce通过重新调度任务和强制恢复的任务从头开始重新计算整个数据块来容忍这些故障。根据Rahman等人(2017);Yang et al. (2010);Wang et al. (2009);Naik et al. (2014), MapReduce默认容错策略在故障恢复过程中造成了较大的性能损失和计算资源浪费。因此,我们也很好奇加快数据恢复过程对计算密集型MapReduce作业的影响。   

4.1、MapReduce的容错                                                                                                                   

       在执行MapReduce计算任务时,调度程序首先将map任务分配给一个或多个包含本地数据块的节点,以实现数据局部性。然后,相应的节点管理器启动每个运行Map任务的容器。Map任务计算本地数据块,并将Map输出结果(中间结果)保存在本地硬盘上。在所有Map任务完成计算后,调度器将Reduce任务分配给节点。相应的节点管理器启动每个运行Reduce任务的容器。reduce任务包括三个阶段:shufe、merge和reduce。在调整阶段,Reducer首先从承载Map任务的节点提取Map输出结果。将所有Map输出结果拖到Reducer后,在merge阶段对其进行排序和合并,然后在reduce阶段对合并后的数据进行计算。最终结果存储在HDFS中。

       MapReduce (Wang et al.2014)的容错策略提供了任务故障和节点故障时的故障恢复。每当Map任务失败(即尝试Map任务失败)时,调度器将重新分配Map任务,并相应地启动对该Map任务的新的尝试。当发生失败时,由失败的任务尝试生成并存储在本地硬盘的map输出结果立即被丢弃。

       因此,如何通过改变存储介质来加快数据读取速度和调整资源参数,对MapReduce的执行效率有着复杂的影响。使用NVM介质可以提高MapReduce作业数据处理过程中从磁盘加载数据的效率,也可以缩短数据恢复的时间。数据恢复任务引起的网络负载可能会对MapRedcue任务产生负面影响。在Map和Reduce阶段调整资源参数将导致单位时间内处理的数据量增加,这将受到集群资源负载的影响.

4.2、数据恢复与MapReduce任务的关系

       在MapReduce中,集群根据资源可用性和调度算法,恢复本地或远程节点上失败的任务。如果任务在本地节点上恢复,新的任务尝试可以快速读取本地存储的数据块进行计算。在任务在其中一个远程节点上恢复的情况下,如果该节点上没有数据块的副本,则新的任务尝试必须访问远程数据副本。因此,数据副本丢失对MapReduce任务的影响是明显的,远程恢复导致故障恢复比本地恢复慢。合理地提高数据复制恢复的性能以减少对MapReduce的影响是很重要的。

4.3、优化数据块的容量

        Hadoop平台中的任务通常被划分为大量的MapReduce。在每个任务的执行过程中,将其划分为多个数据块,通过多个datanode之间的Map和reduce计算得到最终结果。数据恢复过程依赖于复制datanode之间的切割数据块。因此,当块大小不同时,不仅会影响MapReduce作业,也会影响数据恢复过程。

4.4、基于动态优先级的数据恢复策略      

       为了保证MapReduce计算任务的顺利运行,需要动态选择特定的数据恢复任务和数据复制任务的数量。因此,在集群中运行MapReduce作业时,为了防止一些丢失的数据副本长时间恢复而导致饿死,极端情况下甚至会进一步影响集群数据的高可用性,针对当前集群网络状态和集群负载,选择合适的数据恢复任务数量。在整个数据节点或机架关闭的极端情况下,集群中可用数据副本的数量可能比副本系数小得多。因此,我们也将保存的数据副本数量作为影响数据恢复性能的关键参数。

       数据中心应用依赖于数据分析的结果,消耗一定的带宽资源来实现交互和提供服务。因此,业务可以简单描述为Fi:(Sj, Xi),其中sjj表示第j个数据,Xi表示带宽资源需求。由于数据存储在多个副本中,服务对数据Sj的依赖具体表现在对某个数据副本的分析中。首先,使用Cjk表示数据Sj的第k个副本。该服务可以进一步描述为Fi:(Cjk, Pk, Xi),其中Cjk表示数据Sj在物理机器Pk上的数据副本。使用C(Fi) = Cjk表示为Fi服务而访问的数据副本。服务与数据拷贝的关系如式(4)所示。

       如式(5)所示,为了分析数据副本在系统中的重要性和对服务的支持程度,根据服务对带宽资源的需求,将数据副本Cjk的负载定义为:

 

      数据恢复任务的权重计算方法。当前的生存是一个数据副本,设定的数据拷贝复制因子值集群是k,当前选中的数据恢复的总要求时间的任务是t,目标存储节点的网络距离d和当前存储目标节点的负载是1,如公式(6)所示,当前选择的数据恢复任务在动态优先级队列中的权重可以表示为S:

       数据恢复任务采用慢启动的思路。心跳周期内的数据恢复任务最初只能恢复一份数据副本,之后心跳周期内的数据恢复任务数量以双倍增长的速度增加。当集群中用于数据恢复的负载达到集群可用带宽的极限时,为了保证MapReduce作业的运行质量,我们在心跳周期内将数据恢复任务的数据量减半,进入拥塞避免状态。此时,在不影响计算任务的前提下,每个心跳周期只增加一个数据恢复任务。

4.5、基于动态优先级的数据恢复性能

       Hadoop集群在数据中心的工作重点是提供高效的计算能力,而优化HDFS复制因子的策略并没有明显提高MapReduce作业的执行性能。基于最佳复制因子和最佳数据块容量,基于动态优先级队列选择合适的数据恢复任务和数量的策略体现了MapReduce任务的友好性。

5、绩效评估

5.1、实验配置

       复制机制是分布式文件系统的核心技术。它必须有良好的容错能力。好的拷贝机制有助于提高系统的性能和可靠性。我们使用带有NVMe接口的固态硬盘作为存储介质,并使用一个带有10个datanode的真实Hadoop集群作为性能测试环境。性能基准是HDFS(3.2.1版本)在数据损坏后的本地灾难恢复机制。

        在本文中,我们分别使用HDD媒体和NVM媒体构建Hadoop集群。DataNode通过千兆路由器进行RPC通信和数据传输。具体节点的配置如表4所示。拓扑结构如图4所示。本实验使用30gb的非结构化数据作为测试数据,采用3副本策略存储在HDFS中,并通过修改max-streams参数修改每个心跳间隔节点的最大复制任务数。我们考虑到HDFS数据副本的分布是随机的,便于比较不同数据块大小下的数据恢复速度,以16mb的数据恢复时间作为衡量数据恢复性能的标准。这个实验。为了缩小误差,我们对每个参数值采用了五次。

5.2、复制因子的影响

      如图5所示,通过优化复制器提高数据恢复性能的方法是明显有效的。对于HDD介质,使用最佳replicator值比默认值提高52.1%,对于NVM介质,使用最佳replicator值比默认值提高76.8%。如图6所示,通过优化复制器,可以充分利用NVM的读写性能。与默认的复制器相比,通过使用适当的复制器,NVM相对于HDD的性能优势可以从17提高到71%。这对于通过数据恢复提高集群数据的高可用性是非常有效的性能提升。

       优化复制器和数据块容量的方法本质上是充分利用集群的带宽资源。当Hadoop集群中只有节点数据恢复任务时,集群的可用带宽应该是用于数据恢复的节点数和网络线路带宽的乘积。在最坏的情况下,它将受到集群带宽的限制。除了受磁盘读写时间的影响外,由于网络拥塞,接收集群数据恢复的时间也会延长。因此,仅仅增加复制器的值并不一定会带来更好的数据恢复性能。在极端情况下,复制任务可能会阻塞优先级队列,其中数据恢复性能与网络状态呈正相关。当集群网络带宽稳定时,数据恢复性能趋于稳定。实验结果有力地证明了我们的结论。

5.3、数据块大小的影响

       如图7所示,修改数据块容量对数据恢复的影响是明显的。当采用最优复制器时,增加数据块容量会降低数据恢复效率。因为修改数据块容量或修改复制器实际上会使用尽可能多的带宽资源来恢复数据。事件解释数据恢复任务已经占用集群用于复制的带宽。当使用了最好的复制器时,通过修改块容量来继续加速数据恢复是不可行的。相反,它会增加数据块的容量,导致单位时间的网络负载复杂,降低恢复任务的恢复性能。但是,考虑到分布式系统的计算和访问优先级高于存储的可靠性,太小的数据块容量会浪费大量的磁盘寻址时间,导致MapReduce任务的执行效率降低。因此,数据恢复的资源参数应该同时考虑MapReduce任务的复制器和数据块容量。

5.4、数据恢复对MapReduce任务的影响

       副本的创建应该考虑系统的运行状态和服务器当时的负载。当系统非常繁忙时,应首先满足应用程序的访问需求,降低复制复制的优先级。然后,当系统空闲时,应该考虑副本。如图8所示,由于集群内的计算任务占用了带宽,网络恶化导致两种介质的数据恢复性能下降。在最优复制参数附近,两种介质的数据恢复性能仍较好,且受带宽上限限制,数据恢复性能相对稳定。综上所述,在心跳周期内无限增加DataNode的复制任务数量会延长MapReduce任务的执行时间,更多的复制任务会抢占计算任务所属节点的通信带宽。为了保证集群的高可用性,需要充分考虑复制器与节点数据量和集群带宽之间的关系。

        如图9所示,数据恢复对MapReduce作业的效果与作业数量呈正相关关系。原因是随着计算任务的增加,可用网络带宽逐渐变差,Map相位和Reduce相位的传输时间增加。在合并阶段,从shufe阶段复制的数据逐渐增加并溢出到磁盘,然后Reduce需要从磁盘加载数据。这些因素结合起来增加了MapReuce任务的数量,延长了执行时间。对于每个作业,作业的执行时间都保持在接近最佳复制参数的较低水平。这意味着数据副本的恢复时间越短,DataNode对操作的影响就越小。由于集群带宽有限,数据恢复任务将与计算任务争夺宝贵的网络带宽资源。同时,由于MapReduce任务和数据恢复涉及频繁的磁盘读写,因此基于NVM介质的集群MapReduce任务执行时间较短。

       如图10所示,优化后的replicator和适当的数据块容量可以减少数据丢失后MapReduce作业的执行时间。reduce的程度取决于MapReduce作业的规模。在本文中,MapReduce作业的执行效率提高了28-59%。数据恢复和MapReduce任务对数据块容量的变化非常敏感。Map和Reduce阶段的每次计算都可以在系统资源充足的情况下计算更大的任务,提高集群的资源利用率。数据块容量过大会导致单位时间内的数据恢复任务增多,宝贵的带宽资源被抢占,集群资源负载过大,导致MapReduce任务完成时间延迟。此外,太小的块数据容量是不合适的。NameNode的数据恢复过程中,需要在datanode之间同步复制大量数据块。MapReduce作业还涉及多个闪存和读操作。一小块数据容量会导致大部分时间浪费在磁盘寻址上,严重影响MapReduce作业和数据恢复的性能。因此,合理的数据块容量可以保证最佳的数据恢复和MapReduce操作的整体效率。

       如图11所示,在添加基于计算质量的动态优先级队列策略后,与简单修改集群参数相比,性能略有下降。但与原生HDFS恢复机制相比,性能仍平均提高25.2%。原因是我们在数据恢复阶段引入了优先级队列策略,并根据当前可用带宽选择合适的数据恢复任务数量。因此,对于一些仍然存在的数据副本,由于数据副本足够多,可能会延迟数据恢复时间。但由于我们提出的优先级队列是动态的,数据恢复任务会随着时间的推移逐渐增加其在队列中的权重,因此不会出现饥饿现象。此外,我们的策略还可以根据当前的网络条件,尽可能多地利用空闲带宽进行数据恢复。因此,我们的策略使得数据恢复的性能提高非常明显。

       如图12所示,采用基于计算质量的动态优先队列策略后,现有MapReduce作业的执行效率明显提高,平均性能提高32.5%。原因是恢复任务的优先级低于MapReduce任务。时监控网络状态的数据恢复工作是现代人的数据恢复的任务,数据恢复的最大数量在心跳周期的任务将会减半,和缓慢的增长战略将开始确保有效率的执行MapReduce工作。大量的计算任务是非常有意义的。

6、相关工作及后续工作

       目前,针对HDFS节点故障,有很多工作需要优化数据恢复性能。Shen等人(2015)提出了一种高效的I/O恢复算法SIOR method for HDFS,通过Erasure编码防止磁盘故障和低冗余。这种方法通过考虑多个频带级别的数据布局,小心地平衡了数据读取量和磁盘数量。

      该方法在保持较高搜索效率的同时,其性能与蛮力枚举相似。Wu et al.(2017)提出了一种基于汽车的跨框架感知恢复算法,采用reed-solomon编码的通用容错算法,旨在提高CFS单故障恢复的性能。对于每个条带,CAR找到一个恢复解决方案,从最少的机架数量中检索数据。它还通过在跨机架传输之前进行机架内数据聚合,减少了跨机架维修流量。Xiang和Xu(2010)针对RDP码单盘故障提出了一种最优有效的磁盘恢复方案RDOR。这种方法具有负载平衡特性,即当重新构建失败的磁盘时,所有幸存的磁盘将承担相同数量的额外工作负载。作者仔细研究了设计状态空间,从理论上证明了RDOR的最优性质。但这些努力只关注算法层面,基于替换数据副本的容错机制优化数据恢复性能,没有考虑到硬件单个DataNode故障后数据恢复时间的缩短。此外,上述工作还会导致数据恢复和MapReduce任务抢占网络带宽,影响MapReduce任务的效率。通过优化HDFS的数据恢复机制和数据恢复任务选择策略,提高数据中心的数据恢复性能。与上述相关工作相比,本文的策略没有使用额外的数据结构,浪费了大量的网络开销,同时达到了显著性能提升的目标。
       在数据中心内部配置优化方面有许多新的研究。Zhibin et al.(2018)通过层次建模和遗传算法,作者提出了一种基于数据感知的自动调优方法,解决了内存集群计算的问题,我们的工作重点是解决HDFS的数据恢复问题。Wang et al.(2018)作者提出的SmartConf控制理论解决了分布式系统自动设置和调整的大部分问题,但这种策略依赖于分布式本地调整策略。对于数据恢复任务,首先研究数据恢复的限制因素,其次根据数据中心的可用带宽。在对MapReduce任务进行优先级划分和综合确定数据恢复任务的恢复时间的前提下,我们的工作是有意义的。

       本文在前人研究(Li et al. 2020)的基础上,进一步提出了一种可感知副本的分段数据恢复机制,丰富了数据恢复的评价标准。在进一步提高数据恢复性能的同时,我们尽可能地在数据恢复任务和MapReduce任务之间实现了平衡。与原有HDFS容错机制和之前的工作相比,本文的策略可以进一步减少MapReduce作业在数据恢复过程中的执行时间32.5%。Zhibin et al.(2018)我们关注的是数据恢复的效率,而没有考虑MapReduce作业。在真实的Hadoop集群中,计算任务的高效执行非常重要。

        未来,我们将探索NVM媒体的优势,修改现有的数据恢复策略,通过和erase编码(Rashmi and Ramchandran 2019)和Hadoop Raid (Pirahandeh et al. 2016)等方法,进一步平衡数据恢复和MapReduce任务的性能。

7、总结

        Replicas机制是HDFS的核心技术,必须具有良好的容错能力。好的副本机制有助于提高HDFS的性能和可靠性。简单地将存储NVM替换为存储介质来提高数据恢复性能,并不能达到预期的效果,只能提高17%。我们在心跳周期修改datanode的复制器,通过研究HDFS的数据恢复机制,数据恢复性能可稳步提高71%。在实际的Hadoop生产集群中,大量计算密集型的MapReduce任务会在运行时占用集群的大部分可用带宽,并且频繁的磁盘读写,会与数据恢复过程发生冲突。基于NVM介质,我们证明的前提下保证的执行efciency MapReduce工作,更换更好的存储介质和调整适当的资源参数可以获得算法数据恢复性能违约confguration相比,它还可以减少MapReduce工作28 59%的执行时间。此外,通过引入基于服务质量的动态优先级队列,在保证数据有效恢复的同时,我们的策略进一步提高了MapReduce的执行性能32.5%。这对今后的研究具有积极的意义。

                                                                                                                                                                       

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值