CN108304264B - 一种基于spark流式计算的纠删码归档方法 - Google Patents

一种基于spark流式计算的纠删码归档方法 Download PDF

Info

Publication number
CN108304264B
CN108304264B CN201810058018.5A CN201810058018A CN108304264B CN 108304264 B CN108304264 B CN 108304264B CN 201810058018 A CN201810058018 A CN 201810058018A CN 108304264 B CN108304264 B CN 108304264B
Authority
CN
China
Prior art keywords
blocks
node
nodes
sub
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201810058018.5A
Other languages
English (en)
Other versions
CN108304264A (zh
Inventor
黄建忠
曹强
谢长生
蔡奇
王爽
汤思雨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201810058018.5A priority Critical patent/CN108304264B/zh
Publication of CN108304264A publication Critical patent/CN108304264A/zh
Application granted granted Critical
Publication of CN108304264B publication Critical patent/CN108304264B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本发明公开了一种基于SPARK流式计算的纠删码归档方法,属于计算机储存领域。本发明从集群的节点中选取要归档的数据分块在SPARK框架下组建多个RDD,以RDD为基本单元进行纠删码归档,RDD中数据分块所在节点承担各自纠删码中间校验分块的计算任务,并采用流水线形式,从首节点开始向后置节点下发中间校验分块,利用后置节点的中间校验分块和计算能力更新下发的中间校验分块,直到尾节点利用下发的中间校验分块生成最终校验分块,并发送给集群的校验节点。本发明方法在SPARK大数据处理框架下采用Map/Reduce模型进行纠删码归档,归档过程采用流水线方式实现,将编码计算过程分散到多个节点完成,极大提高归档性能。

Description

一种基于SPARK流式计算的纠删码归档方法
技术领域
本发明属于计算机储存领域,更具体地,涉及一种基于SPARK流式计算的纠删码归档方法。
背景技术
随着大数据、信息存储的发展,内存容量日益增大,新存储介质新技术不断更新,而应用程序处理数据量也大大增加,这对内存的的数据容错率、存储安全性和空间利用率提出了更高的要求。分布式存储集群中的数据,通常采用三副本冗余机制存储,并配合节点恢复策略使其能在失效后快速修复;相较于三副本冗余机制,纠删码具有更高的存储效率和可按需定制的容错能力。
Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎,由伯克利大学推出的全新的统一数据处理框架,创新性的提出了RDD概念,一种新的抽象的弹性分布式数据集,可以实现在并行计算的各个阶段进行有效的数据分享。
目前,在Hadoop集群中研究较多的归档方案是在磁盘上进行的,而随着集群中内存的扩大,且越来越多的应用程序扩展到集群的内存中去计算,因此磁盘上的归档方案远不能满足需求。当前集群中内存的归档方案就是将内存中的冷数据的冗余副本转换为纠删码存储,归档性能还有很大提升空间。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于SPARK流式计算的纠删码归档方法,其目的在于在SPARK大数据处理框架下采用Map/Reduce模型对冷数据的多副本进行纠删码归档,由此解决提高系统的归档性能。
为实现上述目的,本发明提供了一种基于SPARK流式计算的纠删码归档方法,所述方法为:
从集群的节点中选取要归档的数据分块在SPARK框架下组建多个RDD,以RDD为基本单元进行纠删码归档,RDD中数据分块所在节点承担各自纠删码中间校验分块的计算任务,并采用流水线形式,从首节点开始向后置节点下发中间校验分块,利用后置节点的中间校验分块和计算能力更新下发的中间校验分块,直到尾节点利用下发的中间校验分块生成最终校验分块,并发送给集群的校验节点。
进一步地,所述方法具体包括以下步骤:
(1)从集群的节点中选取要归档的数据分块组建多个RDD,归档采用(k+r,k)RS纠删码,每个RDD包含k个数据分块;
(2)RDD中数据分块Di所在节点将Di划分为等大的数据子块Di,j,并依次指定相应的键值j;每个数据子块Di,j乘以RS编码子矩阵得到带键值的中间校验子块,将键值相同的中间校验子块相加合并得到新的中间校验子块;
(3)将首节点的中间校验子块向后置节点发送;后置节点收到中间校验子块后将相同键值的中间校验子块合并更新中间校验子块,并继续向其后置节点发送中间校验子块;直到尾节点收到中间校验子块,并将相同键值的中间校验子块合并得到最终校验分块,并将最终校验分块发送至集群的校验节点。
进一步地,所述步骤(1)中从集群的节点中选取要归档的数据分块组建多个RDD具体为:统计节点中需要归档的数据分块数量,优先选取包含数据分块较少的节点提供数据分块组建RDD。
进一步地,所述步骤(2)中,每个数据分块Di都被视为RDD的一个分区,单独分配一个mapper线程进行后续子块的划分和中间校验子块的计算更新。
进一步地,所有RDD中数据分块Di所在节点并行执行步骤(2)。
进一步地,所有RDD并行执行步骤(3)。
进一步地,步骤(3)中尾节点和中间节点都单独分配一个reducer线程合并校验子块。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下技术特征及有益效果:
(1)本发明方法采用流水线技术,同一流水线的多个中间节点分担中间校验分块的计算任务,避免因整个校验过程由单个节点执行而引起的网络传输和CPU计算瓶颈,从而提高系统的归档性能;
(2)本发明方法优先让包含归档数据分块少的节点提供RDD,有利于减轻包含归档数据分块多的节点的负担,从而最大化系统资源利用率,达到一种负载均衡的纠删码归档;
(3)本发明方法各节点优先合并本地相同键的值,将生成的中间校验值发送给同一条流水线的后置节点或者最终校验节点,相比未合并直接发送键值,有助于减少了网络中数据传输量。
总体而言,本发明在SPARK框架下,将Map/Reduce模型与流式计算相结合计算纠删码校验分块,大大提升了归档性能;利用数据的局部性,一个节点上可能有多个数据块需要归档,每个数据块的mapper执行具有潜在并行性,同时将分组和计算负载转移到mapper上,分散reducer的计算负载,从而减轻了reducer潜在的瓶颈问题;考虑到负载平衡问题,当要归档的数据分块较多时,优先让包含归档数据分块少的节点提供RDD,有利于减轻包含归档数据分块多的节点的负担,从而最大化系统资源利用率。本发明将内存中低访问的冗余副本转化为纠删码存储,提高了空间存储效率,从而提升内存的整体存储效率。
附图说明
图1是本发明方法的步骤流程图;
图2是本发明实施例RS(6+2,6)纠删码存储的流式归档方案;
图3是本发明实施例RS(6+2,6)纠删码存储的负载均衡方案;
图4是本发明实例例RS(6+2,6)纠删码存储Map/Reduce的详细步骤。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
以下首先就本发明涉及的技术术语进行解释和说明:
RS纠删码:(k+r,k)RS纠删码条带是由k个数据分块和r个校验分块组成,使用RS编码的目的是通过增加冗余码来提高信道传输的可靠性;
RS编码过程:根据所有数据节点中特定数据分块计算出同一条带中对应位置校验节点数据分块块的过程。若使用f表示计算过程,则编码过程可以表示为f(D0,j,D1,j,……,Dk-1,j)→(P0,j,P1,j,……,Pr-1,j)。
编码流水线:本发明基于Map Reduce使用了流水线形式完成RS编码过程。一条流水线中,要归档的节点链式连接,没有前置节点的为第一个节点,没有后置节点的为最后一个节点。
RDD(Resilient Distributed Datasets):弹性分布式数据集,是分布式内存的一个抽象概念。RDD可以看作是Spark的一个对象,它本身运行于内存中,提供了一种高度受限的共享内存模型,即RDD是只读的记录分区的集合,只能通过在其他RDD执行确定的转换操作(如map、join和group by)而创建,然而这些限制使得实现容错的开销很低。
内存级纠删码归档方案(In-Memory Archival Scheme,IMAS):是本发明方法的名称。本发明默认数据在内存中以副本方式存放,随着访问的进行,将内存中的冷数据进行纠删码归档。
如图1所示,本发明包含以下步骤:
(1)在一段时间内,统计内存中访问频次低于一定阈值的数据分块,标记为需归档的数据集,归档采用(k+r,k)RS纠删码。按照条带间负载均衡策略,每k个数据分块组成一个RDD,从而,被归档数据集被划分为多个RDD;
(2)每个数据分块被视为RDD中的分区Di,对应一个mapper线程把分区划分成m个(m≥1)等大的子块Di,j,并依次为子块指定相应的键0,1…,(m-1),每个子块乘以RS编码子矩阵,将当前节点上得到的中间校验子块按照相同的键值相加合并;
(3)判断节点是否有前置节点,若有,则执行reducer线程归并接收来自前置节点的中间校验子块和当前节点计算得到的校验子块,生成新的校验子块,转到(4);否则,当前节点直接计算并生成新的校验子块,转到(4);
(4)判断节点是否有后置节点,若有,则将(3)生成的校验子块发送给后置节点;否则,当前节点执行reducer线程合并校验子块,得到最终的校验分块,并发送给校验节点。
以下结合实施例进一步阐述本发明方法的技术方案:
如图2所示,将Map/Reduce模型与流式计算相结合的(6+2,6)RS纠删码归档过程。在SN1至SN8节点组成的存储集群中,要归档的数据分块有D1、D2、D3、D4、D5、D6,数据分块按照以三副本方式存放。此时SN1和SN4节点上的数据分块划分为一个RDD,组成一条流水线,而SN2、SN3和SN6节点上相同的数据分块划分为另一个RDD,组成另一条流水线;每个数据分块分配一个mapper,在SN1节点上D1、D2、D3分别对应三个mapper线程,其他节点上同理。以SN1和SN4流水线为例,SN1生成中间子校验块P1,1传递给后置节点SN4,SN4节点将P1,1并与自身节点的中间子校验块调用reducer线程按照相同键值合并生成P1,2,将P1,2传递给校验节点SN7,即为最终校验分块P1。另一条流水线过程同理,得到另一个校验分块P2。两个流水线并行完成,提高归档性能。
如图3所示,本发明考虑了数据归档时负载均衡的问题,k=6、r=2实施例的具体步骤。此时要归档的数据分块有D1、D2、D3、D4、D5、D6和D7、D8、D9、D10、D11、D12分别组成两个RDD,每个RDD组完成相应的(6+2,6)RS纠删码归档过程。SN1和SN4节点组成的一条流水线生成P1和P2两个校验分块,而SN2和SN5节点组成另一条流水线生成对应的P3和P4两个校验分块。两个流水线可并行完成,提高了归档性能。
如图4所示,本发明采用的Map/Reduce模型的详细计算步骤,在这里我们的实施例中k=6、r=2。
(1)每个数据分块D1、D2、D3、D4、D5、D6对应的mapper分别将数据分块分成等大的m个数据子块,例将数据分块D1分成{D1,0,D1,1,……,D1,m-1},且给每个数据子块依次指定相应的键值,从0到m-1,结果表示为<键,数据子块>;
(2)每个mapper的数据子块Di,j乘以相应的编码子矩阵Mj,得到新的数据子块即中间校验子块D`i,j,结果表示为<键,中间校验子块>;
(3)同一节点中具有相同键的中间校验子块相加,进行同一节点上相同键值的合并,结果表示为<键,中间校验子块>;
(4)不同节点中具有相同键的中间校验子块合并,使用当前节点后置节点的mapper完成对前置节点键值对的相同键值的合并。最后一个节点执行reducer线程,归并所有中间检验子块,得到m个校验子块,一个键值对应一个校验子块,得到最终的校验分块,存放在校验节点中。
以上内容本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种基于SPARK流式计算的纠删码归档方法,其特征在于,所述方法为:
从集群的节点中选取要归档的数据分块在SPARK框架下组建多个RDD,以RDD为基本单元进行纠删码归档,RDD中数据分块所在节点承担各自纠删码中间校验分块的计算任务,并采用流水线形式,从首节点开始向后置节点下发中间校验分块,利用后置节点的中间校验分块和计算能力更新下发的中间校验分块,直到尾节点利用下发的中间校验分块生成最终校验分块,并发送给集群的校验节点;所述方法具体包括以下步骤:
(1)从集群的节点中选取要归档的数据分块组建多个RDD,归档采用(k+r,k)RS纠删码,每个RDD包含k个数据分块;
(2)RDD中数据分块Di所在节点将Di划分为等大的数据子块Di,j,并依次指定相应的键值j;每个数据子块Di,j乘以RS编码子矩阵得到带键值的中间校验子块,将键值相同的中间校验子块相加合并得到新的中间校验子块;
(3)将首节点的中间校验子块向后置节点发送;后置节点收到中间校验子块后将相同键值的中间校验子块合并更新中间校验子块,并继续向其后置节点发送中间校验子块;直到尾节点收到中间校验子块,并将相同键值的中间校验子块合并得到最终校验分块,并将最终校验分块发送至集群的校验节点。
2.根据权利要求1所述的一种基于SPARK流式计算的纠删码归档方法,其特征在于,所述步骤(1)中从集群的节点中选取要归档的数据分块组建多个RDD具体为:统计节点中需要归档的数据分块数量,优先选取包含数据分块较少的节点提供数据分块组建RDD。
3.根据权利要求1所述的一种基于SPARK流式计算的纠删码归档方法,其特征在于,所述步骤(2)中,每个数据分块Di都被视为RDD的一个分区,单独分配一个mapper线程进行后续子块的划分和中间校验子块的计算更新。
4.根据权利要求1所述的一种基于SPARK流式计算的纠删码归档方法,其特征在于,所有RDD中数据分块Di所在节点并行执行步骤(2)。
5.根据权利要求1所述的一种基于SPARK流式计算的纠删码归档方法,其特征在于,所有RDD并行执行步骤(3)。
6.根据权利要求1所述的一种基于SPARK流式计算的纠删码归档方法,其特征在于,步骤(3)中尾节点和中间节点都单独分配一个reducer线程合并校验子块。
CN201810058018.5A 2018-01-22 2018-01-22 一种基于spark流式计算的纠删码归档方法 Expired - Fee Related CN108304264B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810058018.5A CN108304264B (zh) 2018-01-22 2018-01-22 一种基于spark流式计算的纠删码归档方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810058018.5A CN108304264B (zh) 2018-01-22 2018-01-22 一种基于spark流式计算的纠删码归档方法

Publications (2)

Publication Number Publication Date
CN108304264A CN108304264A (zh) 2018-07-20
CN108304264B true CN108304264B (zh) 2022-02-15

Family

ID=62865710

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810058018.5A Expired - Fee Related CN108304264B (zh) 2018-01-22 2018-01-22 一种基于spark流式计算的纠删码归档方法

Country Status (1)

Country Link
CN (1) CN108304264B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111061565B (zh) * 2019-12-12 2023-08-25 湖南大学 一种Spark环境下的两段式流水线任务调度方法及系统
CN111541512B (zh) * 2020-03-13 2023-06-20 中国科学院深圳先进技术研究院 数据的处理方法、终端设备、可读存储介质
CN115357368A (zh) * 2022-10-19 2022-11-18 中国科学技术大学 一种基于异构环境感知的MapReduce作业调度方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104391759A (zh) * 2014-11-11 2015-03-04 华中科技大学 一种纠删码存储中负载感知的数据归档方法
CN105610921A (zh) * 2015-12-23 2016-05-25 华中科技大学 一种集群下基于数据缓存的纠删码归档方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104391759A (zh) * 2014-11-11 2015-03-04 华中科技大学 一种纠删码存储中负载感知的数据归档方法
CN105610921A (zh) * 2015-12-23 2016-05-25 华中科技大学 一种集群下基于数据缓存的纠删码归档方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
aHDFS:An Erasure-Coded Data Archival System for Hadoop Clusters;Yuanqi Chen等;《IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS》;20171130;第28卷(第11期);3060-3073 *
面向纠删码存储集群的离线归档优化研究;王艳群;《中国优秀硕士学位论文全文数据库信息科技辑》;20171115;I137-33 *

Also Published As

Publication number Publication date
CN108304264A (zh) 2018-07-20

Similar Documents

Publication Publication Date Title
CN109491835B (zh) 一种基于动态分组码的数据容错方法
Li et al. Coded mapreduce
Costa et al. Camdoop: Exploiting in-network aggregation for big data applications
CN108304264B (zh) 一种基于spark流式计算的纠删码归档方法
CN103209210B (zh) 一种提高基于纠删码的存储集群恢复性能的方法
CN103810061B (zh) 一种高可用云存储方法
CN104969213A (zh) 用于低延迟数据存取的数据流分割
CN103944981A (zh) 一种基于纠删码技术改进的云存储系统及实现方法
JP2021501400A6 (ja) コンピュータクラスタインターフェースを管理すること
JP2021501400A (ja) コンピュータクラスタインターフェースを管理すること
US10509582B2 (en) System and method for data storage, transfer, synchronization, and security
CN111614720A (zh) 针对集群存储系统单点失效修复的跨集群流量优化方法
CN113541870A (zh) 一种纠删码存储单节点失效的修复优化方法
Anderson et al. Service rate region of content access from erasure coded storage
CN113973021A (zh) 一种图式区块链的网络传输优化装置及方法
CN112799605A (zh) 平方部分重复码构造方法、节点修复方法及容量计算方法
CN111045843B (zh) 具有容错能力的分布式数据处理方法
CN113014649B (zh) 一种基于深度学习的云物联负载均衡方法、装置及设备
WO2017113865A1 (zh) 一种大数据增量计算方法和装置
CN111224747A (zh) 可降低修复带宽和磁盘读取开销的编码方法及其修复方法
CN116760661A (zh) 数据存储方法、装置、计算机设备、存储介质和程序产品
WO2018209541A1 (zh) 基于t-设计的部分重复码的编码结构以及构造方法
CN113504875B (zh) 一种基于多级调度的纠删码系统恢复方法及系统
Meng et al. A Dynamic Erasure Code Based on Block Code.
You et al. Towards a delivery scheme for speedup of data backup in distributed storage systems using erasure codes

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20220215