CN110868461B - 一种Gaia集群中面向节点间异构带宽的数据分发方法 - Google Patents
一种Gaia集群中面向节点间异构带宽的数据分发方法 Download PDFInfo
- Publication number
- CN110868461B CN110868461B CN201911071510.7A CN201911071510A CN110868461B CN 110868461 B CN110868461 B CN 110868461B CN 201911071510 A CN201911071510 A CN 201911071510A CN 110868461 B CN110868461 B CN 110868461B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- data distribution
- job
- bandwidth
- 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
- 238000009826 distribution Methods 0.000 title claims abstract description 116
- 238000000034 method Methods 0.000 title claims abstract description 34
- PFFIDZXUXFLSSR-UHFFFAOYSA-N 1-methyl-N-[2-(4-methylpentan-2-yl)-3-thienyl]-3-(trifluoromethyl)pyrazole-4-carboxamide Chemical compound S1C=CC(NC(=O)C=2C(=NN(C)C=2)C(F)(F)F)=C1C(C)CC(C)C PFFIDZXUXFLSSR-UHFFFAOYSA-N 0.000 title claims abstract description 31
- 238000005070 sampling Methods 0.000 claims abstract description 24
- 230000005540 biological transmission Effects 0.000 claims abstract description 23
- 238000005457 optimization Methods 0.000 claims abstract description 21
- 238000012545 processing Methods 0.000 claims abstract description 12
- 230000008569 process Effects 0.000 claims abstract description 10
- 238000005192 partition Methods 0.000 claims description 24
- 238000000638 solvent extraction Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 abstract description 9
- 238000004364 calculation method Methods 0.000 description 19
- 238000007405 data analysis Methods 0.000 description 6
- 230000004927 fusion Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000005111 flow chemistry technique Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007499 fusion processing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种Gaia集群中面向节点间异构带宽的数据分发方法,能够减少数据分发所需的时间。Gaia集群接收用户提交的批处理作业,并将作业图提交至主节点。在主节点处,选择作业被部署运行的从节点。以最小化数据分发过程所需的数据传输时间为目的,构建基于数据传输时间的优化模型,计算作业被部署运行的从节点的最优数据分发比例。在作业图中添加采样逻辑,采样逻辑依据最优数据分发比例对待分发数据进行分段,同一段内的数据在数据分发时发送到同一节点上。根据修改后的作业图,生成执行图,并对执行图中的各子任务在作业被部署运行的从节点上进行部署并运行。批处理作业开始执行,并按最优数据分发比例对待分发数据进行分发。
Description
技术领域
本发明涉及大数据技术领域,具体涉及一种Gaia集群中面向节点间异构带宽的数据分发方法。
背景技术
近年来,随着大数据技术的进一步发展,人们开始追求数据处理更好的时效性,以流式引擎作为基础的大数据平台得到了长足的发展。但批处理在当下依然十分重要,现实中的许多场景往往都需要批作业和流作业进行交互,因此需要使用批流融合的大数据计算系统。
Gaia是一个面向多计算模型混合并存的高时效、可扩展的新一代大数据分析系统。目标是在自适应、可伸缩的大数据存储、批流融合大数据计算、高维大规模机器学习和高时效大数据智能交互向导等大数据分析系统的几个核心层面,解决一系列关键技术问题,从而构建自主可控的高时效、可伸缩的新一代大数据分析系统,掌握国际领先的大数据分析系统核心技术。
该新型大数据计算系统针对批流混合任务具有全周期多尺度的优化和统一的计算引擎。现有大数据计算系统或依托自身计算引擎模拟另一类框架的行为,或定义一套通用接口屏蔽底层计算引擎的差异,对批流融合支持较弱。同时,其优化大多位于执行的特定时期或特定层级,且针对高复杂性任务的优化能力不足。针对以上问题,创新性地开发了基于统一计算引擎和全周期多尺度优化的高性能批流融合大数据计算技术。该技术为批流融合处理提供统一表达逻辑支持,通过统一表达建模融合批流处理的计算模型、数据模型、变换模型和动作模型,实现批、流处理的真正融合。针对作业的多样性、持久性、迭代性等特点,提供面向多作业、多任务、迭代计算、持久计算等优化策略,优化针对性更强。同时,提供执行前和执行中的全周期优化,并细分为作业级、任务级、变换级等多个尺度,以实现系统的极速响应和海量吞吐。
在大数据计算框架中,在节点间对数据进行按key的分发是一个基本功能,Gaia系统中也提供了keyBy等算子来供用户使用。但在现阶段,包括Gaia系统在内的大数据分析系统在数据分发时,都没有依据集群中各节点带宽情况进行数据分发的功能。现有的数据分发方法包括Hash分区和Range分区,其中Hash分区的数据分发方式,是通过每条记录的Hash值来确定记录被分发的节点。Range分区的数据分发方式则是通过对输入数据源采样,获取数据的分布情况后,等比例地划分每个节点接收的数据范围,并以此为依据在数据分发过程中将每条记录分发到对应的节点上。
Gaia系统中现有的数据分发方法主要有Hash分区和Range分区两种,这两种数据分区方法通常都会让数据分发得比较均匀。Hash分区由于Hash值计算的特点,无法保证数据的最终分布情况,Range分区首先会通过采样的方式获取数据的分布,可以较好地使数据平均分发。但在异构带宽的集群环境下,由于带宽瓶颈节点的存在,均匀地对数据进行分发会导致数据分发完成的时间过长。而对于数据密集型作业来说,网络传输往往是作业运行的瓶颈所在,传统的数据分发方法会导致作业运行的效率低下。
发明内容
有鉴于此,本发明提供了一种Gaia集群中面向节点间异构带宽的数据分发方法,能够在异构带宽的Gaia集群中进行数据分发时,计算出异构带宽的节点间的最优数据分发比例,并通过采样算法获取数据的分布信息,最后根据最优数据分发比例和数据分布信息完成对各节点的数据分发,从而减少数据分发所需的时间。
为达到上述目的,本发明的技术方案为:一种Gaia集群中面向节点间异构带宽的数据分发方法,Gaia集群中包括一个主节点JobManager和两个以上的从节点TaskManager,集群中的每个节点中均运行Gaia系统,数据分发包括如下步骤:
步骤1:Gaia集群接收用户提交的批处理作业,根据批处理作业的代码逻辑生成对应的作业图JobGraph,并将作业图JobGraph提交至主节点JobManager。
步骤2:在主节点JobManager处,获取各从节点TaskManager的带宽,并通过接收到的作业图JobGraph中的数据源信息,获取各从节点TaskManager上的作业所要读取的数据量大小,根据各从节点TaskManager的带宽和作业所要读取的数据量大小,通过贪心策略选择作业被部署运行的从节点TaskManager。
步骤3:以最小化数据分发过程所需的数据传输时间为目的,构建基于数据传输时间的优化模型,结合步骤2中选择的作业被部署运行的从节点TaskManager的带宽信息和数据量大小,计算得到作业被部署运行的从节点TaskManager的最优数据分发比例。
步骤4:在作业图JobGraph中添加采样逻辑,采样逻辑获取用于根据作业中待分发数据的分布情况,依据最优数据分发比例对待分发数据进行分段,同一段内的数据在数据分发时发送到同一节点上。
步骤5:根据修改后的作业图JobGraph,生成执行图ExecutionGraph,并对ExecutionGraph中的各子任务在作业被部署运行的从节点TaskManager上进行部署并运行。
步骤6:批处理作业开始执行,并按最优数据分发比例对待分发数据进行分发。
进一步地,步骤2,包括如下具体步骤:
步骤2-1:在主节点JobManager处获取到Gaia集群中各从节点TaskManager的带宽,包括上行带宽和下行带宽。
步骤2-2:根据作业图JobGraph中的数据源信息的Source算子,得到各从节点TaskManager上的作业所要读取的数据量大小。
步骤2-3:根据从节点TaskManager的带宽和作业所要读取的数据量大小,首先选择作业所要读取的数据量大小超过设定数据量阈值的从节点作为作业被部署运行的TaskManager,其次选择带宽超过设定带宽阈值的从节点作为作业被部署运行的TaskManager。
进一步地,步骤3中,以最小化数据分发过程所需的数据传输时间为目的,构建基于数据传输时间的优化模型具体为:
基于数据传输时间的优化模型为:
min cost
其中Di为第i个从节点内所有数据量大小;D为所有从节点的总数据量D=∑iDi;xi为第i个从节点上数据分发的比例,∑ixi=1;ui为第i个从节点的上行带宽;di为第i个从节点的下行带宽;cost为数据分发过程所需的数据传输时间;(1-xi)Di/ui表示的是第i个从节点上传数据所需要花费的时间,xi(D-Di)/di表示的是第i个从节点下载数据所需时间。
结合步骤2中选择的作业被部署运行的TaskManager的带宽信息和数据量大小,计算得到作业被部署运行的TaskManager的最优数据分发比例,具体为:
将步骤2中选择的作业被部署运行的TaskManager的带宽信息和数据量大小代入基于数据传输时间的优化模型,通过线性规划的方法求解获得集群中作业被部署运行的从节点TaskManager的最优数据分发比例。
进一步地,步骤4具体包括如下步骤:
步骤4-1:遍历作业图JobGraph中的算子,根据算子类型找到数据分区算子。
步骤4-2:在数据分区算子前添加用于采样逻辑;采样逻辑获取用于根据作业中待分发数据的分布情况。
步骤4-3:依据最优数据分发比例对待分发数据进行分段,得到数据分发界;将数据分发界用一个数组进行存储,并发送给数据分区算子。
步骤4-4:使数据分区算子通过数据分发来决定数据应该被发送的从节点,即将同一段内的数据在数据分发时发送到同一节点上。
有益效果:
本发明提供的一种Gaia集群中面向节点间异构带宽的数据分发方法,首先针对Gaia系统的数据分发过程建立基于数据传输时间的优化模型,通过该模型,在已知参与计算的各节点上的数据量和带宽信息后,可以计算出各节点的最优数据分发比例。要计算出各节点的数据分发比例,则需要得到用于计算的节点、节点上的数据量和带宽等信息,其中节点的数据量可以通过提交的作业信息推算得出,带宽信息则由TaskManager向JobManager汇报得到。除此之外,要按照计算出的最优比例进行数据分发,还需要知道数据的分布情况,因此需要在数据分发前使用抽样算法来得到数据的分布。最后结合采样得到的数据分布和计算出的节点最优数据分发比例,确定数据中的各条记录应该分发到哪个节点上,就可以完成基于带宽的数据分发。该方法能够减少数据分发所需的时间,提高作业运行效率。
附图说明
图1为本发明实施例构建的节点间异构带宽的Gaia集群示意图;
图2为本发明实施例提供的Gaia集群中面向节点间异构带宽的数据分发方法整体流程图;
图3为本发明实施例中节点带宽获取示意图;
图4为本发明实施例中数据源分布获取示意图;
图5为本发明实施例中计算节点的选择与最优比例的计算示意图;
图6为本发明实施例中作业图JobGraph逻辑修改示意图;
图7为本发明实施例中执行图ExecutionGraph中子任务部署示意图;
图8为本发明实施例中数据分发示意图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
图1为节点间异构带宽的Gaia集群示意图。Gaia集群是一个Master/Slave架构,以图中为例,Master就是JobManager,Slave是Slave1、Slave2和Slave3这三个计算节点。JobManager与所有的计算节点都会保持着通讯,各个计算节点会向JobManager汇报自身的情况,包括带宽信息等。一个Gaia作业提交后,
首先会在作业提交的节点Client端上生成作业图JobGraph。该JobGraph将被Client端提交到主节点JobManager,在主节点JobManager处,首先根据作业信息选择作业运行的TaskManager节点,之后通过数据分发比例计算模块计算出所提交JobGraph的最优数据分发比例,并使用作业图逻辑修改模块修改JobGraph中的作业逻辑,使作业根据计算得出的最优数据分发比例进行数据分发,最后将修改完毕之后的作业图JobGraph转化为并行化形式的执行图ExecutionGraph进行部署运行。
一种Gaia中基于带宽的数据分发方法,具体实施方案包括以下步骤:
步骤1:Gaia集群接收用户提交的批处理作业,根据批处理作业的代码逻辑生成对应的作业图JobGraph,并将作业图JobGraph提交至主节点JobManager。
步骤2:在主节点JobManager处,获取各从节点TaskManager的带宽,并通过接收到的作业图JobGraph中的数据源信息,获取各从节点TaskManager上的作业所要读取的数据量大小,根据各从节点TaskManager的带宽和作业所要读取的数据量大小,通过贪心策略选择作业被部署运行的从节点TaskManager。
步骤2具体包括如下步骤:
步骤2-1:在JobManager处获取到当前Gaia集群中各节点的带宽,包括上行带宽和下行带宽。
以图3为例,Slave1上行带宽为2Mb/s,下行带宽为10Mb/s,Slave2上行带宽和下行带宽都是10Mb/s,Slave3上行带宽和下行带宽都是10Mb/s。Slave1、Slave2和Slave3都会将自己的带宽信息汇报给JobManager,在JobManager处就可以获取到当前集群各节点的带宽。
步骤2-2:根据JobGraph中存储数据源信息的Source算子,得到所要读取的数据源在各节点的分布情况;
如图4所示,首先遍历作业生成的JobGraph中的算子,找到Source算子,并提取出Source算子中存储的url,此时为“hdfs://master:9000/testData”。根据该url可以向分布式文件系统请求得到请求的testData文件的分块信息,包括每个分块的大小和分块所在的位置。最后通过分块信息计算得到各节点的数据大小,图4中得到的是Slave1上数据量为320M,Slave2上数据量为160M。
步骤2-3:根据步骤2-1获取的各节点带宽信息、步骤2-2得到的数据源在各节点的分布情况和作业所需的节点数,选择最终用于计算的节点;
根据作业的并行度选取最终用于计算的节点,这里会优先选择拥有数据量多、带宽大的节点作为最终计算节点。具体是通过贪心策略,优先考虑数据本地性,选择Gaia集群中拥有数据的节点,其次考虑节点的带宽大小,选择带宽大的节点。
以图5为例,作业并行度为2,需要选择两个节点参与计算,而拥有数据量的节点为Slave1和Slave2,因此选择Slave1和Slave2作为作业部署的节点。
步骤3:建立基于数据传输时间的优化模型,该模型的目标是最小化数据分发所需时间。以该模型为基础,可以构建数据分发比例计算模块,该模块通过输入步骤2中选定的作业部署节点的带宽信息和数据量大小,可以计算出作业部署节点的最优数据分发比例。
步骤3-1:建立基于数据传输时间的优化模型。
建立基于数据传输时间的优化模型,首先对所要用到的变量进行如下定义:
Di:节点i上的数据量(节点内所有数据量)大小;
D:各节点的总数据量,D=∑iDi;
xi:节点i上数据分发的比例,显然∑ixi=1;
ui:节点i的上行带宽;
di:节点i的下行带宽;
cost:数据分发(整个数据传输过程)所要花费的总时间;
则形式化的基于数据传输时间的优化模型可以表示为:
min cost
∑ixi=1
其中(1-xi)Di/ui表示的是节点i上传数据所需要花费的时间,xi(D-Di)/di表示的是节点i下载数据所需时间。
该模型可以通过线性规划的方法来求解,通过对求解方法进行封装,构建出最优比例计算模块,该模块通过输入一组包含数据量和带宽大小的节点信息,输出各节点的最优数据分发比例。
步骤3-2:将步骤2中选定的用于计算的节点的信息结构化,通过步骤3-1中构造的数据分发比例计算模块计算出各节点的最优数据分发比例;
以图5为例,将Slave1节点和Slave2节点的上行带宽、下行带宽和数据量大小提供给数据分发比例计算模块,计算出Slave1的最优数据分发比例为90%,Slave2的最优数据分发比例为10%。
步骤4:修改作业图JobGraph的逻辑,使作业按步骤3中计算出的最优数据分发比例来进行数据分发。要按计算得到的最优数据分发比例进行数据分发,需要知道数据的分布情况,因此需要在作业图JobGraph之中添加采样逻辑获取数据的分布。根据数据的分布情况和最优数据分发比例就可以得到用于数据分发的界,使用得到的数据分界对数据进行分段,使同一段内的数据在数据分发时发送到同一节点上。
步骤4-1:遍历作业图JobGraph中的算子,根据算子类型找到数据分区的算子;
步骤4-2:在找到的进行数据分发的算子前添加用于采样的逻辑,用于获取数据的分布。采样过程首先会为数据中的每条记录生成一个随机的权值,最后将保留对应权值最大的10%的数据作为最终样本数据。
步骤4-3:根据步骤4-2中的样本数据和最优数据分发比例,得到数据分发的界。该界用一个数组进行存储,并会被数据分区算子接收得到。
首先将步骤4-2中接收到的最终的样本数据进行排序;具体地可以采用快速排序算法进行排序。根据各节点的最优数据分发比例,在步骤4-1中排完序的样本数据中算出相应的偏移量,并根据该偏移量处的数据构建出数据分发的界,该界将发送至下游数据分区算子
举例来说,例如采样得到了10条样本记录,每条记录的用于数据分区的key值就是其本身,排序后的样本记录为[1,2,3,4,5,6,7,8,9,10],数据分发参与的节点数为2,计算出的最优数据分发比例为90%和10%,则最后得到的用于数据分发的界就是[9]。
步骤4-4:重写数据分区算子,使数据分区算子通过接收到的数据分发的界来决定数据应该被发送的节点。
例如从步骤4得到的数据分发的界是[9],则key值小于等于9的记录会分发到最优比例为90%的节点上,key值大于9的记录则会分发到最优比例为10%的节点上。
修改作业图JobGraph的示意图如图6所示,步骤4-2添加了Map(采样)算子和Reduce(采样)算子,步骤4-3添加了Map(计算分界)算子,步骤4-4则对数据分区Partition算子进行了重写。
步骤5:根据修改后的作业图JobGraph,生成执行图ExecutionGraph,并对ExecutionGraph中的各子任务按照步骤2中选定的节点进行部署并运行。
ExecutionGraph的生成以作业提交的JobGraph为基础,JobGraph中相关的配置都会存入到ExecutionGraph中。JobGraph中的每个算子将会根据其并行度,生成ExecutionGraph中的每个子任务,这些子任务会在后续进行部署执行。例如JobGraph中一个Source算子的并行度为2,则Source算子在ExecutionGraph中就会构建出Source(1/2)和Source(2/2)两个子任务。
如图7所示,生成的ExecutionGraph中Source算子、Map(采样)算子、Partition算子和Sink算子的并行度都是2,Reduce(采样)算子和Map(计算分界)算子的并行度则是1。
ExecutionGraph中的子任务部署时最先部署的是Source任务,后续的算子对应的任务会在数据产生后进行部署。为了使程序运行效率更高,后续算子部署的时候会尽量与其输入算子部署到同一节点上,从而减少数据在网络中的传输。
根据前述示例并结合图7,由于选择了Slave1和Slave2作为计算节点,则Source(1/2)和Source(2/2)两个子任务会首先分别部署到Slave1和Slave2上。在Source产生数据后,后续的Map(采样)算子会开始部署,并且Map(采样1/2)会部署到Source(1/2)所在节点,Map(采样2/2)会部署到Source(2/2)所在节点。如果后续算子的并行度与前一算子不一致,则会随机选择前一算子任务所在节点进行部署。如Reduce(采样1/1)将会随机部署到Map(采样1/2)或Map(采样2/2)所在节点的其中一个上,后续Map(计算分界1/1)则会与Reduce(采样1/1)部署在同一节点上。
这里由于Partition算子需要依靠Map(计算分界1/1)算子的计算结果,因此设置了采样算子先运行,所以Partition算子将会在采样算子运行完成后进行部署。同前述一样,Partition(1/2)将会部署到Source(1/2)所在节点,Partition(2/2)将会部署到Source(2/2)所在节点。
步骤6:批处理作业开始执行,并按最优数据分发比例对待分发数据进行分发。
如图8所示,Slave1上有320M数据,Slave2上有160M数据,数据的分布情况为数据量相等的1-10个数,并且每个数自身就是相应的key值,则根据前述计算,Slave1的最优数据分发比例为90%,Slave2的最优数据分发比例为10%。则数据1-9将会分发到Slave1上,数据10将会分发到Slave2上。
在这种情况下,Slave1将发送32M数据到Slave2,Slave2将接收32M的数据,Slave2将发送144M数据到Slave1,Slave1将接收144M的数据,由此可以计算出Slave1和Slave2数据传输完成所需的时间为128s。而如果对数据进行平均分发,也就是Slave1发送160M数据到Slave2,Slave2发送80M数据到Slave1,则最终数据传输时间将会是640s,花费时间明显变长。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (2)
1.一种Gaia集群中面向节点间异构带宽的数据分发方法,其特征在于,所述Gaia集群中包括一个主节点JobManager和两个以上的从节点TaskManager,集群中的每个节点中均运行Gaia系统,所述数据分发包括如下步骤:
步骤1:所述Gaia集群接收用户提交的批处理作业,根据所述批处理作业的代码逻辑生成对应的作业图JobGraph,并将所述作业图JobGraph提交至主节点JobManager;
步骤2:在主节点JobManager处,获取各从节点TaskManager的带宽,并通过接收到的作业图JobGraph中的数据源信息,获取各从节点TaskManager上的作业所要读取的数据量大小,根据各从节点TaskManager的带宽和作业所要读取的数据量大小,通过贪心策略选择作业被部署运行的从节点TaskManager;
所述步骤2,包括如下具体步骤:
步骤2-1:在所述主节点JobManager处获取到所述Gaia集群中各从节点TaskManager的带宽,包括上行带宽和下行带宽;
步骤2-2:根据作业图JobGraph中的数据源信息的Source算子,得到各从节点TaskManager上的作业所要读取的数据量大小;
步骤2-3:根据从节点TaskManager的带宽和作业所要读取的数据量大小,首先选择作业所要读取的数据量大小超过设定数据量阈值的从节点作为作业被部署运行的TaskManager,其次选择带宽超过设定带宽阈值的从节点作为作业被部署运行的TaskManager;
步骤3:以最小化数据分发过程所需的数据传输时间为目的,构建基于数据传输时间的优化模型,结合步骤2中选择的作业被部署运行的从节点TaskManager的带宽信息和数据量大小,计算得到所述作业被部署运行的从节点TaskManager的最优数据分发比例;
所述步骤3中,所述以最小化数据分发过程所需的数据传输时间为目的,构建基于数据传输时间的优化模型具体为:
所述基于数据传输时间的优化模型为:
min cost
其中Di为第i个从节点内所有数据量大小;D为所有从节点的总数据量D=∑iDi;xi为第i个从节点上数据分发的比例,∑ixi=1;ui为第i个从节点的上行带宽;di为第i个从节点的下行带宽;cost为数据分发过程所需的数据传输时间;(1-xi)Di/ui表示的是第i个从节点上传数据所需要花费的时间,xi(D-Di)/di表示的是第i个从节点下载数据所需时间;
所述结合步骤2中选择的作业被部署运行的TaskManager的带宽信息和数据量大小,计算得到所述作业被部署运行的TaskManager的最优数据分发比例,具体为:
将步骤2中选择的作业被部署运行的TaskManager的带宽信息和数据量大小代入所述基于数据传输时间的优化模型,通过线性规划的方法求解获得集群中作业被部署运行的从节点TaskManager的最优数据分发比例;
步骤4:在所述作业图JobGraph中添加采样逻辑,所述采样逻辑获取用于根据作业中待分发数据的分布情况,依据所述最优数据分发比例对待分发数据进行分段,同一段内的数据在数据分发时发送到同一节点上;
步骤5:根据修改后的作业图JobGraph,生成执行图ExecutionGraph,并对ExecutionGraph中的各子任务在所述作业被部署运行的从节点TaskManager上进行部署并运行;
步骤6:所述批处理作业开始执行,并按最优数据分发比例对待分发数据进行分发。
2.如权利要求1所述的方法,其特征在于,所述步骤4具体包括如下步骤:
步骤4-1:遍历作业图JobGraph中的算子,根据算子类型找到数据分区算子;
步骤4-2:在所述数据分区算子前添加用于采样逻辑;所述采样逻辑获取用于根据作业中待分发数据的分布情况;
步骤4-3:依据所述最优数据分发比例对待分发数据进行分段,得到数据分发界;将数据分发界用一个数组进行存储,并发送给数据分区算子;
步骤4-4:使数据分区算子通过数据分发来决定数据应该被发送的从节点,即将同一段内的数据在数据分发时发送到同一节点上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911071510.7A CN110868461B (zh) | 2019-11-05 | 2019-11-05 | 一种Gaia集群中面向节点间异构带宽的数据分发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911071510.7A CN110868461B (zh) | 2019-11-05 | 2019-11-05 | 一种Gaia集群中面向节点间异构带宽的数据分发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110868461A CN110868461A (zh) | 2020-03-06 |
CN110868461B true CN110868461B (zh) | 2020-10-27 |
Family
ID=69654746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911071510.7A Active CN110868461B (zh) | 2019-11-05 | 2019-11-05 | 一种Gaia集群中面向节点间异构带宽的数据分发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110868461B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112491971B (zh) * | 2020-11-09 | 2022-05-31 | 苏州浪潮智能科技有限公司 | 一种计算集群节点调度方法、装置、设备、产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103118134A (zh) * | 2013-02-28 | 2013-05-22 | 浙江大学 | 一种面向任务级的大数据分发质量保障方法及装置 |
US9813356B1 (en) * | 2016-02-11 | 2017-11-07 | Amazon Technologies, Inc. | Calculating bandwidth information in multi-stage networks |
CN110121186A (zh) * | 2019-06-28 | 2019-08-13 | 京信通信系统(中国)有限公司 | 一种双连接下数据分发方法及设备 |
-
2019
- 2019-11-05 CN CN201911071510.7A patent/CN110868461B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103118134A (zh) * | 2013-02-28 | 2013-05-22 | 浙江大学 | 一种面向任务级的大数据分发质量保障方法及装置 |
US9813356B1 (en) * | 2016-02-11 | 2017-11-07 | Amazon Technologies, Inc. | Calculating bandwidth information in multi-stage networks |
CN110121186A (zh) * | 2019-06-28 | 2019-08-13 | 京信通信系统(中国)有限公司 | 一种双连接下数据分发方法及设备 |
Non-Patent Citations (1)
Title |
---|
基于深度神经网络的事件实时处理系统;王诗瑶;《中国优秀硕士学位论文全文数据库》;20180315;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110868461A (zh) | 2020-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108564164B (zh) | 一种基于spark平台的并行化深度学习方法 | |
CN105956021B (zh) | 一种适用于分布式机器学习的自动化任务并行的方法及其系统 | |
Yan et al. | Blogel: A block-centric framework for distributed computation on real-world graphs | |
CN105049268B (zh) | 分布式计算资源分配系统和任务处理方法 | |
WO2019237811A1 (zh) | 一种神经网络的内存分配方法及装置 | |
CN110069341B (zh) | 边缘计算中结合功能按需配置的有依赖关系任务的调度方法 | |
CN106663075A (zh) | 执行基于图的程序规范 | |
CN106687921A (zh) | 在基于图的程序中指定组件 | |
CN111708641B (zh) | 一种内存管理方法、装置、设备及计算机可读存储介质 | |
CN106687918A (zh) | 编译基于图的程序规范 | |
CN109388486B (zh) | 一种针对异构内存与多类型应用混合部署场景的数据放置与迁移方法 | |
CN109447276B (zh) | 一种机器学习系统、设备及应用方法 | |
CN106687919A (zh) | 管理用于控制任务的状态 | |
CN111860816A (zh) | 神经网络模型的编译方法、装置、设备及存储介质 | |
CN106605209A (zh) | 控制数据处理任务 | |
CN111597043A (zh) | 一种全场景边缘计算方法、装置及系统 | |
CN113177034A (zh) | 一种跨平台统一的分布式图数据处理方法 | |
CN104834751A (zh) | 基于物联网的数据分析方法 | |
CN110086855A (zh) | 基于蚁群算法的Spark任务智能感知调度方法 | |
CN109684088B (zh) | 云平台资源约束的遥感大数据快速处理任务调度方法 | |
CN110891083B (zh) | 一种Gaia中支持多作业并行执行的代理方法 | |
CN113590281A (zh) | 基于动态集中式调度的分布式并行模糊测试方法及系统 | |
CN110868461B (zh) | 一种Gaia集群中面向节点间异构带宽的数据分发方法 | |
CN102831102A (zh) | 一种在计算机集群上进行矩阵乘积运算的方法和系统 | |
CN113010296B (zh) | 基于形式化模型的任务解析与资源分配方法及系统 |
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 |