CN110635943B - 基于Spark计算框架的网络传输过程的网络流量仿真系统 - Google Patents

基于Spark计算框架的网络传输过程的网络流量仿真系统 Download PDF

Info

Publication number
CN110635943B
CN110635943B CN201910822129.3A CN201910822129A CN110635943B CN 110635943 B CN110635943 B CN 110635943B CN 201910822129 A CN201910822129 A CN 201910822129A CN 110635943 B CN110635943 B CN 110635943B
Authority
CN
China
Prior art keywords
node
simulation
network
network flow
data
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
CN201910822129.3A
Other languages
English (en)
Other versions
CN110635943A (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.)
Beihang University
Original Assignee
Beihang 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 Beihang University filed Critical Beihang University
Priority to CN201910822129.3A priority Critical patent/CN110635943B/zh
Publication of CN110635943A publication Critical patent/CN110635943A/zh
Application granted granted Critical
Publication of CN110635943B publication Critical patent/CN110635943B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/044Network management architectures or arrangements comprising hierarchical management structures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/069Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network

Abstract

本发明公开了一种基于Spark计算框架网络传输过程的网络仿真系统,该网络仿真系统包括有负载生成模块(1)、网络拓扑配置模块(2)、可视化模块(3)、调度模块(4)和数据跟踪模块(5)。调度模块(4)和数据跟踪模块(5)分别会在工作仿真节点和驱动仿真节点上。本发明基于Spark计算框架并结合容器虚拟化技术和消息驱动机制,仿真Spark计算框架网络传输过程。采用容器虚拟化技术建立Spark计算集群仿真节点,仿真过程传输真实网络数据包,因此能够更好地体现实验方案在真实环境下的效果。

Description

基于Spark计算框架的网络传输过程的网络流量仿真系统
技术领域
本发明涉及对Spark计算框架的网络流量仿真,更具体地,涉及一种面向Spark计算框架的网络传输过程的网络流量仿真。
背景技术
网络仿真技术是一种通过建立网络设备和网络链路的统计模型,模拟网络传输流量,从而获取网络设计或优化所需要的网络性能数据的仿真技术。它具有全新的模拟实验机理及在高度复杂的网络环境下得到高可信度结果的能力。通过网络仿真,可为优化和扩容现有网络提供定量的分析数据。
Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UCBerkeley AMP lab(加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark拥有Hadoop MapReduce所具有的优点。Spark计算框架拥有内存计算的特点,因此非常适合数据挖掘、机器学习等需要迭代的计算任务。对于Spark计算框架的部署参考2017年1月第1版,《Spark内核机制解析及性能调优》,王家林,段智华,第72-73页。Spark计算框架的部署包括有驱动程序、集群管理器和工作节点,如图1所示。在使用Spark计算框架的过程中,研究者们发现,在一些特定的情况下,计算集群的网络性能会对数据处理效率产生较大的影响:在处理数据密集型任务(Intensive task)时,由于数据存储在数据中心的各个节点(node)上,因此会产生大量的网络流量(network traffic),导致网络性能成为整体数据处理性能的瓶颈;当计算任务(task)数据分散度不够时,可能会产生数据倾斜,大部分的数据传输到少数几个节点(node)上,导致作业(job)处理速度变慢。为了解决或缓解这样的问题,需要对大数据计算框架进行网络性能(network performance)的分析,从而针对出现的问题找到改进方法或优化方案。
对于找到的改进方法或优化方案,需要进行实验来测试。在真实环境下进行实验能够得到最真实的结果,但是真实环境下的网络灵活性较差,网络参数或网络拓扑结构的修改过程比较复杂,并且进行大规模实验的成本高昂。因此,越来越多的研究采用网络仿真的方法来进行测试。与此同时,近些年的许多研究基于网络流组(coflow)的网络流(flow)抽象,提出了对于大数据计算集群网络调度的优化方法,显著地改善了大数据计算集群中作业的平均完成时间。由于该研究主要针对于大规模、多任务的计算集群,符合条件的真实实验环境较难获取,因此大多数研究采用了网络仿真的方法来进行实验验证。
在面向Spark计算框架的网络传输过程的网络仿真技术领域,现有的仿真技术往往是根据输入负载(load)进行简单地重放,而没有考虑网络流量(network traffic)中数据传输流(data transfer flow)和控制消息流(control message flow)之间的相互驱动关系,因此仿真效果无法体现Spark计算框架数据传输过程的应用层(application layer)特征。
发明内容
为了实现Spark计算框架的网络传输过程的系统仿真,并且体现传输过程的应用层(application layer)特征,本发明提出了一种基于容器虚拟化技术和消息驱动机制的面向Spark计算框架网络传输过程的仿真方法及网络流量仿真系统。本发明基于容器虚拟化(docker virtualization)技术建立Spark计算集群(cluster)仿真节点(emulationnode),以消息(message)驱动的方式实现对Spark计算集群(cluster)数据传输过程的仿真,并且支持可替换的网络流组(coflow)调度功能。本发明方法能够支持对大规模Spark集群中数据传输过程的仿真,可以用于优化Spark计算集群(cluster)数据传输过程,从而加速Spark计算任务(task),提高集群(cluster)工作效率。
本发明的一种面向Spark计算框架的网络传输过程的网络流量仿真系统,该网络流量仿真系统包括有负载生成模块1、网络拓扑配置模块2、可视化模块3、调度模块4和数据跟踪模块5。图中,调度模块4和数据跟踪模块5分别会在工作仿真节点和驱动仿真节点上。工作仿真节点对应图1中的Worker节点;驱动仿真节点对应图1中的驱动程序。
所述调度模块4由工作节点仿真同步协调器41、网络流组调度代理模块42、仿真同步协调器43和网络流组调度器44构成。
所述数据跟踪模块5由数据发送模块51、数据接收模块52和数据发送跟踪器53构成。
负载生成模块1由真实Spark网络传输日志输入单元11、网络流组抽象提取单元12、建立网络流组生成模型13和网络负载数据生成单元14构成。
真实Spark网络传输日志输入单元(11)用于接收从Spark日志服务器输出的日志,并将日志存储为txt格式文件;
网络流组提取单元(12)第一方面从真实Spark网络传输日志输入单元(11)中提出出日志(Log);第二方面从日志(Log)中过滤出应用(application)网络传输相关的条目(Item),从所述条目(Item)中读取、解析和存储描述Spark应用(application)执行过程中的网络流flow,所述网络流flow是以计算时间ExeTime和网络传输量RealFlow来计量的;Spark应用(application)执行过程中存在有多个执行阶段ST={st1,st2,…,ste,...,stE},任意一执行阶段ste存在有多条网络流flow;
st1为Spark应用(application)执行过程中第一个执行阶段;
st2为Spark应用(application)执行过程中第二个执行阶段;
ste为Spark应用(application)执行过程中第e个执行阶段;e为执行阶段的标识号;
stE为Spark应用(application)执行过程中最后一个执行阶段;E为执行阶段的总数;
基于st1的网络流信息表中包括有执行阶段、网络流、计算时间和网络传输量内容;
基于st2的网络流信息表中包括有执行阶段、网络流、计算时间和网络传输量内容;
基于ste的网络流信息表包括有执行阶段、网络流、计算时间和网络传输量内容;
基于stE的网络流信息表包括有执行阶段、网络流、计算时间和网络传输量内容;
第三方面,将每个阶段的ExeTime和RealFlow输出给建立网络负载模型(13);
建立网络流组生成模型(13)的建模过程如下:
步骤131,设置工作仿真节目的工作时间长度;
对于任意一个工作仿真节点都维持有一个工作时间长度JobTime,在最初始化时,工作时间长度JobTime赋值0;
第一个工作仿真节点M1的工作时间长度,记为
第二个工作仿真节点M2的工作时间长度,记为
任意一个工作仿真节点Mb的工作时间长度,记为
最后一个工作仿真节点MB的工作时间长度,记为
步骤132,选取工作时间长度最小的工作仿真节点作为接收节点;
对步骤131中的工作时间长度进行从小至大的排序,得到最小的工作时间长度,记为JobTime;然后将JobTime对应的工作仿真节点作为当前网络传输的接收节点;其余工作时间长度对应的工作仿真节点作为当前网络传输的发送节点;
步骤133,获取执行阶段st1的RelativeStartTime和FLOWS,并组成基于执行阶段st1的网络流组C1
依据st1的网络流信息并结合最小的工作时间长度、以及发送节点与接收节点之间的流传输大小,得到属于执行阶段st1的网络流组C1;所述其中将赋值给 赋值给
表示属于网络流组C1的相对起始时间;的单位为秒;
表示属于网络流组C1的流传输量;的单位为字节数;
基于st1的网络流组获取的内容包括有执行阶段、网络流、RelativeStartTime和FLOWS;
是以工作仿真节点个数B为维度的流量大小矩阵;所述中的任意一元素是在st1执行阶段中发送节点Mb向接收节点MB传输的流量大小;
为属于执行阶段st1的第一条网络流对应的网络传输量RealFlow值;
是以工作仿真节点个数B为维度的流量大小矩阵;所述中的任意一元素是在st1执行阶段中发送节点Mb向接收节点MB传输的流量大小;
为属于执行阶段st1的第二条网络流对应的网络传输量RealFlow值;
是以工作仿真节点个数B为维度的流量大小矩阵;所述中的任意一元素是在st1执行阶段中发送节点Mb向接收节点MB传输的流量大小;
为属于执行阶段st1的第d条网络流对应的网络传输量RealFlow值;
是以工作仿真节点个数B为维度的流量大小矩阵;所述中的任意一元素,记为所述表示st1执行阶段中发送节点Mb向接收节点MB传输的流量大小;
为属于执行阶段st1的最后一条网络流对应的网络传输量RealFlow值;
步骤134,获取执行阶段st2的RelativeStartTime和FLOWS,并组成基于执行阶段st2的网络流组C2
依据st2的网络流信息并结合最小的工作时间长度、以及发送节点与接收节点之间的流传输大小,得到属于执行阶段st2的网络流组C2;所述其中将赋值给 赋值给
表示属于网络流组C2的相对起始时间;的单位为秒;
表示属于网络流组C2的流传输量;的单位为字节数;
基于st2的网络流组获取的内容包括有执行阶段、网络流、RelativeStartTime和FLOWS;
表示st2执行阶段中的相对起始时间,即 表示属于执行阶段st2的第一条网络流;所述对应的计算时间ExeTime值,记为JobTime为最小的工作时间长度;
表示st2执行阶段中的相对起始时间,即将赋值给表示属于执行阶段st2的最后一条网络流;所述对应的计算时间ExeTime值,记为表示st2执行阶段中位于之前的网络流的相对起始时间;
是以工作仿真节点个数B为维度的流量大小矩阵;所述中的任意一元素,记为所述表示st2执行阶段中发送节点Mb向接收节点MB传输的流量大小;
步骤135,获取执行阶段ste的RelativeStartTime和FLOWS,并组成基于执行阶段ste的网络流组Ca
依据ste的网络流信息并结合最小的工作时间长度、以及发送节点与接收节点之间的流传输大小,得到属于执行阶段ste的网络流组Ca;所述其中将赋值给 赋值给
表示属于网络流组Ca的相对起始时间;的单位为秒;
表示属于网络流组Ca的流传输量;的单位为字节数;
基于ste的网络流组获取的内容包括有执行阶段、网络流、RelativeStartTime和FLOWS;
表示ste执行阶段中的相对起始时间,即 表示属于执行阶段ste的第一条网络流;所述对应的计算时间ExeTime值,记为JobTime为最小的工作时间长度;
表示ste执行阶段中的相对起始时间,即将赋值给表示属于执行阶段ste的最后一条网络流;所述对应的计算时间ExeTime值,记为表示ste执行阶段中位于之前的网络流的相对起始时间;
是以工作仿真节点个数B为维度的流量大小矩阵;所述中的任意一元素,记为所述表示ste执行阶段中发送节点Mb向接收节点MB传输的流量大小;
步骤136,获取执行阶段stE的RelativeStartTime和FLOWS,并组成基于执行阶段stE的网络流组CA
依据stE的网络流信息并结合最小的工作时间长度、以及发送节点与接收节点之间的流传输大小,得到属于执行阶段stE的网络流组CA;所述其中将赋值给 赋值给
表示属于网络流组CA的相对起始时间;的单位为秒;
表示属于网络流组CA的流传输量;的单位为字节数;
基于stE的网络流组获取的内容包括有执行阶段、网络流、RelativeStartTime和FLOWS;
表示stE执行阶段中的相对起始时间,即 表示属于执行阶段stE的第一条网络流;所述对应的计算时间ExeTime值,记为JobTime为最小的工作时间长度;
表示stE执行阶段中的相对起始时间,即将赋值给表示属于执行阶段stE的最后一条网络流;所述对应的计算时间ExeTime值,记为表示stE执行阶段中位于之前的网络流的相对起始时间;
是以工作仿真节点个数B为维度的流量大小矩阵;所述中的任意一元素,记为所述表示stE执行阶段中发送节点Mb向接收节点MB传输的流量大小;
当应用执行的所有阶段完成后,所有的网络流组信息也都全部生成,网络流组信息集为COFLOWS={C1,C2,…,Ca,…,CA},网络流组信息集就是本模块的输出;
网络负载数据生成子模块(14)将网络流组信息COFLOWS={C1,C2,…,Ca,…,CA}和工作仿真节点信息EM={M1,M2,…,Mb,…,MB}打包为网络负载数据,记为Load,且Load={B,A,COFLOWS},作为负载生成模块的输出。
本发明基于容器虚拟化技术和消息驱动机制的面向Spark计算框架网络传输过程的仿真方法的优点在于:
①本发明仿真系统对Spark应用程序日志分析,获取网络流信息抽象;并以每一执行阶段得到的一条网络流组作用到工作仿真节点上,以此进行网络仿真传输。
②本发明仿真系统以图3所示的时序进行驱动仿真节点协调工作仿真节点的网络流组传输,有利于仿真出物理环境下的Spark网络传输情况,并可视化网络的仿真结果。
③本发明仿真系统采用容器虚拟化技术建立Spark计算集群仿真节点,仿真过程传输真实网络数据包,因此能够更好地体现实验方案在真实环境下的效果。
④本发明仿真系统采用消息驱动的方式进行仿真网络流量传输,与Spark计算框架采用相同的消息控制机制,因此仿真网络传输过程更符合真实Spark应用场景。
附图说明
图1是Spark计算框架的部署框图。
图1A是Spark计算框架中的运行日志。
图2是本发明的面向Spark计算框架的网络传输过程的网络流量仿真系统模块关系图。
图3是网络传输过程仿真的时序图。
图4是集群网络传输结果图。
图5是仿真网络传输结果图。
具体实施方式
下面将结合附图和实施例对本发明做进一步的详细说明。
在本发明中,在Spark计算框架的网络传输过程的网络流量仿真中存在有多个工作仿真节点,简称为工作仿真节点集EM,且EM={M1,M2,M3,…,Mb,…,MB}。
M1表示第一个工作仿真节点。
M2表示第二个工作仿真节点。
M3表示第三个工作仿真节点。
Mb表示第b个工作仿真节点,为了普识性说明,Mb也称为任意一个工作仿真节点,b表示工作仿真节点的标识号,b∈B。
MB表示最后一个工作仿真节点,B表示工作仿真节点的总数。
在本发明中,Spark计算框架中仅有一个驱动仿真节点,记为EmuDriver。
在本发明中,在Spark计算框架的网络传输过程的网络流量仿真中存在有多个网络流组,简称为网络流组信息集COFLOWS,且COFLOWS={C1,C2,…,Ca,…,CA}。
C1表示第一条网络流组信息。
C2表示第二条网络流组信息。
Ca表示第a条网络流组信息,为了普识性说明,Ca也称为任意一条网络流组信息,a表示网络流组的标识号,a∈A。
CA表示最后一条网络流组信息,A表示网络流组信息的总条数。
如图2所示,本发明的一种面向Spark计算框架的网络传输过程的网络流量仿真系统,该网络流量仿真系统包括有负载生成模块1、网络拓扑配置模块2、可视化模块3、调度模块4和数据跟踪模块5。图中,调度模块4和数据跟踪模块5分别会在工作仿真节点和驱动仿真节点上。工作仿真节点对应图1中的Worker节点;驱动仿真节点对应图1中的驱动程序。
所述调度模块4由工作节点仿真同步协调器41、网络流组调度代理模块42、仿真同步协调器43和网络流组调度器44构成。
所述数据跟踪模块5由数据发送模块51、数据接收模块52和数据发送跟踪器53构成。
负载生成模块1由真实Spark网络传输日志输入单元11、网络流组抽象提取单元12、建立网络流组生成模型13和网络负载数据生成单元14构成。
负载生成模块1
参见图2、图3所示,负载生成模块1第一方面读取Spark计算框架中的运行日志(如图1A所示);第二方面基于网络流组(coflow)对所述运行日志进行网络流(flow)抽象的提取,得到网络负载数据。所述网络负载数据是指包括有工作仿真节点集EM和需要仿真的网络流组信息集COFLOWS。为了方便说明,网络负载数据记为Load,且Load={B,A,COFLOWS}。
参见图2、图3所示,负载生成模块1根据输入的实际Spark计算框架的运行日志,通过网络流的抽象提取,建立网络通信回放仿真模型,生成网络传输过程的网络负载数据Load;根据负载生成的过程,负载生成模块分为真实Spark网络传输日志输入单元11、网络流组抽象提取单元12、建立网络流组生成模型13和网络负载数据生成单元14四个子模块。
真实Spark网络传输日志输入单元11
真实Spark网络传输日志输入单元11用于接收从Spark日志服务器输出的日志(Log),并将日志(Log)存储为txt格式文件。
在本发明中,日志(Log)中包括有任务的执行时间、传输流量、执行阶段编号等信息。
网络流组提取单元12
参见图2所示,网络流组提取单元12第一方面从真实Spark网络传输日志输入单元11中提出出日志(Log);第二方面从日志(Log)中过滤出应用(application)网络传输相关的条目(Item),从所述条目(Item)中读取、解析和存储描述Spark应用(application)执行过程中的网络流flow,所述网络流flow是以计算时间ExeTime和网络传输量RealFlow来计量的。Spark应用(application)执行过程中存在有多个执行阶段ST={st1,st2,…,ste,…,stE},任意一执行阶段ste存在有多条网络流flow。
st1为Spark应用(application)执行过程中第一个执行阶段。
st2为Spark应用(application)执行过程中第二个执行阶段。
ste为Spark应用(application)执行过程中第e个执行阶段。e为执行阶段的标识号,为了普识性说明,ste也称为任意一个执行阶段。
stE为Spark应用(application)执行过程中最后一个执行阶段。E为执行阶段的总数。
表1基于st1的网络流信息表
表2基于st2的网络流信息表
表3基于ste的网络流信息表
表4基于stE的网络流信息表
在本发明中,网络流信息表是一个四列多行的表格形式,是用来存放Spark网络传输日志携带信息的。计算时间ExeTime的单位为毫秒,网络传输量RealFlow的单位为字节数。
表示属于执行阶段ste的第一条网络流。所述对应的计算时间ExeTime值,记为所述对应的网络传输量RealFlow值,记为
表示属于执行阶段ste的第二条网络流。所述对应的计算时间ExeTime值,记为所述对应的网络传输量RealFlow值,记为
表示属于执行阶段ste的第d条网络流。d为属于执行阶段ste的网络流的标识号,为了普识性说明,也称为属于执行阶段ste的任意一条网络流。所述对应的计算时间ExeTime值,记为所述对应的网络传输量RealFlow值,记为
表示属于执行阶段ste的最后一条网络流。D为属于执行阶段ste的网络流的总条数。所述对应的计算时间ExeTime值,记为所述对应的网络传输量RealFlow值,记为
第三方面,将每个阶段的ExeTime和RealFlow输出给建立网络负载模型13。
在本发明中,在相同执行阶段一组具有相同应用层次意义的网络流组成网络流组(coflow)。例如Hadoop MapReduce中数据混洗阶段的所有网络流,Spark数据混洗过程中拉取数据时的所有网络流,在这些场景下,只有所有网络流完成后,应用(application)的运行过程才会向前推进。对一个Spark应用,执行过程分为多个阶段,每个阶段会有许多个任务(task),对一个阶段内的所有网络传输为一个网络流组(coflow),只有一个阶段的网络传输完成后,才能进行下一个阶段的网络数据传输。
建立网络流组生成模型13
在本发明中,建立网络流组生成模型13的建模过程如下:
步骤131,设置工作仿真节目的工作时间长度;
在本发明中,对于任意一个工作仿真节点都维持有一个工作时间长度JobTime,在最初始化时,工作时间长度JobTime赋值0。
第一个工作仿真节点M1的工作时间长度,记为
第二个工作仿真节点M2的工作时间长度,记为
任意一个工作仿真节点Mb的工作时间长度,记为
最后一个工作仿真节点MB的工作时间长度,记为
步骤132,选取工作时间长度最小的工作仿真节点作为接收节点;
对步骤131中的工作时间长度进行从小至大的排序,得到最小的工作时间长度,记为JobTime;然后将JobTime对应的工作仿真节点作为当前网络传输的接收节点。其余工作时间长度对应的工作仿真节点作为当前网络传输的发送节点。
例如,工作时间长度的从小至大的排序为为JobTime。所述对应的工作仿真节点是Mb,所述工作仿真节点Mb将作为当前网络传输的接收节点。而对应的工作仿真节点M1、M2、MB作为当前网络传输的发送节点。
步骤133,获取执行阶段st1的RelativeStartTime和FLOWS,并组成基于执行阶段st1的网络流组C1
在本发明中,依据st1的网络流信息并结合最小的工作时间长度、以及发送节点与接收节点之间的流传输大小,得到属于执行阶段st1的网络流组C1。所述其中将赋值给 赋值给
表示属于网络流组C1的相对起始时间。的单位为秒。
表示属于网络流组C1的流传输量。的单位为字节数。
表5基于st1的网络流组获取
表示st1执行阶段中的相对起始时间,即将赋值给
表示st1执行阶段中的相对起始时间,即将赋值给
表示st1执行阶段中的相对起始时间,即将赋值给表示st1执行阶段中位于之前的网络流的相对起始时间。
表示st1执行阶段中的相对起始时间,即将赋值给表示属于执行阶段st1的最后一条网络流;D为属于执行阶段st1的网络流的总条数;所述对应的计算时间ExeTime值,记为表示st1执行阶段中位于之前的网络流的相对起始时间。
是以工作仿真节点个数B为维度的流量大小矩阵。所述中的任意一元素是在st1执行阶段中发送节点Mb向接收节点MB传输的流量大小。
为属于执行阶段st1的第一条网络流对应的网络传输量RealFlow值。
是以工作仿真节点个数B为维度的流量大小矩阵。所述中的任意一元素是在st1执行阶段中发送节点Mb向接收节点MB传输的流量大小。
为属于执行阶段st1的第二条网络流对应的网络传输量RealFlow值。
是以工作仿真节点个数B为维度的流量大小矩阵。所述中的任意一元素是在st1执行阶段中发送节点Mb向接收节点MB传输的流量大小。
为属于执行阶段st1的第d条网络流对应的网络传输量RealFlow值。
是以工作仿真节点个数B为维度的流量大小矩阵。所述中的任意一元素,记为所述表示st1执行阶段中发送节点Mb向接收节点MB传输的流量大小。
为属于执行阶段st1的最后一条网络流对应的网络传输量RealFlow值。
步骤134,获取执行阶段st2的RelativeStartTime和FLOWS,并组成基于执行阶段st2的网络流组C2
在本发明中,依据st2的网络流信息并结合最小的工作时间长度、以及发送节点与接收节点之间的流传输大小,得到属于执行阶段st2的网络流组C2。所述其中将赋值给 赋值给
表示属于网络流组C2的相对起始时间。的单位为秒。
表示属于网络流组C2的流传输量。的单位为字节数。
表6基于st2的网络流组获取
表示st2执行阶段中的相对起始时间,即 表示属于执行阶段st2的第一条网络流;所述对应的计算时间ExeTime值,记为JobTime为最小的工作时间长度。
表示st2执行阶段中的相对起始时间,即将赋值给表示属于执行阶段st2的最后一条网络流;所述对应的计算时间ExeTime值,记为表示st2执行阶段中位于之前的网络流的相对起始时间。
是以工作仿真节点个数B为维度的流量大小矩阵。所述中的任意一元素,记为所述表示st2执行阶段中发送节点Mb向接收节点MB传输的流量大小。
步骤135,获取执行阶段ste的RelativeStartTime和FLOWS,并组成基于执行阶段ste的网络流组Ca
在本发明中,依据ste的网络流信息并结合最小的工作时间长度、以及发送节点与接收节点之间的流传输大小,得到属于执行阶段ste的网络流组Ca。所述其中将赋值给 赋值给
表示属于网络流组Ca的相对起始时间。的单位为秒。
表示属于网络流组Ca的流传输量。的单位为字节数。
表7基于ste的网络流组获取
表示ste执行阶段中的相对起始时间,即 表示属于执行阶段ste的第一条网络流;所述对应的计算时间ExeTime值,记为JobTime为最小的工作时间长度。
表示ste执行阶段中的相对起始时间,即将赋值给表示属于执行阶段ste的最后一条网络流;所述对应的计算时间ExeTime值,记为表示ste执行阶段中位于之前的网络流的相对起始时间。
是以工作仿真节点个数B为维度的流量大小矩阵。所述中的任意一元素,记为所述表示ste执行阶段中发送节点Mb向接收节点MB传输的流量大小。
步骤136,获取执行阶段stE的RelativeStartTime和FLOWS,并组成基于执行阶段stE的网络流组CA
在本发明中,依据stE的网络流信息并结合最小的工作时间长度、以及发送节点与接收节点之间的流传输大小,得到属于执行阶段stE的网络流组CA。所述其中将赋值给 赋值给
表示属于网络流组CA的相对起始时间。的单位为秒。
表示属于网络流组CA的流传输量。的单位为字节数。
表8基于stE的网络流组获取
表示stE执行阶段中的相对起始时间,即 表示属于执行阶段stE的第一条网络流;所述对应的计算时间ExeTime值,记为JobTime为最小的工作时间长度。
表示stE执行阶段中的相对起始时间,即将赋值给表示属于执行阶段stE的最后一条网络流;所述对应的计算时间ExeTime值,记为表示stE执行阶段中位于之前的网络流的相对起始时间。
是以工作仿真节点个数B为维度的流量大小矩阵。所述中的任意一元素,记为所述表示stE执行阶段中发送节点Mb向接收节点MB传输的流量大小。
在本发明中,当应用执行的所有阶段完成后,所有的网络流组信息也都全部生成,网络流组信息集为COFLOWS={C1,C2,…,Ca,…,CA},网络流组信息集就是本模块的输出。
网络负载数据生成单元14
参见图2所示,网络负载数据生成子模块14将网络流组信息COFLOWS={C1,C2,…,Ca,…,CA}和工作仿真节点信息EM={M1,M2,…,Mb,…,MB}打包为网络负载数据,记为Load,且Load={B,A,COFLOWS},作为负载生成模块的输出。
网络拓扑配置模块2
参见图2所示,网络拓扑配置模块2依据仿真网络节点和链路信息生成仿真网络的网络拓扑描述数据Topo。仿真网络节点包括有工作仿真节点、驱动仿真节点和交换机。
在本发明中,网络拓扑描述数据采用集合形式表示为Topo={EmuDriver,EM,SWITCHS,LINKS};
EmuDriver表示驱动仿真节点。
EM表示工作仿真节点集合,且EM={M1,M2,…,Mb,…,MB}。
SWITCHS表示交换机节点的集合,且SWITCHS={Switch1,Switch2,…,Switchs},Switch1表示第一个交换机节点;Switch2表示第二个交换机节点;Switchs表示最后一个交换机节点,为了普识性说明,以Switchs表示任意一个交换机节点,下角标s表示交换机的标识号。
LINKS表示仿真网络的网络拓扑结构中的网络链路的集合。
在本发明中,生成的仿真网络的网络拓扑结构中包含有工作仿真节点、驱动仿真节点和交换机,任意一个网络流组信息Ca从发送节点至接收节点的传输路径存在有多条网络链路。
可视化模块3
参见图2所示,在本发明中,可视化模块3第一方面能够在数据仿真传输过程中对仿真网络中的实时网络状态,通过sFlow工具进行网络数据采样并可视化展示;第二方面能够在数据仿真传输过程中对仿真网络中的各网络流组COFLOWS={C1,C2,…,Ca,…,CA}的实时传输状态,通过Web页面进行可视化展示;第三方面能够在数据仿真传输完成后,对各网络流组COFLOWS={C1,C2,…,Ca,…,CA}的完成时间进行可视化展示。
可视化模块3用以直观地提供给用户(user)视屏信息的展示,同时也能为用户(user)提供评估网络优化方案的效果展示。
sFlow软件是由InMon、HP和FoundryNetworks于2001年联合开发的一种网络监测工具,它采用数据流随机采样技术,可提供完整的第二层到第四层,甚至全网络范围内的网络流量(network traffic)信息,可以适应超大网络流量(如大于10Gbit/s)环境下的流量分析,让用户详细、实时地分析网络传输流的性能、趋势和存在的问题。
调度模块4
参见图2、图3所示,在本发明中,调度模块4由工作节点仿真同步协调器41、网络流组调度代理模块42、仿真同步协调器43和网络流组调度器44构成。
为了方便说明,对于EM={M1,M2,…,Mb,…,MB}中选取一个工作仿真节点Mb作为接收节点,记为M,其余工作仿真节点作为发送节点,记为
在本发明中,各个子模块之间通过Akka-Actor消息通信,Akka-Actor消息通信参考2018年4月第1版《Akka实战快速构建高可用分布式应用》,杜云飞著,第3、4、16-18页的内容。
工作节点仿真同步协调器41
参见图2、图3所示,在本发明中,工作节点仿真同步协调器41通过Akka-Actor消息通信和驱动仿真节点的仿真同步协调器43和数据发送跟踪器53进行通信,完成发送工作仿真节点和接收工作仿真节点进行网络数据传输前的信息同步。
工作节点仿真同步协调器41主要过程包括三个部分,其中前两个部分中工作节点仿真同步协调器41和驱动仿真节点的仿真同步协调器43进行交互,最后一个部分中工作节点仿真同步协调器41和驱动仿真节点的数据发送跟踪器53进行交互,具体为:
第一部分,对于EM={M1,M2,…,Mb,…,MB}中的所有工作仿真节点通过Akka-Actor消息通信向驱动仿真节点的仿真同步协调器43发送工作节点注册消息进行注册,其中工作节点注册消息MSEM包含所述工作仿真节点的标识号b;如果接收到驱动仿真节点仿真同步协调器43的完成工作节点注册消息则注册完成,否则,表示所述工作仿真节点注册失败。
例如,工作仿真节点M1的发送工作节点注册消息完成工作节点注册消息
例如,工作仿真节点M2的发送工作节点注册消息完成工作节点注册消息
例如,工作仿真节点Mb的发送工作节点注册消息完成工作节点注册消息
例如,工作仿真节点MB的发送工作节点注册消息完成工作节点注册消息
第二部分,从驱动仿真节点的仿真同步协调器43接收仿真开始时间Time注册_EM+5秒并记录下来,对于COFLOWS={C1,C2,…,Ca,…,CA}中任意一条网络流组,即Ca,根据网络流组Ca中的网络流组相对起始时间计算Ca的仿真实际开始时间为
的本地时钟Timelocal到达时,通过Akka-Actor消息通信向驱动仿真节点EmuDriver发送状态更新消息其中状态更新消息包含需要传输的网络流组标识号a和接收节点M
第三部分,当工作节点仿真同步协调器41从驱动仿真节点的数据发送跟踪器53接收到任务启动消息从任务启动消息中提取到网络流组的标识号a,然后工作节点仿真同步协调器41根据本地存储的网络流组信息Ca,计算出网络流组Ca的发送工作仿真节点信息通过Akka-Actor消息通信向驱动仿真节点EmuDriver发送获取输出数据状态消息获取输出数据状态消息中包含有发送工作仿真节点信息和网络流组的标号a。
网络流组调度代理模块42
参见图2所示,在本发明中,工作节点网络流组调度代理模块42通过Akka-Actor消息通信和驱动仿真节点的网络流组调度器44进行交互,工作节点网络流组调度代理模块42从网络流组调度器44获取网络流组的数据传输速率,从而为各网络流组分配工作仿真节点的网络传输带宽,具体过程为:
对于接收节点M当从驱动仿真节点的网络流组调度器44接收到网络速率更新消息后,其中Ca为网络流组信息,工作节点网络流组调度代理模块42会解析网络速率更新消息从中提取网络传输速率工作节点网络流组调度代理模块42根据网络传输速率frb,a,设置M向发送节点发送数据请求频率和数据请求大小。
仿真同步协调器43
参见图2、图3所示,本发明中,仿真同步协议器43通过Akka-Actor消息通信与工作仿真节点EM={M1,M2,…,Mb,…,MB}的通信,完成工作仿真节点信息的同步,同时也向各个工作仿真节点EM={M1,M2,…,Mb,…,MB}发送仿真开始时间Time注册_EM+5秒。
仿真同步协调器43的主要任务包括:
第一方面,从Load={B,A,COFLOWS}中分别提取出网络流组信息集COFLOWS={C1,C2,…,Ca,…,CA}和工作仿真节点集EM={M1,M2,M3,…,Mb,…,MB};
第二方面,每一个工作仿真节点EM={M1,M2,M3,…,Mb,…,MB}通过Akka-Actor消息通信向驱动仿真节点EmuDriver发送工作节点注册消息
第三方面,驱动仿真节点EmuDriver中的仿真同步协调器43记录下每一个工作节点注册消息所对应的工作仿真节点;并通过Akka-Actor消息通信向所述工作仿真节点返回完成工作节点注册消息
第四方面,当所有EM={M1,M2,M3,…,Mb,…,MB}完成向驱动仿真节点EmuDriver的注册后,记录下最后一个注册的工作仿真节点的注册完成时间,记为Time注册_EM;然后仿真同步协调器43向各个工作仿真节点发送仿真开始时间Time注册_EM+5秒。
在本发明中,若驱动仿真节点EmuDriver没有收到中的任意一个,则仿真同步协调器43中不会记录该工作仿真节点,也不会向所述工作仿真节点发送仿真开始时间Time注册_EM+5秒。
网络流组调度器44
参见图2所示,在本发明中,数据仿真传输过程中,用户可在驱动仿真节点的网络流组调度器实现需要测试的网络流组调度算法,根据各网络流组信息、各工作仿真节点网络接口带宽来制定网络流调度策略,并通过各工作仿真节点的网络流组调度代理实施调度策略;根据用户输入的调度算法,网络流组调度器生成在仿真网络中实施的调度策略,记为FLOWRATES,所述FLOWRATES的矩阵形式为:下角标B为工作仿真节点的总数,下角标A为网络流组信息的总条数。
frb,a表示工作仿真节点Mb调度网络流组Ca的网络传输速率。
frB,A表示工作仿真节点MB调度网络流组CA的网络传输速率。
在本发明中,和网络流组调度器44交互的模块包括驱动仿真节点的数据发送跟踪器53和工作仿真节点的网络流组调度代理模块42,具体实现为:对于COFLOWS={C1,C2,…,Ca,…,CA}中任意一条网络流组,即Ca,当数据发送跟踪器53发送输出数据状态消息时,触发驱动仿真节点的网络流组调度器44会向自身发送请求调度消息当驱动仿真节点的网络流组调度器44接收到请求调度消息后,根据网络流组调度器44本地存储的网络传输速率frb,a,通过Akka-Actor消息通信以网络速率更新消息发送给Ca的M的网络流组调度代理模块42。
数据跟踪模块5
参见图2、图3所示,在本发明中数据跟踪模块5由数据发送模块51、数据接收模块52和数据发送跟踪器53构成。
数据发送模块51
在本发明中,工作节点数据发送模块51通过Akka-Actor消息通信与数据接收模块52进行交互,发送节点根据从数据接收模块52获取流量传输信息,本地模拟生成给定大小的流量,发送给接收节点M。具体为:
第一,对于中的任意一个节点,当从M接收到获取数据请求消息后,从中解析出网络流传输量网络流传输量中包含发送工作仿真节点向接收工作仿真节点的流量信息;
第二,对于中的任意一个节点根据网络流传输量中的流量信息,生成给定大小的空白数据作为网络流量负载,并利用套接字向接收节点M发送流量,进行模拟数据的发送,从而完成当前网络流组Ca的网络流量传输。
数据接收模块52
在本发明中,接收节点M的数据接收模块52通过Akka-Actor消息通信分别和驱动仿真节点EmuDriver的数据发送跟踪器53以及发送工节点的发送节点数据发送模块51进行交互,数据接收模块52的作用是根据从驱动仿真节点EmuDriver获取的流量传输数据信息,根据本地设置的数据传输速率,向发送节点周期性地进行数据请求,直到流量传输完成。具体为:
第一,对于COFLOWS={C1,C2,…,Ca,…,CA}中的任意一条网络流组,例如网络流组Ca,当接收节点M从驱动仿真节点的数据发送跟踪器53接收到输出数据状态消息该输出数据状态消息包含了Ca的发送节点的数据信息包含了所有发送工作仿真节点到接收节点M的流传输量;
第二,对于接收节点M,按照工作节点网络流组调度代理模块设置的网络传输速率frb,a,通过Akka-Actor消息通信周期性地向发送节点发送获取数据请求消息其中获取数据请求消息包含接收节点M和网络流传输量的信息。
数据发送跟踪器53
在本发明中,数据发送跟踪器53属于驱动仿真节点,用于协调EM={M1,M2,…,Mb,…,MB}之间的网络传输,数据发送跟踪器53通过Akka-Actor消息通信和工作仿真节点消息通信,获取并存储网络流组的传输信息,通过Akka-Actor消息通信指导EM={M1,M2,…,Mb,…,MB}的网络传输过程。
数据发送跟踪器53通过Akka-Actor消息通信和工作仿真节点的仿真同步协调器41进行交互,主要包括两方面的功能:
第一,对于COFLOWS={C1,C2,…,Ca,…,CA}中的任意一条网络流组,例如网络流组Ca,驱动仿真节点EmuDriver的数据发送跟踪器53记录来自发送节点有关网络流组Ca的状态更新消息其中状态更新消息包含需要传输的网络流组标识号a和接收节点M;当接收到Ca的所有状态更新消息后,驱动仿真节点EmuDriver根据本地存储、计算并存储网络流组Ca的流量传输信息并通过Akka-Actor消息通信向Ca的M发送任务启动消息
第二,当驱动仿真节点EmuDriver的数据发送跟踪器53通过Akka-Actor消息通信从M接收到获取输出数据状态消息数据发送跟踪器53得到Ca集合,在本地存储获取Ca的发送节点的网络流量传输信息通过Akka-Actor消息通信向Ca的M发送输出数据状态消息所述包含了Ca
实施例1
仿真环境:本实例所使用的Spark大数据计算框架环境部署于一个4物理主机的网络集群,4台主机的硬件配置相同。主机CPU型号为Intel Core i3-8100,主频为3.6GHz,每个处理器有4个核心,每个核心有32KB的的一级数据缓存、32KB的一级指令缓存、256KB的二级缓存,4个核心共用一个6MB的三级缓存。每个节点拥有8GB的DDR4内存,1TB的机械硬盘空间。四个节点之间通过千兆交换机互联。仿真环境硬件配置为:
在软件配置方面,4个节点的主机名被设置为net1,net2,net3,net4,每个节点都使用了64位Ubuntu 16.04操作系统,为了支持Intel Core i3-8100处理器,linux内核采用了较高版本的4.16.2,JDK版本为1.8.0,Scala版本为2.11.6,每个节点都安装了ApacheHadoop 2.9.0以及Apache Spark 2.3.2,net4节点作为集群的主节点,运行HDFS的NameNode,集群管理器的ResourceManager以及Spark的Master和Driver,其余节点运行HDFS的DataNode,集群管理器的NodeManager以及Spark的Worker和Executor。本实验采用Hibench大数据基准测试工具提供的Spark应用程序以及生成输入数据。
仿真工具运行在net4节点上,相应的,net4安装了Mininet 2.3.0,Docker18.03.1以及sFlow-RT。
以下参见图2、图3,给出一个本发明的实施例,说明本发明中Spark计算框架网络传输过程仿真的正确性,具体实施步骤如下:
步骤A:在实际物理主机组成的网络集群上部署Spark大数据计算框架,使用Hibench大数据基准测试工具提供的Spark应用程序PageRank的运行日志作为负载生成输入,用户需要提供Spark应用程序的运行日志以及实验网络拓扑设计;
步骤B:负载生成模块1生成以网络流组信息为内容的网络负载数据Load={B,A,COFLOWS},其中,B表示当前次网络仿真实验中Spark工作仿真节点的个数,A表示当前次仿真实验中要仿真的网络流组的总条数,COFLOWS={C1,C2,…,Ca,…,CA},表示当前次仿真实验中需要仿真的网络流组的信息;
步骤C:用户通过网络拓扑配置模块2录入网络拓扑信息,生成网络拓扑描述数据Topo;
步骤D:Spark计算框架数据传输仿真的调度模块4接收网络负载数据Load,从Load中提取出工作仿真节点数量B,启动驱动仿真节点和所有B个工作仿真节点,同时,虚拟网络软件接收网络拓扑描述数据Topo,建立对应的仿真网络,网络传输过程仿真开始;
步骤E:驱动仿真节点的仿真同步协调器43,从Load中提取出网络流组信息COFLOWS,之后各工作仿真节点与驱动仿真节点完成注册过程,直到最后一个工作仿真节点完成注册后,驱动仿真节点通知各工作仿真节点各网络流组的仿真开始时间为Time注册_EM+5秒,其中Time注册_EM为最后一个工作仿真节点注册完成时间;
步骤F:当发送节点的本地时钟到达仿真实际开始时间时,通过驱动仿真节点通知接收节点任务开始启动,接收节点从驱动仿真节点处获取发送节点的数据状态信息,从而向发送节点发送数据请求,发送节点接收到数据请求后,开始向接收节点发送流量数据;
步骤G:用户启动调度算法,根据自定义的网络流调度策略,为各工作仿真节点网络接口分配带宽。当驱动仿真节点向接收节点发送网络流组的流传输量后,驱动仿真节点会启动一次网络流调度,同时向接收节点发送该节点参与传输网络流组的调度策略信息,即发送节点到该接收节点的数据传输速率,达到调节步骤F中传输数据速率的效果;
步骤H:重复步骤F和步骤G,直至所有网络流组COFLOWS传输完成;
步骤I:数据仿真传输完成后,各网络流组的完成时间数据会在可视化模块中展示,以供用户评估网络优化方案的效果。
如图4和图5分别是集群网络传输结果图和网络仿真传输结果图,集群网络传输结果图中显示在时间(单位为10毫秒)0到1000之间有少量的流量数据传输,时间从2000到4000之间在五个时间点上有大量流量数据传输,网络仿真传输结果图中尽管显示出从时间0到1000之间没有流量数据传输,但是从时间2000到4000之间有五个时间点有大量数据传输,并且这五个时间点和集群网络传输结果中的五个时间点吻合,因此,可以看出本发明仿真系统能较为准确的仿真Spark计算框架网络传输过程。

Claims (5)

1.一种基于Spark计算框架的网络传输过程的网络流量仿真系统,该网络流量 仿真系统包括有网络拓扑配置模块(2)、可视化模块(3)、调度模块(4)和数据跟踪模块(5);
其特征在于:该网络流量仿真系统还包括有负载生成模块(1);
调度模块(4)和数据跟踪模块(5)分别会在工作仿真节点和驱动仿真节点上;工作仿真节点对应Spark计算框架的Worker节点;驱动仿真节点对应Spark计算框架的驱动程序;
负载生成模块(1)由真实Spark网络传输日志输入单元(11)、网络流组提取单元(12)、建立网络流组生成模型(13)和网络负载数据生成单元(14)构成;
真实Spark网络传输日志输入单元(11)用于接收从Spark日志服务器输出的日志,并将日志存储为txt格式文件;
网络流组提取单元(12)第一方面从真实Spark网络传输日志输入单元(11)中提取出日志(Log);第二方面从日志(Log)中过滤出应用(application)网络传输相关的条目(Item),从所述条目(Item)中读取、解析和存储描述Spark应用(application)执行过程中的网络流flow,所述网络流flow是以计算时间ExeTime和网络传输量RealFlow来计量的;Spark应用(application)执行过程中存在有多个执行阶段,记为执行阶段集合ST={st1,st2,...,ste,...,stE},任意一执行阶段ste存在有多条网络流flow;
st1为Spark应用(application)执行过程中第一个执行阶段;
st2为Spark应用(application)执行过程中第二个执行阶段;
ste为Spark应用(application)执行过程中第e个执行阶段;e为执行阶段的标识号;
stE为Spark应用(application)执行过程中最后一个执行阶段;E为执行阶段的总数;
基于st1的网络流信息表中包括有执行阶段、网络流、计算时间和网络传输量内容;
基于st2的网络流信息表中包括有执行阶段、网络流、计算时间和网络传输量内容;
基于ste的网络流信息表包括有执行阶段、网络流、计算时间和网络传输量内容;
基于stE的网络流信息表包括有执行阶段、网络流、计算时间和网络传输量内容;
第三方面,将每个阶段的计算时间ExeTime和网络传输量RealFlow输出给建立网络流组生成模型(13);
建立网络流组生成模型(13)的建模过程如下:
步骤131,设置工作仿真节目的工作时间长度;
对于任意一个工作仿真节点都维持有一个工作时间长度JobTime,在最初始化时,工作时间长度JobTime赋值0;
第一个工作仿真节点M1的工作时间长度,记为
第二个工作仿真节点M2的工作时间长度,记为
任意一个工作仿真节点Mb的工作时间长度,记为
最后一个工作仿真节点MB的工作时间长度,记为
步骤132,选取工作时间长度最小的工作仿真节点作为接收节点;
对步骤131中的工作时间长度进行从小至大的排序,得到最小的工作时间长度,记为JobTime;然后将JobTime对应的工作仿真节点作为当前网络传输的接收节点;其余工作时间长度对应的工作仿真节点作为当前网络传输的发送节点;
步骤133,获取执行阶段st1的相对起始时间RelativeStartTime和流传输量FLOWS,并组成基于执行阶段st1的网络流组C1
依据执行阶段st1的网络流信息并结合最小的工作时间长度、以及发送节点与接收节点之间的流传输大小,得到属于执行阶段st1的网络流组C1;所述其中将赋值给 赋值给
表示属于网络流组C1的相对起始时间;的单位为秒;
表示属于网络流组C1的流传输量;的单位为字节数;
表示st1执行阶段中的相对起始时间,即将赋值给 表示属于执行阶段st1的最后一条网络流;所述对应的计算时间ExeTime值,记为 表示st1执行阶段中位于之前的网络流的相对起始时间;
基于st1的网络流组获取的内容包括有执行阶段、网络流、相对起始时间RelativeStartTime和流传输量FLOWS;
是以工作仿真节点个数B为维度的流量大小矩阵;所述中的任意一元素是在st1执行阶段中发送节点Mb向接收节点MB传输的流量大小;
为属于执行阶段st1的第一条网络流对应的网络传输量RealFlow值;是以工作仿真节点个数B为维度的流量大小矩阵;所述中的任意一元素是在st1执行阶段中发送节点Mb向接收节点MB传输的流量大小;
为属于执行阶段st1的第二条网络流对应的网络传输量RealFlow值;
是以工作仿真节点个数B为维度的流量大小矩阵;所述中的任意一元素是在st1执行阶段中发送节点Mb向接收节点MB传输的流量大小;
为属于执行阶段st1的第d条网络流对应的网络传输量RealFlow值;
是以工作仿真节点个数B为维度的流量大小矩阵;所述中的任意一元素,记为所述表示st1执行阶段中发送节点Mb向接收节点MB传输的流量大小;
为属于执行阶段st1的最后一条网络流对应的网络传输量RealFlow值;
步骤134,获取执行阶段st2的相对起始时间RelativeStartTime和流传输量FLOWS,并组成基于执行阶段st2的网络流组C2
依据执行阶段st2的网络流信息并结合最小的工作时间长度、以及发送节点与接收节点之间的流传输大小,得到属于执行阶段st2的网络流组C2;所述其中将赋值给 赋值给
表示属于网络流组C2的相对起始时间;的单位为秒;
表示属于网络流组C2的流传输量;的单位为字节数;
基于st2的网络流组获取的内容包括有执行阶段、网络流、RelativeStartTime和FLOWS;
表示st2执行阶段中的相对起始时间,即 表示属于执行阶段st2的第一条网络流;所述对应的计算时间ExeTime值,记为JobTime为最小的工作时间长度;
表示st2执行阶段中的相对起始时间,即将赋值给 表示属于执行阶段st2的最后一条网络流;所述对应的计算时间ExeTime值,记为 表示st2执行阶段中位于之前的网络流的相对起始时间;
是以工作仿真节点个数B为维度的流量大小矩阵;所述中的任意一元素,记为所述表示st2执行阶段中发送节点Mb向接收节点MB传输的流量大小;
步骤135,获取执行阶段ste的RelativeStartTime和FLOWS,并组成基于执行阶段ste的网络流组Ca
依据执行阶段ste的网络流信息并结合最小的工作时间长度、以及发送节点与接收节点之间的流传输大小,得到属于执行阶段ste的网络流组Ca;所述其中将赋值给 赋值给
表示属于网络流组Ca的相对起始时间;的单位为秒;
表示属于网络流组Ca的流传输量;的单位为字节数;
基于ste的网络流组获取的内容包括有执行阶段、网络流、RelativeStartTime和FLOWS;
表示ste执行阶段中的相对起始时间,即 表示属于执行阶段ste的第一条网络流;所述对应的计算时间ExeTime值,记为JobTime为最小的工作时间长度;
表示ste执行阶段中的相对起始时间,即将赋值给 表示属于执行阶段ste的最后一条网络流;所述对应的计算时间ExeTime值,记为 表示ste执行阶段中位于之前的网络流的相对起始时间;
是以工作仿真节点个数B为维度的流量大小矩阵;所述中的任意一元素,记为所述表示ste执行阶段中发送节点Mb向接收节点MB传输的流量大小;
步骤136,获取执行阶段stE的RelativeStartTime和FLOWS,并组成基于执行阶段stE的网络流组CA
依据执行阶段stE的网络流信息并结合最小的工作时间长度、以及发送节点与接收节点之间的流传输大小,得到属于执行阶段stE的网络流组CA;所述其中将赋值给 赋值给
表示属于网络流组CA的相对起始时间;的单位为秒;
表示属于网络流组CA的流传输量;的单位为字节数;
基于stE的网络流组获取的内容包括有执行阶段、网络流、RelativeStartTime和FLOWS;
表示stE执行阶段中的相对起始时间,即 表示属于执行阶段stE的第一条网络流;所述对应的计算时间ExeTime值,记为JobTime为最小的工作时间长度;
表示stE执行阶段中的相对起始时间,即将赋值给 表示属于执行阶段stE的最后一条网络流;所述对应的计算时间ExeTime值,记为 表示stE执行阶段中位于之前的网络流的相对起始时间;
是以工作仿真节点个数B为维度的流量大小矩阵;所述中的任意一元素,记为所述表示stE执行阶段中发送节点Mb向接收节点MB传输的流量大小;
当应用执行的所有阶段完成后,所有的网络流组信息也都全部生成,网络流组信息集为COFLOWS={C1,C2,…,Ca,…,CA},网络流组信息集就是本模块的输出;
C1表示第一条网络流组信息;
C2表示第二条网络流组信息;
Ca表示第a条网络流组信息,a表示网络流组的标识号,a∈A;
CA表示最后一条网络流组信息,A表示网络流组信息的总条数;
网络负载数据生成单元(14)将网络流组信息COFLOWS={C1,C2,…,Ca,…,CA}和工作仿真节点集EM={M1,M2,…,Mb,…,MB}打包为网络负载数据,记为Load,且Load={B,A,COFLOWS},作为负载生成模块的输出;
M1表示第一个工作仿真节点;
M2表示第二个工作仿真节点;
M3表示第三个工作仿真节点;
Mb表示第b个工作仿真节点,b表示工作仿真节点的标识号,b∈B;
MB表示最后一个工作仿真节点,B表示工作仿真节点的总数。
2.根据权利要求1所述的基于Spark计算框架的网络传输过程的网络流量仿真系统,其特征在于:网络拓扑配置模块(2)依据仿真网络节点和链路信息生成仿真网络的网络拓扑描述数据Topo;仿真网络节点包括有工作仿真节点、驱动仿真节点和交换机;
网络拓扑描述数据采用集合形式表示为Topo={EmuDriver,EM,SWITCHS,LINKS};
EmuDriver表示驱动仿真节点;
EM表示工作仿真节点集合,且EM={M1,M2,…,Mb,…,MB};
SWITCHS表示交换机节点的集合,且SWITCHS={Switch1,Switch2,…,Switchs},Switch1表示第一个交换机节点;Switch2表示第二个交换机节点;Switchs表示最后一个交换机节点,为了普识性说明,以Switchs表示任意一个交换机节点,下角标s表示交换机的标识号;
LINKS表示仿真网络的网络拓扑结构中的网络链路的集合。
3.根据权利要求1所述的基于Spark计算框架的网络传输过程的网络流量仿真系统,其特征在于:可视化模块(3)第一方面能够在数据仿真传输过程中对仿真网络中的实时网络状态,通过sFlow工具进行网络数据采样并可视化展示;第二方面能够在数据仿真传输过程中对仿真网络中的各网络流组COFLOWS={C1,C2,…,Ca,…,CA}的实时传输状态,通过Web页面进行可视化展示;第三方面能够在数据仿真传输完成后,对各网络流组COFLOWS={C1,C2,…,Ca,…,CA}的完成时间进行可视化展示。
4.根据权利要求1所述的基于Spark计算框架的网络传输过程的网络流量仿真系统,其特征在于:所述调度模块(4)由工作节点仿真同步协调器(41)、网络流组调度代理模块(42)、仿真同步协调器(43)和网络流组调度器(44)构成;
工作节点仿真同步协调器(41)通过Akka-Actor消息通信和驱动仿真节点的仿真同步协调器(43)和数据发送跟踪器(53)进行通信,完成发送工作仿真节点和接收工作仿真节点进行网络数据传输前的信息同步;
工作节点仿真同步协调器(41)主要过程包括三个部分,其中前两个部分中工作节点仿真同步协调器(41)和驱动仿真节点的仿真同步协调器(43)进行交互,最后一个部分中工作节点仿真同步协调器(41)和驱动仿真节点的数据发送跟踪器(53)进行交互,具体为:
第一部分,对于EM={M1,M2,…,Mb,…,MB}中的所有工作仿真节点通过Akka-Actor消息通信向驱动仿真节点的仿真同步协调器(43)发送工作节点注册消息进行注册,其中工作节点注册消息MSEM包含所述工作仿真节点的标识号b;如果接收到驱动仿真节点仿真同步协调器(43)的完成工作节点注册消息则注册完成,否则,表示所述工作仿真节点注册失败;
工作仿真节点M1的发送工作节点注册消息记为完成工作节点注册消息记为
工作仿真节点M2的发送工作节点注册消息记为完成工作节点注册消息记为
工作仿真节点Mb的发送工作节点注册消息记为完成工作节点注册消息记为
工作仿真节点MB的发送工作节点注册消息记为完成工作节点注册消息记为
第二部分,从驱动仿真节点的仿真同步协调器(43)接收仿真开始时间Time注册_EM+5秒并记录下来,对于COFLOWS={C1,C2,…,Ca,…,CA}中任意一条网络流组,即Ca,根据网络流组Ca中的网络流组相对起始时间计算Ca的仿真实际开始时间为
当发送节点的本地时钟Timelocal到达时,通过Akka-Actor消息通信向驱动仿真节点EmuDriver发送状态更新消息其中状态更新消息包含需要传输的网络流组标识号a和接收节点M
第三部分,当工作节点仿真同步协调器(41)从驱动仿真节点的数据发送跟踪器(53)接收到任务启动消息从任务启动消息中提取到网络流组的标识号a,然后工作节点仿真同步协调器41根据本地存储的网络流组信息Ca,计算出网络流组Ca的发送工作仿真节点信息通过Akka-Actor消息通信向驱动仿真节点EmuDriver发送获取输出数据状态消息获取输出数据状态消息中包含有发送工作仿真节点信息和网络流组的标号a;
工作节点网络流组调度代理模块(42)通过Akka-Actor消息通信和驱动仿真节点的网络流组调度器(44)进行交互,工作节点网络流组调度代理模块(42)从网络流组调度器(44)获取网络流组的数据传输速率,从而为各网络流组分配工作仿真节点的网络传输带宽,具体过程为:
对于接收节点M当从驱动仿真节点的网络流组调度器(44)接收到网络速率更新消息后,其中Ca为网络流组信息,工作节点网络流组调度代理模块(42)会解析网络速率更新消息从中提取网络传输速率frb,a,工作节点网络流组调度代理模块(42)根据网络传输速率frb,a,设置M向发送节点发送数据请求频率和数据请求大小;
仿真同步协调器(43)通过Akka-Actor消息通信与工作仿真节点EM={M1,M2,…,Mb,…,MB}的通信,完成工作仿真节点信息的同步,同时也向各个工作仿真节点EM={M1,M2,…,Mb,…,MB}发送仿真开始时间Time注册_EM+5秒;
仿真同步协调器(43)的主要任务包括:
第一方面,从Load={B,A,COFLOWS}中分别提取出网络流组信息集COFLOWS={C1,C2,…,Ca,…,CA}和工作仿真节点集EM={M1,M2,M3,…,Mb,…,MB};
第二方面,每一个工作仿真节点EM={M1,M2,M3,…,Mb,…,MB}通过Akka-Actor消息通信向驱动仿真节点EmuDriver发送工作节点注册消息
第三方面,驱动仿真节点EmuDriver中的仿真同步协调器(43)记录下每一个工作节点注册消息所对应的工作仿真节点;并通过Akka-Actor消息通信向所述工作仿真节点返回完成工作节点注册消息
第四方面,当所有EM={M1,M2,M3,…,Mb,…,MB}完成向驱动仿真节点EmuDriver的注册后,记录下最后一个注册的工作仿真节点的注册完成时间,记为Time注册_EM;然后仿真同步协调器(43)向各个工作仿真节点发送仿真开始时间Time注册_EM+5秒;
若驱动仿真节点EmuDriver没有收到中的任意一个,则仿真同步协调器(43)中不会记录该工作仿真节点,也不会向所述工作仿真节点发送仿真开始时间Time注册_EM+5秒;
和网络流组调度器(44)交互的模块包括驱动仿真节点的数据发送跟踪器(53)和工作仿真节点的网络流组调度代理模块(42),具体实现为:对于COFLOWS={C1,C2,…,Ca,…,CA}中任意一条网络流组,即Ca,当数据发送跟踪器(53)发送输出数据状态消息时,触发驱动仿真节点的网络流组调度器(44)会向自身发送请求调度消息当驱动仿真节点的网络流组调度器(44)接收到请求调度消息后,根据网络流组调度器(44)本地存储的网络传输速率frb,a,通过Akka-Actor消息通信以网络速率更新消息发送给Ca的M的网络流组调度代理模块(42)。
5.根据权利要求1所述的基于Spark计算框架的网络传输过程的网络流量仿真系统,其特征在于:所述数据跟踪模块(5)由数据发送模块(51)、数据接收模块(52)和数据发送跟踪器(53)构成;
工作节点数据发送模块(51)通过Akka-Actor消息通信与数据接收模块(52)进行交互,发送节点根据从数据接收模块(52)获取流量传输信息,本地模拟生成给定大小的流量,发送给接收节点M;具体为:
第一,对于中的任意一个节点,当从M接收到获取数据请求消息后,从中解析出网络流传输量网络流传输量中包含发送工作仿真节点向接收工作仿真节点的流量信息;
第二,对于中的任意一个节点根据网络流传输量中的流量信息,生成给定大小的空白数据作为网络流量负载,并利用套接字向接收节点M发送流量,进行模拟数据的发送,从而完成当前网络流组Ca的网络流量传输;
接收节点M的数据接收模块(52)通过Akka-Actor消息通信分别和驱动仿真节点EmuDriver的数据发送跟踪器(53)以及发送工节点的发送节点数据发送模块(51)进行交互,数据接收模块(52)的作用是根据从驱动仿真节点EmuDriver获取的流量传输数据信息,根据本地设置的数据传输速率,向发送节点周期性地进行数据请求,直到流量传输完成;具体为:
第一,对于COFLOWS={C1,C2,…,Ca,…,CA}中的任意一条网络流组,网络流组Ca,当接收节点M从驱动仿真节点的数据发送跟踪器(53)接收到输出数据状态消息该输出数据状态消息包含了Ca的发送节点的数据信息包含了所有发送工作仿真节点到接收节点M的流传输量;
第二,对于接收节点M,按照工作节点网络流组调度代理模块设置的网络传输速率frb,a,通过Akka-Actor消息通信周期性地向发送节点发送获取数据请求消息其中获取数据请求消息包含接收节点M和网络流传输量的信息;
数据发送跟踪器(53)属于驱动仿真节点,用于协调EM={M1,M2,…,Mb,…,MB}之间的网络传输,数据发送跟踪器(53)通过Akka-Actor消息通信和工作仿真节点消息通信,获取并存储网络流组的传输信息,通过Akka-Actor消息通信指导EM={M1,M2,…,Mb,…,MB}的网络传输过程;
数据发送跟踪器(53)通过Akka-Actor消息通信和工作仿真节点的仿真同步协调器(41)进行交互,主要包括两方面的功能:
第一,对于COFLOWS={C1,C2,…,Ca,…,CA}中的任意一条网络流组,网络流组Ca,驱动仿真节点EmuDriver的数据发送跟踪器(53)记录来自发送节点有关网络流组Ca的状态更新消息其中状态更新消息包含需要传输的网络流组标识号a和接收节点M;当接收到Ca的所有状态更新消息后,驱动仿真节点EmuDriver根据本地存储、计算并存储网络流组Ca的流量传输信息并通过Akka-Actor消息通信向Ca的M发送任务启动消息
第二,当驱动仿真节点EmuDriver的数据发送跟踪器(53)通过Akka-Actor消息通信从M接收到获取输出数据状态消息数据发送跟踪器(53)得到Ca集合,在本地存储获取Ca的发送节点的网络流量传输信息通过Akka-Actor消息通信向Ca的M发送输出数据状态消息所述包含了Ca
CN201910822129.3A 2019-09-02 2019-09-02 基于Spark计算框架的网络传输过程的网络流量仿真系统 Active CN110635943B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910822129.3A CN110635943B (zh) 2019-09-02 2019-09-02 基于Spark计算框架的网络传输过程的网络流量仿真系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910822129.3A CN110635943B (zh) 2019-09-02 2019-09-02 基于Spark计算框架的网络传输过程的网络流量仿真系统

Publications (2)

Publication Number Publication Date
CN110635943A CN110635943A (zh) 2019-12-31
CN110635943B true CN110635943B (zh) 2020-11-06

Family

ID=68969911

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910822129.3A Active CN110635943B (zh) 2019-09-02 2019-09-02 基于Spark计算框架的网络传输过程的网络流量仿真系统

Country Status (1)

Country Link
CN (1) CN110635943B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112860965B (zh) * 2020-12-31 2022-07-19 浙江大学 一种基于日志的网络模拟可视化仿真平台
CN112866036B (zh) * 2021-02-24 2022-03-01 鹏城实验室 云计算平台的网络流量仿真方法、系统及计算机存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103684893A (zh) * 2012-09-04 2014-03-26 清华大学 一种网络仿真分析设备及方法
CN107683597A (zh) * 2015-06-04 2018-02-09 思科技术公司 用于异常检测的网络行为数据收集和分析
CN108234187A (zh) * 2016-12-22 2018-06-29 江南大学 一种面向数据报文转发的高逼真链路仿真方法
CN109088796A (zh) * 2018-09-19 2018-12-25 哈尔滨工业大学 基于网络层析成像技术的网络流量矩阵预测方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9871730B2 (en) * 2014-08-22 2018-01-16 Futurewei Technologies, Inc. Network element configured to operate in an information centric network
CN108123819B (zh) * 2016-11-30 2020-10-16 江南大学 一种虚实网络无缝融合的仿真方法
CN109818786B (zh) * 2019-01-20 2021-11-26 北京工业大学 一种云数据中心应用可感知的分布式多资源组合路径最优选取方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103684893A (zh) * 2012-09-04 2014-03-26 清华大学 一种网络仿真分析设备及方法
CN107683597A (zh) * 2015-06-04 2018-02-09 思科技术公司 用于异常检测的网络行为数据收集和分析
CN108234187A (zh) * 2016-12-22 2018-06-29 江南大学 一种面向数据报文转发的高逼真链路仿真方法
CN109088796A (zh) * 2018-09-19 2018-12-25 哈尔滨工业大学 基于网络层析成像技术的网络流量矩阵预测方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Traffic Flow Prediction With Big Data: A Learning Approach Based on SIS-Complex Networks;Yiming Li, Luming Zhao等;《2017 IEEE 2nd Information Technology, Networking, Electronic and Automation Control Conference (ITNEC)》;20180208;全文 *
遗传算法优化回声状态网络的网络流量预测;田中大,高宪文等;《计算机研究与发展 》;20150515;全文 *

Also Published As

Publication number Publication date
CN110635943A (zh) 2019-12-31

Similar Documents

Publication Publication Date Title
Ahrenholz Comparison of CORE network emulation platforms
CN104580519B (zh) 一种快速部署openstack云计算平台的方法
CN110635943B (zh) 基于Spark计算框架的网络传输过程的网络流量仿真系统
Yan et al. Vt-mininet: Virtual-time-enabled mininet for scalable and accurate software-define network emulation
CN105763570A (zh) 一种基于虚拟化技术的分布式实时网络仿真系统
Denzel et al. A framework for end-to-end simulation of high-performance computing systems
Heller Reproducible network research with high-fidelity emulation
Liu et al. Modeling a leadership-scale storage system
CN102696013A (zh) 用于预测多层计算机软件系统的性能的方法和设备
CN105553732B (zh) 一种分布式网络模拟方法及系统
Yan et al. A lightweight container-based virtual time system for software-defined network emulation
Xiang et al. An open source testbed for virtualized communication networks
Simmonds et al. Towards scalable network emulation
Liu et al. Validating and scaling the microgrid: A scientific instrument for grid dynamics
Balman et al. Experiences with 100gbps network applications
Pluzhnik et al. Laboratory test bench for research network and cloud computing
Hung et al. Performance evaluation of machine-to-machine (M2M) systems with virtual machines
JP5768722B2 (ja) 検証試験のためのプログラム、情報処理方法及び情報処理装置
Lamps et al. Conjoining emulation and network simulators on linux multiprocessors
CN112866059B (zh) 一种基于人工智能应用的无损网络性能测试方法和装置
Wolfe et al. Modeling large-scale slim fly networks using parallel discrete-event simulation
CN101834876A (zh) 基于蓝牙、数据库与udp协议的分布式半物理仿真系统及其数据汇总和分发的方法
CN104866405A (zh) 一种基于ZedBoard的远程监控FPGA中电路运行的方法
Szymanski et al. Real-Time On-Line Network Simulation.
Muniswamaiah et al. Energy Consumption for IoT Streaming Applications

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