CN103701900B - 基于异构集群的数据分布方法 - Google Patents

基于异构集群的数据分布方法 Download PDF

Info

Publication number
CN103701900B
CN103701900B CN201310733434.8A CN201310733434A CN103701900B CN 103701900 B CN103701900 B CN 103701900B CN 201310733434 A CN201310733434 A CN 201310733434A CN 103701900 B CN103701900 B CN 103701900B
Authority
CN
China
Prior art keywords
node
data
data block
device node
task
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
Application number
CN201310733434.8A
Other languages
English (en)
Other versions
CN103701900A (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.)
Tsinghua University
Original Assignee
Tsinghua 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 Tsinghua University filed Critical Tsinghua University
Priority to CN201310733434.8A priority Critical patent/CN103701900B/zh
Publication of CN103701900A publication Critical patent/CN103701900A/zh
Application granted granted Critical
Publication of CN103701900B publication Critical patent/CN103701900B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提供一种基于异构集群的数据分布方法,应用于多个相互通信的设备节点,该方法包括:读取各设备节点的数据块读取信息并确定所需的任务数据;其中,数据块读取信息包括执行本地任务时本地计算的数据块、被其他设备节点读取的数据块和从其他设备节点读入的数据块;根据读取的数据块读取信息预测各设备节点的计算能力;根据预测的结果将确定的任务数据分布为各设备节点的本地任务。本发明通过利用底层任务数据的分布指导上层任务的调度,合理分布数据,使设备节点的计算能力与分布数据匹配,并且本发明还将确定的任务数据分布为各设备节点的本地任务,解决了由于远程任务以及数据移动引起的网络开销、恶化网络资源争抢的问题。

Description

基于异构集群的数据分布方法
技术领域
本发明涉及分布式计算技术领域,尤其是一种基于异构集群的数据分布方法。
背景技术
近来的一些研究报告显示,下一代的数据中心由于节能、单位价格性能提供、不同性能价格等原因,将具有很大的异构性,在数据中心中,除了这些原因,还有一个很重要的原因引起异构性:一个数据中心通常会每隔一段时间会添加一些新的服务器以扩充其计算能力,通常来说相隔一两年添加的服务器就会有好几代的硬件差异。同时,数据中心通常是多任务共享的,同时运行的不同任务之间的互相影响也会导致各节点的性能差异性。
在异构集群的现有技术中,为了能高速地处理异构集群中的数据、有效的利用所有节点的计算资源,自由的资源均衡器会在快速节点执行完本地的任何时如果慢速节点还有未执行的任务,则会将这些任务从慢速节点调度到快速节点,同时这些任务对应的数据也会从慢速节点移动到快速节点,但由于移动数据比移动计算的开销大,所以这些数据移动会占用很大的网络资源。在异构集群的现有技术中,通常都是先执行完本地的任务后,如果还有空闲才会执行远程任务,这样导致所有的远程任务都集中在数据处理的末尾阶段,而这一阶段恰好和另一个网络资源密集型的shuffle阶段相叠加,更加加重了网络环境的压力,恶化网络资源的争抢。由于同构节点的性能相似,自然会负载比较均衡,所以很少发生这种任务的远程移动。具体数据我们可通过表格1展示。表格1显示了分别在异构集群和同构集群中,高性能和低性能节点的数据处理位置。我们可以看出,在同构集群中,由于本身固有的均衡性,几乎所有的数据块都是在本地处理;而在异构环境中,低性能节点的数据块有33.5%被读出执行,而在高性能节点中,计算的数据块中几乎有一半是从别的节点读入的。正是这些数据的移动,引起了很大的网络开销,更加恶化了网络环境,同时,对于慢速节点,由于其还需要发送数据到快速节点,这样,更加拖慢了其执行本地任务的进程。
表格1数据块处理位置——异构集群vs.同构集群
发明内容
(一)要解决的技术问题
本发明的目的是,提供一种基于异构集群的数据分布方法,利用底层任务数据的分布指导上层任务的调度,合理分布数据,避免设备节点的计算能力与分布数据不匹配的问题。
(二)技术方案
为解决上述技术问题,本发明提供一种基于异构集群的数据分布方法,应用于多个相互通信的设备节点,包括:
读取各设备节点的数据块读取信息并确定所需的任务数据;其中,所述数据块读取信息包括执行本地任务时本地计算的数据块、被其他设备节点读取的数据块和从其他设备节点读入的数据块;
根据读取的数据块读取信息预测各设备节点的计算能力信息;
根据预测的结果将确定的任务数据分布为各设备节点的本地任务。
可选的,所述根据读取的数据块读取信息预测各设备节点的计算能力包括:
根据读取的数据块读取信息和相应的设备节点构建Markov模型;
根据得到的Markov模型预测过负荷节点数目α(t)和各设备节点的计算能力。
可选的,所述过负荷节点数目α(t)通过以下公式预测:
β ( t ) ~ B ( α ( t ) , p off ) γ ( t ) ~ B ( m - α ( t ) , p on ) ⇔ Pr { β ( t ) = x } = ( α ( t ) x ) p o ff x ( 1 - p off ) α ( t ) - x Pr { γ ( t ) = x } = ( m - α ( t ) x ) p on x ( 1 - p on ) m - α ( t ) - x
其中,β(t)表示从ON切换到OFF状态的设备节点数目,γ(t)表示从OFF切到ON状态的设备节点数目,Pr{β(t)=x}、Pr{γ(t)=x}分别表示从在t时刻ON切换到OFF和从OFF切换到ON状态节点数为x个时的概率值。
可选的,所述各设备节点的计算能力通过以下公式预测:
φ i ( t ) = α κ ( t ) τ ( t ) + b μ ( t ) κ ( t ) - c λ ( t ) κ ( t )
τ ( t ) = Σ i = 1 m ( κ ( t ) + λ ( t ) )
εi(t)=map_to_rank(φi(t))
其中,κ(t)表示设备节点本地执行任务时本地计算的数据块,λ(t)表示被其他设备节点读取的数据块,μ(t)表示从其他设备节点读入的数据块,a、b、c分别表示不同类型数据块的权重,i、t表示时刻,φi(t)、τ(t)均为中间变量。
可选的,所述根据预测的结果将确定的任务数据分布为各设备节点的本地任务包括:
按照约定块大小对确定的任务数据进行分块处理,得到多个数据块;
根据预测的结果将所述多个数据块分布给相应设备节点。
可选的,所述得到多个数据块之后还包括:
对所述多个数据块中的每个数据块进行至少一次复制操作,得到所述每个数据块的至少一块副本;
根据预测的结果确定所述每个数据块的副本分布设备节点,并将所述每个数据块的副本分布给相应的副本分布设备节点。
可选的,对所述多个数据块中的每个数据块进行三次复制操作,得到所述每个数据块的三块副本。
可选的,所述根据预测的结果确定所述每个数据块的副本分布设备节点包括:
根据预测的结果对所有设备节点的计算能力进行排序,将计算能力最小的α(t)个设备节点加入到排除列表Listexcluded
对于第一副本,判断当前写入数据的设备节点是否为数据节点,若是,并且该节点不在所述Listexcluded中,则该节点被确定为第一副本分布设备节点;否则判定当前设备节点所在的机架上不在所述Listexcluded中的设备节点为第一候选节点,根据计算能力从所述第一候选节点中选择一个设备节点作为第一副本分布设备节点;
对于第二副本,选取与第一副本分布设备节点不在同一机架且不在所述Listecluded中的设备节点为第二候选节点,并根据计算能力从所述第二候选节点中选择一个设备节点作为第二副本分布设备节点;
对于第三副本,选取与第二副本分布设备节点不在同一机架且不在所述Listecluded中的设备节点为第三候选节点,并根据计算能力从所述第三候选节点中选择一个设备节点作为第三副本分布设备节点。
可选的,所述根据计算能力从第一候选节点中选择第一副本分布设备节点的方法为:
根据所有第一候选节点及相应设备节点的计算能力构建虚拟环,其中,所述第一候选节点中的设备节点分布在所述虚拟环上,当前设备节点和下一个设备节点之间的区域对应于当前设备节点的计算能力;
对第一副本的ID进行Hash算法,得到相应的Hash值,根据所述Hash值顺着所述虚拟环寻找大于当前设备节点值的第一个设备节点;
在所述Hash值大于当前设备节点值的情况下将当前设备节点设定为第一副本分布设备节点。
可选的,判断是否到达分布周期;若是,则读取各设备节点的数据块读取信息;若否,则继续判断是否到达分布周期。
(三)有益效果
区别于背景技术,本发明通过利用底层任务数据的分布指导上层任务的调度,合理分布数据,避免设备节点的计算能力与分布数据不匹配的问题。并且本发明还将确定的任务数据分布为各设备节点的本地任务,所有的数据都在本地执行,解决了由于远程任务以及数据移动引起的网络开销、恶化网络资源争抢和问题。
附图说明
图1是实施例一基于异构集群的数据分布方法的流程示意图之一;
图2是实施例一基于异构集群的数据分布方法的流程示意图之二;
图3是实施例一基于异构集群的数据分布方法的流程示意图之三;
图4是实施例一确定每个数据块的副本分布设备节点的流程图;
图5是实施例二异构集群的数据分布方法的流程示意图;
图6是本发明两状态Markov链转移示意图;
图7是本发明处于ON状态的设备节点数量构成具有m+1个状态的Markov链;
图8是本发明设备节点计算能力级另构成了Max+1个状态的Markov链;
图9是本发明从第一/第二/第三候选节点中根据计算能力选择副本分布设备节点时组成虚拟环的示意图;
图10是实施例二AAOC与原始Hadoop在不同测试用例下的数据块传输量百分比的比较图;
图11是AAOC与原始Hadoop在不同测试用例下Map阶段、Reduce阶段以及总体执行时间的比较图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
从背景技术分析中我们可以知道:异构环境中性能低下的原因在任务层面看是由于大量远程任务引起的网络开销引起的,而从底层存储的角度看,引起异构集群环境中性能低下的原因就是大量的数据块被远程任务读取,引起大量的网络开销,竞争网络资源从而拖慢整个任务的执行。因此在异构集群中,性能低下的根本原因就是远程任务的额外数据传输,数据的分布量和节点计算能力不匹配。为了解决这一问题,我们就应该避免远程任务以及数据移动,换句话说,从存储的角度看,就是所有的数据都在本地执行。因此,本发明的核心思想是:针对计算节点也是存储节点,通过底层数据分布决定上层任务分布,并通过计算能力寻找相应存储节点的特点。
实施例一
请结合参阅图1-4和图7-9,本实施例提供一种基于异构集群的数据分布方法,其应用于多个相互通信的设备节点,在本实施例中,设备节点包括主控节点和从控节点,一般情况下,主控节点只有一台,其他设备节点均为从控节点。
请参阅图1,首先,各设备节点定时将自身的数据块读取信息传送到主控节点的数据库中。在本实施例中,数据块读取信息包括三种:执行本地任务时本地计算的数据块、被其他设备节点读取的数据块和从其他设备节点读入的数据块。
本方法起始于步骤101,主控节点判断是否到达任务的分布周期,并在到达的情况下从其数据库中读取各设备节点的数据块读取信息并根据读取的数据块读取信息确定所需的任务数据。在这里,所需的任务数据即为一个分布周期内各设备节点上传的数据块读取信息。
在步骤102,主控节点根据读取的数据块读取信息预测各设备节点的计算能力信息。
在步骤103,主控节点根据预测的结果将确定的任务数据分布为各设备节点的本地任务。各设备节点接收到各自的任务数据后,将该任务数据对应的数据块存储到自身的数据库,并计算执行相应的任务。
通过上述过程我们可知:本实施例通过主控节点感知预测各设备节点的计算能力,根据历史数据预测下一阶段节点计算能力,以预测的节点计算能力为基准,决定新任务的数据分布,利用底层任务数据的分布指导上层任务的调度,合理分布数据,避免设备节点的计算能力与分布数据不匹配的问题,解决了异构集群中计算效率低下的问题。并且本实施例还将确定的任务数据分布为各设备节点的本地任务,所有的数据都在本地执行,避免了由于远程任务以及数据移动引起的网络开销、恶化网络资源争抢和问题。
请参阅图2,本实施例中步骤102通过步骤1021和1022完成。具体的,在步骤1021,根据读取的数据块读取信息和相应的设备节点构建Markov模型,即通过两状态Markov模型来描述某设备节点计算能力。结合图6,图6表示pon和poff表示某一设备节点两状态之间的转移概率,其中ON表示过多的数据块被远程执行,OFF状态表示数据块本地执行。
在本实施例中,设备节点的计算能力包括:过负荷节点数目α(t)和各节点计算能力。即在步骤1022,根据得到的Markov模型预测过负荷节点数目α(t)和各设备节点的计算能力。具体的,对于过负荷节点数目α(t),通过以下公式预测:
β ( t ) ~ B ( α ( t ) , p off ) γ ( t ) ~ B ( m - α ( t ) , p on ) ⇔ Pr { β ( t ) = x } = ( α ( t ) x ) p o ff x ( 1 - p off ) α ( t ) - x Pr { γ ( t ) = x } = ( m - α ( t ) x ) p on x ( 1 - p on ) m - α ( t ) - x
其中,β(t)表示从ON切换到OFF状态的设备节点数目,γ(t)表示从OFF切到ON状态的设备节点数目。其中,Pr{β(t)=x}、Pr{γ(t)=x}分别表示从在t时刻ON切换到OFF和从OFF切换到ON状态节点数为x个时的概率值。
通过上述描述,可得到下一状态的过负荷节点数目:
α(t+1)=α(t)-β(t)+γ(t)
对于过负荷节点数目α(t),我们还可以构建Markov链,如图7所示,其一步状态转移矩阵中的概率值pij可由以下公式(6)-(9)得出:
p ij = Pr { α ( t + 1 ) = j | α ( t ) = i } - - - ( 6 ) = Σ r = 0 i Pr { β ( t ) = r , γ ( t ) = j - i + r | α ( t ) = i } - - - ( 7 ) = Σ r = 0 i Pr { β ( t ) = r | α ( t ) = i } Pr { γ ( t ) = j - i + r | α ( t ) = i } ( 8 ) = Σ r = 0 i ( i r ) p off r ( 1 - p off ) i - r ( m - i j - i + r ) p on j - i + r ( 1 - p on ) m - j - r ( 9 )
对于各设备节点的计算能力εi(t),通过以下公式预测:
φ i ( t ) = α κ ( t ) τ ( t ) + b μ ( t ) κ ( t ) - c λ ( t ) κ ( t )
τ ( t ) = Σ i = 1 m ( κ ( t ) + λ ( t ) )
εi(t)=map_to_rank(φi(t))
其中,κ(t)表示设备节点本地执行任务时本地计算的数据块,λ(t)表示被其他设备节点读取的数据块,μ(t)表示从其他设备节点读入的数据块,a、b、c分别表示不同类型数据块的权重,i、t表示时刻,φi(t)、τ(t)均为中间变量。具体的,a为本地执行任务时本地计算的数据块的权重,b为被其他设备节点读取的数据块的权重,c为从其他设备节点读入的数据块的权重。对于某一设备节点的计算能力,也可以构建Max+1个状态的Markov链,如图8所示。
本实施例中步骤103通过步骤1031和1032完成。具体的,在步骤1031,按照约定块大小对确定的任务数据进行分块处理,得到多个数据块。
在步骤1032,根据预测的结果将所述多个数据块分布给相应设备节点。其分布方法具体为:判断当前往主控节点写入数据的设备节点是否为存储节点,即是否为从控节点;若是,并且该节点不在所述Listexcluded中,则该节点被确定为相应分布分布设备节点;否则,即在当前写入数据的设备节点不为存储节点,或当前设备节点为数据节点、但该节点在Listexcluded中的情况下,判定当前设备节点所在的机架上不在所述Listexcluded中的设备节点为候选节点,根据计算能力从所述候选节点中选择一个设备节点作为相应分布设备节点。
请参阅图3,在本实施例中,为了保证数据的高可用性,每个数据块采用副本机制,在步骤1031所述得到多个数据块之后还对得到的数据块进行复制。即在步骤1033,对所述多个数据块中的每个数据块进行至少一次复制操作,得到所述每个数据块的至少一块副本。在本实施例中,对所述多个数据块中的每个数据块进行三次复制操作,得到所述每个数据块的三块副本。
在步骤1034,根据预测的结果确定所述每个数据块的副本分布设备节点,并将所述每个数据块的副本分布给相应的副本分布设备节点。请参阅图4,步骤1034中“所述根据预测的结果确定所述每个数据块的副本分布设备节点”通过步骤10341-10343完成。
首先,根据预测的结果对所有设备节点的计算能力进行升序或降序排序,将计算能力最小的α(t)个设备节点加入到排除列表Listexcluded
在步骤10341,对于第一副本,判断当前往主控节点写入数据的设备节点是否为存储节点,即是否为从控节点;若是,并且该节点不在所述Listexcluded中,则该节点被确定为第一副本分布设备节点;否则,即在当前写入数据的设备节点不为存储节点,或当前设备节点为数据节点、但该节点在Listexcluded中的情况下,判定当前设备节点所在的机架上不在所述Listexcluded中的设备节点为第一候选节点,根据计算能力从所述第一候选节点中选择一个设备节点作为第一副本分布设备节点。
在步骤10342,对于第二副本,选取与第一副本分布设备节点不在同一机架且不在所述Listecluded中的设备节点为第二候选节点,并根据计算能力从所述第二候选节点中选择一个设备节点作为第二副本分布设备节点.
在步骤10343,对于第三副本,选取与第二副本分布设备节点不在同一机架且不在所述Listecluded中的设备节点为第三候选节点,并根据计算能力从所述第三候选节点中选择一个设备节点作为第三副本分布设备节点。
在本实施例中,还可以对所述多个数据块中的每个数据块进行大于三次复制操作,对于第一/第二/第三副本分布设备节点的确定过程,与前述方法一致,对于剩余的副本,其副本分布设备节点的确定方法如下:选取不在所述Listecluded中的设备节点为候选节点,根据计算能力从所述候选节点中选择一个设备节点作为副本分布设备节点。
在上述方法,步骤10341中根据计算能力从第一候选节点中选择第一副本分布设备节点的方法为:
根据所有第一候选节点及相应设备节点的计算能力构建虚拟环,具体请参阅图8,所述第一候选节点中的设备节点DN1-DNk分布在所述虚拟环上,当前设备节点和下一个设备节点之间的区域对应于当前设备节点的计算能力,具体的,区域越大,则表示当前设备节点的计算能力越大;
对第一副本的ID进行Hash算法,得到相应的Hash值,根据所述Hash值顺着所述虚拟环寻找大于当前设备节点值的第一个设备节点;
在所述Hash值大于当前设备节点值的情况下将当前设备节点设定为第一副本分布设备节点。
第二/第三/剩余副本分布设备节点的确定过程与第一副本分布设备节点的确定过程大致相同,在此不再赘述。通过上述过程完成了第一/第二/第三/剩余副本分布设备节点的确定,保证了数据的高可用性以及高可靠性。同理,步骤1032中“根据计算能力从所述候选节点中选择一个设备节点作为相应分布设备节点”的过程也与上述一样。
实施例二
请参阅图5-图11,本实施例提供了一种异构集群中基于计算能力感知的数据分布文件系统AAOC的数据分布方法。在本实施例中,AAOC分布式文件系统基于MapReduce计算模型,包括多个设备节点,所述多个设备节点包括一个元数据服务器和若干个数据服务器组成,每个数据服务器即是计算节点也是存储节点。其中,元数据服务器为主控节点,其他数据服务器为从控节点。
请参阅图5,该方法起始于步骤501,每一个数据服务器(包括元数据服务器和若干个数据服务器)上运行监控daemon程序,定时将自身的数据块读取数据提交到元数据服务器的数据库中,其中,数据块读取信息分为执行本地任务时本地计算的数据块、被其他设备节点读取的数据块和从其他设备节点读入的数据块。
在步骤502,在元数据服务器上,运行节点计算能力预测daemon程序,每隔一段时间从数据库中读取各数据服务器的数据读取信息。具体的使用两状态Markov模型来描述各数据服务器的计算能力信息,如图6所示,ON表示某数据服务器过多的数据块被远程执行,OFF状态表示该数据服务器的数据块本地执行。pon和poff表示该数据服务器两状态之间的转移概率。
在本实施例中,计算能力信息预测包括两部分过负荷节点数目α(t)预测和各节点计算能力预测。具体的,通过步骤503和504完成。
在步骤503,预测过负荷节点数目α(t)。假设β(t)和γ(t)分别表示从ON切换到OFF状态,从OFF切到ON状态的数目。由于状态切换独立,则通过以下公式预测过负荷节点数目α(t):
β ( t ) ~ B ( α ( t ) , p off ) γ ( t ) ~ B ( m - α ( t ) , p on ) ⇔ Pr { β ( t ) = x } = ( α ( t ) x ) p o ff x ( 1 - p off ) α ( t ) - x Pr { γ ( t ) = x } = ( m - α ( t ) x ) p on x ( 1 - p on ) m - α ( t ) - x
则下一阶段的过负荷节点数目为
α(t+1)=α(t)-β(t)+γ(t)
对于过负荷节点数目α(t),我们还可以构建Markov链,如图7所示。其一步状态转移矩阵中的概率值pij可由以下公式(6)-(9)得出:
p ij = Pr { α ( t + 1 ) = j | α ( t ) = i } - - - ( 6 ) = Σ r = 0 i Pr { β ( t ) = r , γ ( t ) = j - i + r | α ( t ) = i } - - - ( 7 ) = Σ r = 0 i Pr { β ( t ) = r | α ( t ) = i } Pr { γ ( t ) = j - i + r | α ( t ) = i } ( 8 ) = Σ r = 0 i ( i r ) p off r ( 1 - p off ) i - r ( m - i j - i + r ) p on j - i + r ( 1 - p on ) m - j - r ( 9 )
在步骤504,各设备节点的计算能力预测。对于各设备节点,我们使用κ(t)表示设备节点本地执行任务时本地计算的数据块,λ(t)表示被其他设备节点读取的数据块,μ(t)表示从其他设备节点读入的数据块。,则计算能力可以表示为:
φ i ( t ) = α κ ( t ) τ ( t ) + b μ ( t ) κ ( t ) - c λ ( t ) κ ( t )
τ ( t ) = Σ i = 1 m ( κ ( t ) + λ ( t ) )
εi(t)=map_to_rank(φi(t))
则对于节点计算能力,也可以构建Max+1个状态的Markov链,如图8所示。
元数据服务器根据上述过程预测完各设备节点的计算能力后,根据预测的结果将确定的任务数据分布为各数据服务器的本地任务。各数据服务器接收到各自的任务数据后,将该任务数据对应的数据块存储到自身的数据库,并计算执行相应的任务。各数据服务器每当执行并提交自身的MapReduce任务之前,需要先将任务所需的数据存储到相应设备节点之上。在存储数据时,数据被按照特定块大小(典型值为64MB)分块存储于AAOC上,同时,为了保证数据的高可用性,每个数据块采用副本机制,复制n份(典型值为3)存储于不同的节点之上。分布数据时分别计算每一数据块的副本分布节点列表List,其主要通过以下过程实现:
首先,对所有的设备节点前述预测的计算能力进行排序,按照计算能力升序排序Ε=[εi],将计算能力最小的α(t)个节点加入到排除列表Listexcluded中;
在步骤505,对于第一块副本,如果当前写入数据的客户端为数据节点,并且该节点不在Listexcluded中,则该节点加入List中;否则副本分布备选节点在客户端所在机架上,并且排除Listexcluded中节点的备选节点中按照计算能力选择一个节点加入List中;
在步骤506,对于第二块副本,放置于第一副本不在同一机架上的节点上,副本分布备选节点为和第一副本不在同一机架上的所有节点,并且不在Listecluded列表中的节点,按照计算能力从备选列表中选择一个节点加入List中;
在步骤507,对于第三块副本,放置于和第二副本不在同一机架上的节点上,副本分布备选节点为和第二副本不在同一机架上的所有节点,并且不在Listecluded列表中的节点,按照计算能力从备选列表中选择一个节点加入List中;
在步骤508,如果副本数目大于3,则剩余的副本放置于任一节点上,副本分布备选节点为不在Listecluded列表中的节点,按照计算能力从备选列表中选择节点加入List中。
上述步骤505-508中按照计算能力从备选列表中选择节点的方法为:
将所有副本分布备选节点及相应设备节点的计算能力构建出一个虚拟环,具体请参阅图8,副本分布备选节点DN1-DNk分布在环上,按照顺时针,当前备选节点和下一备选节点之间的区域对应于该当前备选节点的计算能力,具体的,区域越大,则表示当前设备节点的计算能力越大;
数据块选择节点时,对数据块ID进行Hash算法,用Hash值顺着环寻找大于节点值的第一个节点,则将该数据块分布于该节点上;
如果该节点不满足isGoodTarget条件,则继续顺环寻找。
通过上述过程完成了第一/第二/第三/剩余副本分布设备节点的确定,保证了数据的高可用性以及高可靠性。对于不复制的情况,则参照上述第一副本分布设备节点的确定过程。
为了验证本实施例提出的方法异构集群汇总MapReduce模型的支持效果,我们设计了具有8个高性能节点和16个低性能节点的实验环境,分别在传统Hadoop的HDFS分布式文件系统和我们提出的AAOC文件系统下运行13个测试用例。统计各个测试用例的远程任务的数据传输量和任务执行时间进行比较。
远程任务的数据传输百分比如图10所示,图中Hadoop表示传统Hadoop的HDFS分布式文件系统,AAOC表示采用本发明提出的分布式文件系统。我们可以看出,使用传统HDFS时,远程任务的数据传输量为30%~35%,而使用AAOC数据传输量下降到了6%~9%。结果,我们测试了各个用例的执行时间,并且以传统Hadoop中用例的时间为基准进行了归一化,如图11所示,AAOC的执行时间只有传统Hadoop的52%~83%,显著加快了执行速度。
本实施例针对MapReduce计算模型中存储决定计算的特性,根据历史数据预测下一阶段节点计算能力,以预测的节点计算能力为基准,决定新任务的数据分布,利用底层任务数据的分布指导上层任务的调度,合理分布数据,避免设备节点的计算能力与分布数据不匹配的问题,解决了异构集群中计算效率低下的问题。本实施例提出的技术方案尤其适用于通用场景下支持MapReduce计算模型的数据分布存储,能够大大提高在异构集群中MapReduce计算任务的执行效率,显著加快任务的执行速度。
通过前文描述可知本发明的实施例带来以下有益效果:
1、数据分布优化任务调度技术:通过底层数据的分布指导上层任务的调度,合理分布数据,避免计算能力与分布数据不匹配的问题,解决了异构集群中计算效率低下的问题;
2、计算能力感知数据分布技术:通过感知预测各设备节点的计算能力,根据历史数据预测下一阶段节点计算能力,以预测的计算能力为基准,决定新任务的数据分布;
3、节点数据均衡技术:对于已分布数据,根据计算感知的节点历史执行数据,在各设备节点的本地执行当前任务,达到类似同构集群的负载均衡效果。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (8)

1.一种基于异构集群的数据分布方法,应用于多个相互通信的设备节点,其特征在于,包括:
读取各设备节点的数据块读取信息并确定所需的任务数据;其中,所述数据块读取信息包括执行本地任务时本地计算的数据块、被其他设备节点读取的数据块和从其他设备节点读入的数据块;
根据读取的数据块读取信息预测各设备节点的计算能力信息;
根据预测的结果将确定的任务数据分布为各设备节点的本地任务;
所述根据读取的数据块读取信息预测各设备节点的计算能力包括:
根据读取的数据块读取信息和相应的设备节点构建Markov模型;
根据得到的Markov模型预测过负荷节点数目α(t)和各设备节点的计算能力;
所述过负荷节点数目α(t)通过以下公式预测:
其中,β(t)表示从ON切换到OFF状态的设备节点数目,γ(t)表示
β ( t ) ~ B ( α ( t ) , p o f f ) γ ( t ) ~ B ( m - α ( t ) , p o n ) ⇔ Pr { β ( t ) = x } = x α ( t ) p o f f x ( 1 - p o f f ) α ( t ) - x Pr { γ ( t ) = x } = x m - α ( t ) p o n x ( 1 - p o n ) m - α ( t ) - x
从OFF切到ON状态的设备节点数目,Pr{β(t)=x}、Pr{γ(t)=x}分别表示从在t时刻ON切换到OFF和从OFF切换到ON状态节点数为x个时的概率值;α(t+1)=α(t)-β(t)+γ(t)。
2.根据权利要求1所述的基于异构集群的数据分布方法,其特征在于,所述各设备节点的计算能力通过以下公式预测:
φ i ( t ) = a κ ( t ) τ ( t ) + b μ ( t ) κ ( t ) - c λ ( t ) κ ( t )
τ ( t ) = Σ i = 1 m ( κ ( t ) + π ( t ) )
εi(t)=map_to_rank(φi(t))
其中,κ(t)表示设备节点本地执行任务时本地计算的数据块,λ(t)表示被其他设备节点读取的数据块,μ(t)表示从其他设备节点读入的数据块,a、b、c分别表示不同类型数据块的权重,i、t表示时刻,φi(t)、τ(t)均为中间变量;a为本地执行任务时本地计算的数据块的权重,b为被其他设备节点读取的数据块的权重,c为从其他设备节点读入的数据块的权重。
3.根据权利要求1-2任一项所述的基于异构集群的数据分布方法,其特征在于,所述根据预测的结果将确定的任务数据分布为各设备节点的本地任务包括:
按照约定块大小对确定的任务数据进行分块处理,得到多个数据块;
根据预测的结果将所述多个数据块分布给相应设备节点。
4.根据权利要求3所述的基于异构集群的数据分布方法,其特征在于,所述得到多个数据块之后还包括:
对所述多个数据块中的每个数据块进行至少一次复制操作,得到所述每个数据块的至少一块副本;
根据预测的结果确定所述每个数据块的副本分布设备节点,并将所述每个数据块的副本分布给相应的副本分布设备节点。
5.根据权利要求4所述的基于异构集群的数据分布方法,其特征在于,对所述多个数据块中的每个数据块进行三次复制操作,得到所述每个数据块的三块副本。
6.根据权利要求5所述的基于异构集群的数据分布方法,其特征在于,所述根据预测的结果确定所述每个数据块的副本分布设备节点包括:
根据预测的结果对所有设备节点的计算能力进行排序,将计算能力最小的α(t)个设备节点加入到排除列表Listexcluded
对于第一副本,判断当前写入数据的设备节点是否为数据节点,若是,并且该节点不在所述Listexcluded中,则该节点被确定为第一副本分布设备节点;否则判定当前设备节点所在的机架上不在所述Listexcluded中的设备节点为第一候选节点,根据计算能力从所述第一候选节点中选择一个设备节点作为第一副本分布设备节点;
对于第二副本,选取与第一副本分布设备节点不在同一机架且不在所述Listecluded中的设备节点为第二候选节点,并根据计算能力从所述第二候选节点中选择一个设备节点作为第二副本分布设备节点;
对于第三副本,选取与第二副本分布设备节点不在同一机架且不在所述Listecluded中的设备节点为第三候选节点,并根据计算能力从所述第三候选节点中选择一个设备节点作为第三副本分布设备节点。
7.根据权利要求6所述的基于异构集群的数据分布方法,其特征在于,所述根据计算能力从第一候选节点中选择第一副本分布设备节点的方法为:
根据所有第一候选节点及相应设备节点的计算能力构建虚拟环,其中,所述第一候选节点中的设备节点分布在所述虚拟环上,当前设备节点和下一个设备节点之间的区域对应于当前设备节点的计算能力;
对第一副本的ID进行Hash算法,得到相应的Hash值,根据所述Hash值顺着所述虚拟环寻找大于当前设备节点值的第一个设备节点;
在所述Hash值大于当前设备节点值的情况下将当前设备节点设定为第一副本分布设备节点。
8.根据权利要求1所述的基于异构集群的数据分布方法,其特征在于,判断是否到达分布周期;若是,则读取各设备节点的数据块读取信息;若否,则继续判断是否到达分布周期。
CN201310733434.8A 2013-12-26 2013-12-26 基于异构集群的数据分布方法 Active CN103701900B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310733434.8A CN103701900B (zh) 2013-12-26 2013-12-26 基于异构集群的数据分布方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310733434.8A CN103701900B (zh) 2013-12-26 2013-12-26 基于异构集群的数据分布方法

Publications (2)

Publication Number Publication Date
CN103701900A CN103701900A (zh) 2014-04-02
CN103701900B true CN103701900B (zh) 2017-02-08

Family

ID=50363294

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310733434.8A Active CN103701900B (zh) 2013-12-26 2013-12-26 基于异构集群的数据分布方法

Country Status (1)

Country Link
CN (1) CN103701900B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104035819B (zh) * 2014-06-27 2017-02-15 清华大学深圳研究生院 科学工作流调度处理方法及装置
EP3219058B1 (en) * 2014-11-14 2020-11-18 Nicira Inc. Stateful services on stateless clustered edge
US11533255B2 (en) 2014-11-14 2022-12-20 Nicira, Inc. Stateful services on stateless clustered edge
TWI525432B (zh) * 2015-02-17 2016-03-11 緯創資通股份有限公司 儲存方法及軟體定義儲存系統
CN106933664B (zh) * 2017-03-09 2020-06-30 北京搜狐新媒体信息技术有限公司 一种Hadoop集群的资源调度方法及装置
US11570092B2 (en) 2017-07-31 2023-01-31 Nicira, Inc. Methods for active-active stateful network service cluster
US11296984B2 (en) 2017-07-31 2022-04-05 Nicira, Inc. Use of hypervisor for active-active stateful network service cluster
CN107707680A (zh) * 2017-11-24 2018-02-16 北京永洪商智科技有限公司 一种基于节点计算能力的分布式数据负载均衡方法和系统
US11153122B2 (en) 2018-02-19 2021-10-19 Nicira, Inc. Providing stateful services deployed in redundant gateways connected to asymmetric network
CN108874526A (zh) * 2018-07-05 2018-11-23 天使翼(武汉)科技创业发展有限公司 一种基于网络通讯的算力共享平台及方法
US10713096B2 (en) * 2018-10-18 2020-07-14 Beijing Jingdong Shangke Information Technology Co., Ltd. System and method for handling data skew at run time
CN110032338B (zh) * 2019-03-20 2020-05-19 华中科技大学 一种面向纠删码的数据副本放置方法及系统
US11799761B2 (en) 2022-01-07 2023-10-24 Vmware, Inc. Scaling edge services with minimal disruption
US11962564B2 (en) 2022-02-15 2024-04-16 VMware LLC Anycast address for network address translation at edge

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102231122A (zh) * 2011-07-13 2011-11-02 武汉理工大学 一种集群环境中基于分簇的节能调度方法
CN103218233A (zh) * 2013-05-09 2013-07-24 福州大学 Hadoop异构集群中的数据分配策略

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102231122A (zh) * 2011-07-13 2011-11-02 武汉理工大学 一种集群环境中基于分簇的节能调度方法
CN103218233A (zh) * 2013-05-09 2013-07-24 福州大学 Hadoop异构集群中的数据分配策略

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《基于Hadoop平台的分布式任务调度算法研究》;周俊清;《信息科技辑》;20130715;第10-11页,第35-37页 *

Also Published As

Publication number Publication date
CN103701900A (zh) 2014-04-02

Similar Documents

Publication Publication Date Title
CN103701900B (zh) 基于异构集群的数据分布方法
CN107688493B (zh) 训练深度神经网络的方法、装置及系统
CN103329151B (zh) 基于话题聚类的推荐
Mansouri et al. Combination of data replication and scheduling algorithm for improving data availability in Data Grids
Zhang et al. New agent-based proactive migration method and system for big data environment (BDE)
Tirado et al. Predictive data grouping and placement for cloud-based elastic server infrastructures
CN103338252B (zh) 一种分布式数据库并发存储虚拟请求机制的实现方法
CN103701635B (zh) 一种在线配置Hadoop参数的方法和装置
CA2984311A1 (en) Scalable complex event processing with probabilistic machine learning models to predict subsequent geolocations
CN102932479B (zh) 一种基于历史数据实现拓扑感知的虚拟网络映射方法
US20130067181A1 (en) Method and apparatus for providing criticality based data backup
Wei et al. A QoE-driven tactile Internet architecture for smart city
CN105242956A (zh) 虚拟功能服务链部署系统及其部署方法
CN108885641A (zh) 高性能查询处理和数据分析
CN110383245A (zh) 具有动态反馈的安全智能联网架构
CN110086888A (zh) 基于RabbitMQ的多集群动态负载方法、装置、电子设备
US8954414B2 (en) Search model updates
Mansouri et al. Hierarchical data replication strategy to improve performance in cloud computing
Li et al. An intelligent collaborative inference approach of service partitioning and task offloading for deep learning based service in mobile edge computing networks
CN109873772A (zh) 基于稳定匹配的流调度方法、装置、计算机设备及存储介质
Ma et al. Multi-objective microservice deployment optimization via a knowledge-driven evolutionary algorithm
CN113014649B (zh) 一种基于深度学习的云物联负载均衡方法、装置及设备
Ateya et al. Energy efficient offloading scheme for MEC-based augmented reality system
CN108833294B (zh) 面向数据中心广域网的低带宽开销的流量调度方法
Ebrahim et al. Resilience and load balancing in fog networks: A multi-criteria decision analysis approach

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant