CN107122242B - 一种有效提升分布式运算性能的大数据均衡切片方法 - Google Patents
一种有效提升分布式运算性能的大数据均衡切片方法 Download PDFInfo
- Publication number
- CN107122242B CN107122242B CN201710191494.XA CN201710191494A CN107122242B CN 107122242 B CN107122242 B CN 107122242B CN 201710191494 A CN201710191494 A CN 201710191494A CN 107122242 B CN107122242 B CN 107122242B
- Authority
- CN
- China
- Prior art keywords
- slice
- balanced
- key
- data
- slices
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
Abstract
本发明提供了一种有效提升分布式运算性能的大数据均衡切片方法,属于大数据分布式运算保护领域。根据分布式运算环境下的集群规模,通过合理地构建分布式运算在数据预处理阶段的数据切片机制,并利用组合贪心算法来均衡数据切片的大小,有效解决大数据键值对分布不均衡导致的数据切片倾斜问题,并提出全局最优的数据均衡切片方法。通过实施该方法,可以保证数据分片的均衡性,使分布式运算整体性能得到有效提升。
Description
技术领域
本发明涉及大数据分布式运算技术,特别是一种有效提升分布式运算性能的大数据均衡切片方法。
背景技术
随着信息技术的飞速发展,信息系统产生的数据量越来越大,而单机系统在大数据处理过程中的处理能力成为巨大的瓶颈。分布式系统以集群技术和大数据技术为基础,利用高性能的分布式运算,为处理海量的数据,提取数据中的有用信息提供底层技术支持。
分布式运算的基础是分布式存储的原始数据,而这些原始的数据存储结构一般是按照键值对(Key-Value)的方式设计的。在数据开始运算前,就需要把原始的数据进行合理的切片(slice),切割成与集群数量相关的分片数,然后把这些分片分发给数据处理节点,按照分布式运算的流程进行计算,再汇总(collect)到数据管理节点,合并后输出运算的结果。
在整个分布式运算过程中,最重要的就是如何切片可以保证全局运算时间最优化。目前主流的技术是根据Key的分类和集群数量进行划分,但这种数据切片方法在遇到key的分布不均衡时,会导致严重的数据切片倾斜(Data Slice Skew)。发生数据切片倾斜后,某个数据处理节点会分配明显高于平均水平(Average Level)的数据处理量,导致全局的数据处理性能急剧下降。
发明内容
本发明的目的在于:针对分布式数据处理过程中数据切片倾斜导致的局部数据处理量过大,导致全局的数据处理性能低下的问题,提供一种有效提升分布式运算性能的大数据均衡切片方法。
本发明采用的技术方案如下:
一种有效提升分布式运算性能的大数据均衡切片方法,包括以下步骤:
S1:将分布式存储的原始数据切片为数据处理节点数量相同的切片,并以键值对的形式标识;
S2:计算切片均衡水平,判断切片能否平衡划分,不能划分时添加扩展键值对EK到任一切片;否则直接进行下一步;
S3:判断添加扩展键值对的切片是否满足切片均衡状态,当不满足切片均衡状态时进行下一步,满足均衡状态则跳转至S7;
S4:对切片进行信息重构;
S5:利用组合贪心算法迭代计算最优切片均衡方案,获得重新分配后的切片结构;
S6:依据重新分配后的切片结构,重新对数据进行均衡切片;
S7:获得均衡状态下的切片数据。
进一步的,所述步骤S2中判断切片能否完全平衡划分的方法为:
判断SC能否被N整除,能整除时切片能平衡划分,否则不能平衡划分;
其中SC为键值对总数,N为数据处理节点数量。
进一步的,所述判断切片均衡水平方法为:
通过对集群规模和切片大小的标准分析方法,分析添加扩展键值对后所有切片的均衡水平BL和均衡状态下单个切片的键值对数量AL;
BL值越大,则均衡水平低,BL=0时表示切片处于均衡状态。
进一步的,所述切片进行信息重构的方法为:
依据均衡状态下单个切片的键值对数量AL和添加扩展键值对以后的切片的键值对数量对所有切片进行划分:
键值对数量大于AL的切片划分为第一切片组SG1;
键值对数量小于AL的切片划分第二切片组SG2;
键值对数量等于AL的切片划分第三切片组SG0。
进一步的,所述最优切片均衡方案获得的具体步骤为:
S51:计算第一切片组SG1和第二切片组SG2内每个切片的平衡区间BI:
BI=SC'-AL;SC'为切片键值对数量;
S52:依据|BI|由大到小分别对第一切片组SG1和第二切片组SG2内切片进行排序,|BI|为各切片对应平衡区间绝对值;
S53:从第二切片组SG2依序选择切片,将第一切片组SG1中|BI|与被选择切片的|BI|最接近的切片中|BI|条键值对分配至被选择切片内;轮询第二切片组SG2内所有切片;
S54:重新计算所有切片的平衡区间BI,当Max(|BI|)=Min(|BI|)=AL时,获得重新分配后的切片结构;条件不满足时跳转至S51直至满足条件。
进一步的,所述数据进行均衡切片具体为:利用均衡切片结构,对每个切片包含的键值对重新命名。
进一步的,所述扩展键值对EK可添加到分布式物理存储位置的最后一个切片内。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1.本发明能有效解决数据切片倾斜导致某数据处理节点工作量过高,导致全局的数据处理性能下降的问题。
2.通过组合贪心算法来均衡数据切片的大小,有效解决大数据键值对分布不均衡导致的数据切片倾斜问题,从全局来进行最优数据均衡方法。
3.通过加入扩展键值对来让切片达到理论上的均衡水平,避免方法理论上的漏洞。
附图说明
图1是根据本发明实施的大数据均衡切片的流程图;
图2是根据本发明实施例示例图。
具体实施方式
本说明书中公开的所有特征,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
下面结合附图对本发明作详细说明。
样本示例数据的键值对数量分布如下:
假定分布式集群中的数据处理节点(Data Node)数量为7个,根据示例数据Key的分布情况,就需要把示例数据中的键值对划分成7个Slice,那么每个Slice对应的键值对数量如下所示:
Key | 键值对数量(SC) | Slice |
A | 9 | 1 |
B | 8 | 2 |
C | 7 | 3 |
D | 5 | 4 |
E | 1 | 5 |
F | 2 | 6 |
G | 3 | 7 |
判断示例数据能否达到完全均衡切片水平;
则Mod((9+8+7+5+1+2+3),7)=0,可以达到完全均衡。
计算AL和BL,AL=(9+8+7+5+1+2+3)/7=5;
BL=|(9-5)|+|(8-5)|+|(7-5)|+|(5-5)|+|(1-5)|+|(2-5)|+|(3-5)|=19;BL=19>0表明数据切片不均衡,需要进行切片均衡;
对示例数据的切片Slice进行分组操作,结果如下:
Key | 键值对数量(SC) | Slice | Slice Group |
A | 9 | 1 | SG1 |
B | 8 | 2 | SG1 |
C | 7 | 3 | SG1 |
D | 5 | 4 | / |
E | 1 | 5 | SG2 |
F | 2 | 6 | SG2 |
G | 3 | 7 | SG2 |
按照BI值对SG进行重新排序:
Key | 键值对数量(SC) | Slice | Slice Group | BI |
A | 9 | 1 | SG1 | 4 |
B | 8 | 2 | SG1 | 3 |
C | 7 | 3 | SG1 | 2 |
E | 1 | 5 | SG2 | 4 |
F | 2 | 6 | SG2 | 3 |
G | 3 | 7 | SG2 | 2 |
依据步骤S5,切片均衡后的键值对分布如下
∑(BI)=0判定示例数据处于均衡切片状态,结束迭代。
根据S105的重分配方案,并更换Key的命名,作为均衡后的切片分配方案,如下所示:
Key | SC(均衡完成) |
A' | 9-4=5 |
B' | 8-3=5 |
C' | 7-2=5 |
D' | 5 |
E' | 1+4=5 |
F' | 2+3=5 |
G' | 3+2=5 |
原始数据经过完整地均衡切片方法处理后,可以开始后续的分布式运算流程。
Claims (6)
1.一种有效提升分布式运算性能的大数据均衡切片方法,其特征在于,包括以下步骤:
S1:将分布式存储的原始数据切片为数据处理节点数量相同的切片,并以键值对的形式标识;
S2:计算切片均衡水平,判断切片能否平衡划分,不能划分时添加扩展键值对 EK 到任一切片;否则直接进行下一步;
S3:判断切片是否满足切片均衡状态,当不满足切片均衡状态时进行下一步,满足均衡状态则跳转至 S7;
S4:对切片进行信息重构;
S5:利用组合贪心算法迭代计算最优切片均衡方案,获得重新分配后的切片结构; S6:依据重新分配后的切片结构,重新对数据进行均衡切片;
S7:获得均衡状态下的切片数据;
所述切片进行信息重构的方法为:
依据均衡状态下单个切片的键值对数量AL 和添加扩展键值对以后的切片的键值对数量对所有切片进行划分:
键值对数量大于 AL 的切片划分为第一切片组 SG1;
键值对数量小于 AL 的切片划分第二切片组 SG2;
键值对数量等于 AL 的切片划分第三切片组 SG0;
所述最优切片均衡方案获得的具体步骤为:
S51:计算第一切片组 SG1 和第二切片组 SG2 内每个切片的平衡区间 BI:
BI=SC'-AL;SC'为切片键值对数量;
S52:依据|BI|由大到小分别对第一切片组 SG1 和第二切片组 SG2 内切片进行排序,|BI|为各切片对应平衡区间绝对值;
S53:从第二切片组 SG2 依序选择切片,将第一切片组 SG1 中|BI|与被选择切片的|BI|最接近的切片中|BI|条键值对分配至被选择切片内;轮询第二切片组 SG2 内所有切片;
S54:重新计算所有切片的平衡区间BI,当Max(|BI|)=Min(|BI|)=AL时,获得重新分配后的切片结构;条件不满足时跳转至S51直至满足条件。
2.根据权利要求 1 所述的一种有效提升分布式运算性能的大数据均衡切片方法,其特征在于,所述 S2 中判断切片能否完全平衡划分的方法为:
判断 SC 能否被 N 整除,能整除时切片能平衡划分,否则不能平衡划分; 其中 SC 为键值对总数,N 为数据处理节点数量。
3.根据权利要求2所述的一种有效提升分布式运算性能的大数据均衡切片方法,其特征在于,所述添加扩展键值对 EK 的数量为:⌈SC/N⌉×N-SC。
5.根据权利要求 1 所述的一种有效提升分布式运算性能的大数据均衡切片方法,其特征在于,所述数据进行均衡切片具体为:利用均衡切片结构,对每个切片包含的键值对重新命名。
6.根据权利要求 3 所述的一种有效提升分布式运算性能的大数据均衡切片方法,其特征在于,所述扩展键值对 EK 可添加到分布式物理存储位置的最后一个切片内。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710191494.XA CN107122242B (zh) | 2017-03-28 | 2017-03-28 | 一种有效提升分布式运算性能的大数据均衡切片方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710191494.XA CN107122242B (zh) | 2017-03-28 | 2017-03-28 | 一种有效提升分布式运算性能的大数据均衡切片方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107122242A CN107122242A (zh) | 2017-09-01 |
CN107122242B true CN107122242B (zh) | 2020-09-11 |
Family
ID=59718083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710191494.XA Active CN107122242B (zh) | 2017-03-28 | 2017-03-28 | 一种有效提升分布式运算性能的大数据均衡切片方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107122242B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107784195A (zh) * | 2017-11-30 | 2018-03-09 | 新华三大数据技术有限公司 | 数据处理方法及装置 |
CN112905114B (zh) * | 2021-02-10 | 2022-09-20 | 山东英信计算机技术有限公司 | 一种分布式存储的性能调节方法、系统及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799486A (zh) * | 2012-06-18 | 2012-11-28 | 北京大学 | 一种MapReduce系统中的数据采样和划分方法 |
CN102937918A (zh) * | 2012-10-16 | 2013-02-20 | 西安交通大学 | 一种hdfs运行时数据块平衡方法 |
CN104331439A (zh) * | 2014-10-24 | 2015-02-04 | 北京东方国信科技股份有限公司 | 基于hdfs的迭代式回溯算法的负载均衡与计算本地化方法 |
-
2017
- 2017-03-28 CN CN201710191494.XA patent/CN107122242B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799486A (zh) * | 2012-06-18 | 2012-11-28 | 北京大学 | 一种MapReduce系统中的数据采样和划分方法 |
CN102937918A (zh) * | 2012-10-16 | 2013-02-20 | 西安交通大学 | 一种hdfs运行时数据块平衡方法 |
CN104331439A (zh) * | 2014-10-24 | 2015-02-04 | 北京东方国信科技股份有限公司 | 基于hdfs的迭代式回溯算法的负载均衡与计算本地化方法 |
Non-Patent Citations (2)
Title |
---|
"Hadoop平台中一种Reduce负载均衡贪心算法";刘朵 等;《计算机应用研究》;20160930;第33卷(第9期);2656-2659 * |
"基于Maxdiff 直方图的MapReduce 负载均衡研究";陶永才 等;《小型微型计算机系统》;20160331;第37卷(第3期);417-421 * |
Also Published As
Publication number | Publication date |
---|---|
CN107122242A (zh) | 2017-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7644142B2 (en) | Methods and apparatus to perform process placement for distributed applications | |
US8126911B2 (en) | System and method for content-based partitioning and mining | |
US8726290B2 (en) | System and/or method for balancing allocation of data among reduce processes by reallocation | |
WO2015196911A1 (zh) | 数据挖掘方法和节点 | |
US10565022B2 (en) | Systems for parallel processing of datasets with dynamic skew compensation | |
CN101334743B (zh) | 基于配置文件的并行程序自动映射实现方法 | |
WO2017118335A1 (zh) | 一种映射方法和设备 | |
CN112000467A (zh) | 一种数据倾斜处理方法、装置、终端设备及存储介质 | |
CN112015366B (zh) | 数据排序方法、数据排序装置及数据库系统 | |
CN107122242B (zh) | 一种有效提升分布式运算性能的大数据均衡切片方法 | |
US20200159594A1 (en) | Systems and methods for dynamic partitioning in distributed environments | |
CN107506388A (zh) | 一种面向Spark并行计算框架的迭代式数据均衡优化方法 | |
CN112232010B (zh) | 可编程逻辑器件分组方法和装置 | |
US7647592B2 (en) | Methods and systems for assigning objects to processing units | |
CN117971468A (zh) | 一种可逐步扩展的集群分片均衡方法、装置及记录介质 | |
US20030208737A1 (en) | Method and system for placing logic nodes based on an estimated wiring congestion | |
CN113806353A (zh) | 实现时序特征抽取的方法及装置 | |
KR20160100224A (ko) | 오디오 핑거프린트 데이터베이스 구축 및 오디오 핑거프린트 검색 방법 및 장치 | |
CN113255265B (zh) | 分割及验证方法、装置、电子设备、存储介质 | |
CN111984652B (zh) | 一种位图数据中空闲块的查找方法及相关组件 | |
US9749183B2 (en) | System and method for determining optimal combinations of computer servers | |
WO2015143708A1 (zh) | 后缀数组的构造方法及装置 | |
CN106096022B (zh) | 多域网包分类规则的划分方法及装置 | |
CN114265556B (zh) | 一种数据存储方法及装置 | |
US20170147402A1 (en) | Optimized task partitioning through data mining |
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 |