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其中D i 为第i个从节点内所有数据量大小;D为所有从节点的总数据量D=∑ i D i ;x i 为第i个从节点上数据分发的比例,∑ i x i =1;u i 为第i个从节点的上行带宽;d i 为第i个从节点的下行带宽;cost为数据分发过程所需的数据传输时间;(1-x i )D i /u i 表示的是第i个从节点上传数据所需要花费的时间,x i (D-D i )/d i 表示的是第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:使数据分区算子通过数据分发来决定数据应该被发送的从节点,即将同一段内的数据在数据分发时发送到同一节点上。