CN106126343A - 基于增量式分区策略的MapReduce数据均衡方法 - Google Patents

基于增量式分区策略的MapReduce数据均衡方法 Download PDF

Info

Publication number
CN106126343A
CN106126343A CN201610480210.4A CN201610480210A CN106126343A CN 106126343 A CN106126343 A CN 106126343A CN 201610480210 A CN201610480210 A CN 201610480210A CN 106126343 A CN106126343 A CN 106126343A
Authority
CN
China
Prior art keywords
partition
logical micro
decision point
reducer
micro
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.)
Granted
Application number
CN201610480210.4A
Other languages
English (en)
Other versions
CN106126343B (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.)
Northwestern Polytechnical University
Original Assignee
Northwestern Polytechnical University
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 Northwestern Polytechnical University filed Critical Northwestern Polytechnical University
Priority to CN201610480210.4A priority Critical patent/CN106126343B/zh
Publication of CN106126343A publication Critical patent/CN106126343A/zh
Application granted granted Critical
Publication of CN106126343B publication Critical patent/CN106126343B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提出了基于增量式分区策略的MapReduce数据均衡方法。具体为首先在Map端产生多于Reducer个数的微分区,微分区的负载统计被持续收集并且发送给决策者,在每一个决策点,优化的马尔科夫模型在未被分配的微分区中自动进行分区选择,然后利用分配算法将选中的微分区分配到各Reducer上;依照此方法,经过多次分区选择和分配,最终在执行Reduce函数前,将所有微分区分配到Reduce端,该方法使得数据划分更加均衡,有效避免了数据倾斜所带来的负载不均衡问题。

Description

基于增量式分区策略的MapReduce数据均衡方法
技术领域
本发明属于MapReduce编程领域,具体涉及一种基于增量式分区策略的MapReduce数据均衡方法。
背景技术
MapReduce编程模型包含两个阶段,即Map阶段和Reduce阶段。在Map阶段,每一个Mapper从本地HDFS上加载splits进行处理,输出为<key,value>对形式,产生的数据用hash函数分配到不同的partition,每一个partition对应着一个Reducer,一旦Map完成,Hadoop开始将数据shuffle到对应的Reducer,在一般情况下,hash方法能够确保每一个Reducer能够接受到均衡数量的partition,然而,由于partition存在数据倾斜的可能,所以不能保证各个Reducer的负载均衡。
发明内容
要解决的技术问题
为了有效避免数据倾斜造成的负载不均衡这一问题,本发明提出一种基于增量式分区策略的MapReduce数据均衡方法,提出一种更高效的方法有着巨大的现实需求。
技术方案
一种基于增量式分区策略的MapReduce数据均衡方法,其特征在于步骤如下:
步骤1:确定一系列的决策点,在每一个决策点t使用优化的马尔科夫决策模型(S,A,P,Rat(st,st+1),γ)对在Map端产生的N个微分区进行自动分区,其中N>M,M为Reducer个数;
决策点的确定:以第一个Mapper完成时刻为第一个决策点,运行到最后一个Mapper的α时刻为最后一个决策点,中间的决策点采用等分原则;
所述的马尔科夫决策模型(S,A,P,Rat(st,st+1),γ):S是状态的有限集,A是行动的有限集,行动是自动选择前k个微分区,P是状态转换概率的集合,γ是代表现在和将来报酬拥有不同的重要性的折扣因素,为报酬函数;其中W是微分区的总量,是在决策点t已分配的微分区的总量,N是微分区的总个数,是在决策点t以后未分配的微分区的总个数;
步骤2:采用LPT算法对步骤1中的分区进行分配,将并行代价的目标函数的作为LPT算法的输出:
所述的并行代价的目标函数:
min m a x j { L j f }
s . t . ( 1 ) - - - &ForAll; 1 &le; i &le; h , &Sigma; 1 &le; j &le; M x i j = 1 ( 2 ) - - - &ForAll; 1 &le; i &le; M , L j = L j + &Sigma; i ( x i j &CenterDot; e i c )
其中,Lj为给第j个Reducer分配的初始负载,为第j个Reducer被分配微分区后的负载,h为在决策点t之前未被分配的微分区总个数,xij为Pu中的微分区到Reducer的映射,Pu为在决策点t之前未被分配的微分区集合,如果第i个微分区被分配到第j个Reducer则xij=1,否则xij=0;指在Pu中第i个微分区预估的数量,指被分配到第j个Reducer上的微分区的总量。
90%≤α≤100%。
有益效果
本发明提出的一种基于增量式分区策略的MapReduce数据均衡方法,具体为首先在Map端产生多于Reducer个数的微分区,微分区的负载统计被持续收集并且发送给决策者,在每一个决策点,优化的马尔科夫模型在未被分配的微分区中自动进行分区选择,然后利用分配算法将选中的微分区分配到各Reducer上;依照此方法,经过多次分区选择和分配,最终在执行Reduce函数前,将所有微分区分配到Reduce端,该方法使得数据划分更加均衡,有效避免了数据倾斜所带来的负载不均衡问题。
附图说明
图1增量式分区的处理流程图
图2增量式分区在Hadoop系统上的实现图
具体实施方式
现结合实施例、附图对本发明作进一步描述:
本发明提出了基于增量式分区策略的MapReduce数据均衡方法,增量式分区的处理流程见图1,解决其技术问题所采用的技术方案包括以下内容:
1.并行代价目标函数
Hadoop负载均衡的最终目标是优化并行时的表现,为了实现这一目标,增量式分区策略需要考虑数据Shuffle和Reducer之间负载均衡的代价,假设Map端产生N个微分区,Reducer个数为M个,决策点数量为K个,可以表示为{T1,...,TK}。增量式分区策略包括一系列的行动。在每一个决策点选择出一些未分配的微分区而后再分配给相应的Reducer,最终,N个微分区将全部分配到Reducer端并且每一个微分区只被分配一次。并行代价的目标函数为:
min m a x j ( f 1 ( R j ) + &Sigma; i ( a i j &times; f 2 ( S i ) ) ) - - - ( 1 )
Si表示第i个微分区的大小,aij表示微分区到Reducer的映射,aij=1表示第i个微分区被分配到第j个Reducer,否则aij=0,Rj表示第j个Reducer,f2()表示微分区的计算代价。在本发明中,我们用微分区的大小来表示其计算代价。
为了减小并行代价,本发明采取如下的分区选择和分区分配方法。
2.分区选择
给定一系列的决策点和一个微分区集合P,分区选择就是在每一个决策点从P中选择一个子集,用以准备将其中的微分区分配到对应的Reducer。本发明基于马尔科夫决策模型提出一种优化模型用以实现自动分区选择。
标准的马尔科夫决策模型是一个五元组(S,A,P,R,γ),S是状态的有限集,A是行动的有限集,P是状态转换概率的集合,R是状态转换报酬,γ是代表现在和将来报酬拥有不同的重要性的折扣因素。
(1)报酬函数
选择一个微分区进而将其分配后可以使其立即开始Shuffle,但是也减小了以后均衡调整的机会,因此,我们综合考虑两个冲突的因素后定义如下的报酬函数:
R a t ( s t , s t + 1 ) = W c t W &CenterDot; N u t N - - - ( 2 )
W是微分区的总量,是在决策点t已分配的微分区的总量,N是微分区的总个数,是在决策点t以后未分配的微分区的总个数。在等式(2)中,第一部分对应着在决策点t已分配的微分区在所有微分区中占的数量比,它用来衡量能否尽早Shuffle;第二部分代表在决策点t后未分配的微分区在所有微分区中占的个数比,它用来衡量还可以负载均衡的机会。在决策点t已分配的微分区更多将导致增大减小。值得指出的是在某一决策点无论是没有微分区被分配还是全部的微分区被分配都将导致最小报酬是0。
(2)决策点的确定
决策点的确定问题即为微分区的选择与分配时机确定问题,微分区分配过早会导致可以负载均衡的机会更小,分配过晚会延迟Shuffle时间。本发明定义第一个Mapper完成时刻为第一个决策点,用户可定义一个变量α(90%≤α≤100%),定义运行到最后一个Mapper的α时刻为最后一个决策点,中间的决策点采用等分原则。如此既能增大负载均衡机会又减少了Shuffle时间的延迟。
(3)优化的马尔科夫决策模型
优化的马尔科夫决策模型中在每一个决策点的行动是自动选择前个k微分区,如此可获得最大报酬,以下是证明过程:
假设在一个最佳的解决方法SL1中,在决策点ti的行动是选择了一个微分区集合Pti,其中Pti不是最大的,在决策点ti有一个未分配的微分区p,p的大小比在Pti中的微分区p'大,假设在SL1中p'在决策点tj被选择,解决方法SL2和SL1除了在决策点ti选择了p'和在决策点tj选择了p之外行动都是相同的。通过我们定义的报酬函数我们可以得到:
R i , j ( SL 1 ) R i , j ( SL 2 ) = W c 1 i &CenterDot; N u 1 i + Y j - i &CenterDot; W c 1 j &CenterDot; N u 1 j W c 2 i &CenterDot; N u 2 i + Y j - i &CenterDot; W c 2 j &CenterDot; N u 2 j - - - ( 3 )
Ri,j(SL1)指在解决方法SL1中在决策点ti和tj实现的总报酬,指在解决方法SL1中在决策点ti已分配的微分区的总量,指在解决方法SL1中在决策点ti后还未分配的微分区的个数,其中还可以得出因此Ri,j(SL1)<Ri,j(SL2)。因为在除了ti和tj之外的其他任意一个决策点,SL1和SL2实现了相同的报酬,因此SL2的总报酬大于SL1
因此,在每一个决策点自动选择前k个微分区可获得最大报酬。
3.分区分配
分区分配的主要目标是确保各个Reducer计算的负载均衡。因此,我们可以将在决策点t分区分配的问题表示为装箱最优化问题。假设给第i个Reducer分配的初始负载为Li,在决策点t之前未被分配的微分区总个数为h,用集合表示为Pu,使用变量xij去指代Pu中的微分区到Reducer的映射,如果第i个微分区被分配到第j个Reducer则xij=1,否则xij=0。则最优化问题可表示为
min m a x j { L j f } - - - ( 4 )
s . t . ( 1 ) - - - &ForAll; 1 &le; i &le; h , &Sigma; 1 &le; j &le; M x i j = 1 ( 2 ) - - - &ForAll; 1 &le; i &le; M , L j = L j + &Sigma; i ( x i j &CenterDot; e i c )
指在Pu中第i个微分区预估的数量,指被分配到第j个Reducer上的微分区的总量。我们用传统的LPT(Largest Processing Time first)算法来实现分区分配,LPT算法的输出即为并行代价目标函数的解,如此我们可以实现并行代价的最小化。
该方法在Hadoop系统上的具体实现见附图2。以下为在Hadoop上实现该方法的具体步骤:
1.Counter模块
在各个Mapper的运行线程中加入Counter模块,并将Counter的统计结果放入Table_LocalCounter中。微分区的个数决定了Table_LocalCounter的大小,并且在同一个任务中微分区的个数是不变的,因此可以用一维数组来实现,并且将Table_LocalCounter驻留在内存中。
2.Decision Model模块
在JobTracker类中新添Decision Model模块,以添加微分区的选择和分配功能。所有任务的Table_LocalCounter汇总后存入Table_Global Counter,在结构体Plan_Global Assign中添加分区分配计划。每次决策完成后,需要将Plan_Global Assign的更新增加到下次的Heartbeat通信中,如此Reducer节点可以实时的接收到分配计划。
3.Add NewPartition模块
Reducr在对Heartbeat解析以后,可将属于自己的分区信息获取到,对于原MapReduce架构,只需要各Reducer在MapOutputLocation中添加自己的信息,并开始等待Mapper的完成。在增量式分区策略中,由于Reducer的输入来源是多个分区,因此,需要增加Add NewPartition模块,将分区信息渐进地增加到LocalPartition中,然后进行微分区信息和分区的存储路径的转换并存放到MapOutputLocation中,该模块不仅可以实现Reducer初始化时的多分区分配,而且可以完成在Reducer读取数据过程中的增量式分配,从而实现对Reducer的渐进式分配方法。

Claims (2)

1.一种基于增量式分区策略的MapReduce数据均衡方法,其特征在于步骤如下:
步骤1:确定一系列的决策点,在每一个决策点t使用优化的马尔科夫决策模型(S,A,P,Rat(st,st+1),γ)对在Map端产生的N个微分区进行自动分区,其中N>M,M为Reducer个数;
决策点的确定:以第一个Mapper完成时刻为第一个决策点,运行到最后一个Mapper的α时刻为最后一个决策点,中间的决策点采用等分原则;
所述的马尔科夫决策模型(S,A,P,Rat(st,st+1),γ):S是状态的有限集,A是行动的有限集,行动是自动选择前k个微分区,P是状态转换概率的集合,γ是代表现在和将来报酬拥有不同的重要性的折扣因素,为报酬函数;其中W是微分区的总量,是在决策点t已分配的微分区的总量,N是微分区的总个数,是在决策点t以后未分配的微分区的总个数;
步骤2:采用LPT算法对步骤1中的分区进行分配,将并行代价的目标函数的作为LPT算法的输出:
所述的并行代价的目标函数:
min m a x j { L j f }
s . t . ( 1 ) - - - &ForAll; 1 &le; i &le; h , &Sigma; 1 &le; j &le; M x i j = 1 ( 2 ) - - - &ForAll; 1 &le; i &le; M , L j = L j + &Sigma; i ( x i j &CenterDot; e i c )
其中,Lj为给第j个Reducer分配的初始负载,为第j个Reducer被分配微分区后的负载,h为在决策点t之前未被分配的微分区总个数,xij为Pu中的微分区到Reducer的映射,Pu为在决策点t之前未被分配的微分区集合,如果第i个微分区被分配到第j个Reducer则xij=1,否则xij=0;指在Pu中第i个微分区预估的数量,指被分配到第j个Reducer上的微分区的总量。
2.根据权利要求1所述的一种基于增量式分区策略的MapReduce数据均衡方法,其特征在于90%≤α≤100%。
CN201610480210.4A 2016-06-27 2016-06-27 基于增量式分区策略的MapReduce数据均衡方法 Expired - Fee Related CN106126343B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610480210.4A CN106126343B (zh) 2016-06-27 2016-06-27 基于增量式分区策略的MapReduce数据均衡方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610480210.4A CN106126343B (zh) 2016-06-27 2016-06-27 基于增量式分区策略的MapReduce数据均衡方法

Publications (2)

Publication Number Publication Date
CN106126343A true CN106126343A (zh) 2016-11-16
CN106126343B CN106126343B (zh) 2020-04-03

Family

ID=57267256

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610480210.4A Expired - Fee Related CN106126343B (zh) 2016-06-27 2016-06-27 基于增量式分区策略的MapReduce数据均衡方法

Country Status (1)

Country Link
CN (1) CN106126343B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107506388A (zh) * 2017-07-27 2017-12-22 浙江工业大学 一种面向Spark并行计算框架的迭代式数据均衡优化方法
CN109359679A (zh) * 2018-10-10 2019-02-19 洪月华 适用于广域网的分布式交通大数据并行聚类方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104239529A (zh) * 2014-09-19 2014-12-24 浪潮(北京)电子信息产业有限公司 防止Hive数据倾斜的方法和装置
US20150220529A1 (en) * 2014-02-06 2015-08-06 International Business Machines Corporation Split elimination in mapreduce systems
CN105095413A (zh) * 2015-07-09 2015-11-25 北京京东尚科信息技术有限公司 一种解决数据倾斜的方法及装置
CN105446896A (zh) * 2014-08-29 2016-03-30 国际商业机器公司 映射化简应用的缓存管理方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150220529A1 (en) * 2014-02-06 2015-08-06 International Business Machines Corporation Split elimination in mapreduce systems
CN105446896A (zh) * 2014-08-29 2016-03-30 国际商业机器公司 映射化简应用的缓存管理方法和装置
CN104239529A (zh) * 2014-09-19 2014-12-24 浪潮(北京)电子信息产业有限公司 防止Hive数据倾斜的方法和装置
CN105095413A (zh) * 2015-07-09 2015-11-25 北京京东尚科信息技术有限公司 一种解决数据倾斜的方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JERRYLEAD: "增强学习", 《CNBLOG》 *
王卓 等: "基于增量式分区策略的MapReduce数据均衡方法", 《计算机学报》 *
金健 等: "数据倾斜情况下基于MapReduce模型的连接算法研究", 《计算机与现代化》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107506388A (zh) * 2017-07-27 2017-12-22 浙江工业大学 一种面向Spark并行计算框架的迭代式数据均衡优化方法
CN109359679A (zh) * 2018-10-10 2019-02-19 洪月华 适用于广域网的分布式交通大数据并行聚类方法

Also Published As

Publication number Publication date
CN106126343B (zh) 2020-04-03

Similar Documents

Publication Publication Date Title
CN102541858B (zh) 基于映射和规约的数据均衡性处理方法、装置及系统
CN105159762A (zh) 基于贪心策略的启发式云计算任务调度方法
CN103235743B (zh) 一种基于分解和最优解跟随策略的多目标测试任务调度方法
CN104572297A (zh) 一种基于遗传算法的Hadoop作业调度方法
CN107609141A (zh) 一种对大规模可再生能源数据进行快速概率建模方法
CN106371924B (zh) 一种最小化MapReduce集群能耗的任务调度方法
CN111339027A (zh) 可重构的人工智能核心与异构多核芯片的自动设计方法
CN104077634B (zh) 基于多目标优化的主动‑反应式动态项目调度方法
CN104104621A (zh) 一种基于非线性降维的虚拟网络资源动态自适应调节方法
CN102982389A (zh) 使用基于MapReduce的蚁群优化技术求解组合优化问题的方法
Wang et al. Parallel k-pso based on mapreduce
CN106126343A (zh) 基于增量式分区策略的MapReduce数据均衡方法
CN116050540A (zh) 一种基于联合双维度用户调度的自适应联邦边缘学习方法
CN107360031A (zh) 一种基于优化开销收益比的虚拟网络映射方法
CN105005503A (zh) 基于元胞自动机的云计算负载均衡任务调度方法
CN117785490B (zh) 一种图神经网络模型的训练架构、方法、系统及服务器
CN104618480A (zh) 基于网络链路利用率驱动的云系统资源分配方法
CN103577899B (zh) 一种基于可靠性预测与QoS相结合的服务组合方法
CN103577161A (zh) 一种面向大数据的数据频度并行处理方法
CN106156142A (zh) 一种文本聚类的处理方法、服务器及系统
CN113672684B (zh) 一种面向非独立同分布数据的分层用户训练管理系统及方法
CN111414961A (zh) 一种基于任务并行的细粒度分布式深度森林训练方法
CN106708624A (zh) 一种多工作域计算资源的自适应调整方法
Khan Efficient Partitioning of Large Databases without Query Statistics.
CN103514042B (zh) 一种双调归并排序调优方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into 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

Granted publication date: 20200403