CN108037998A - 一种面向Spark Streaming平台的数据接收通道动态分配方法 - Google Patents

一种面向Spark Streaming平台的数据接收通道动态分配方法 Download PDF

Info

Publication number
CN108037998A
CN108037998A CN201711247686.4A CN201711247686A CN108037998A CN 108037998 A CN108037998 A CN 108037998A CN 201711247686 A CN201711247686 A CN 201711247686A CN 108037998 A CN108037998 A CN 108037998A
Authority
CN
China
Prior art keywords
data
data receiving
receiving channel
application
channel
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
CN201711247686.4A
Other languages
English (en)
Other versions
CN108037998B (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.)
Beijing University of Technology
Original Assignee
Beijing University of Technology
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 Beijing University of Technology filed Critical Beijing University of Technology
Priority to CN201711247686.4A priority Critical patent/CN108037998B/zh
Publication of CN108037998A publication Critical patent/CN108037998A/zh
Application granted granted Critical
Publication of CN108037998B publication Critical patent/CN108037998B/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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/29Graphical models, e.g. Bayesian networks
    • G06F18/295Markov models or related models, e.g. semi-Markov models; Markov random fields; Networks embedding Markov models

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开一种面向Spark Streaming平台的数据接收通道动态分配方法,分配方法主要分为六个步骤:初始化、数据接收通道接收能力评估、基于马尔可夫链模型的流式数据到达速率变化状态预测、数据接收通道动态分配决策、数据接收通道组件回收与追增和回溯。本方法依据Spark Streaming应用的数据接收能力及流式数据到达速率的变化预测,为流式应用在线自动化地增加和减少数据通道的分配部署,确保数据处理的时效性以及提升通道组件资源和批处理引擎计算能力的利用率。

Description

一种面向Spark Streaming平台的数据接收通道动态分配 方法
技术领域
本发明属于流式大数据计算领域,具体涉及批量流式数据处理平台的组件资源动态分配方法。
背景技术
流式数据是大数据领域的一种重要的数据形态,具有规模连续无限、产生动态波动以及处理高时效性等特征。Spark Streaming批量流式计算平台是流式大数据处理领域的最新技术进展。该平台的核心特征是将流式大数据按时间顺序切分为多个数据块,并周期性地使用Spark批处理计算引擎对数据块进行并行处理,以获取近实时的数据处理响应和较高的数据吞吐率。Spark Streaming已广泛运用于流量统计、日志分析等领域,成为批量流式计算平台的代表。
数据接收通道(Receiver)是Spark Streaming平台的核心组件,负责接收连续到达的流式数据,并对数据进行缓存。数据接收通道中的缓存数据每隔固定的块生成间隔周期(BlockInterval)将被聚集为数据块,数据块则以更大的批处理周期(BatchInterval)被并行处理。既有Spark Streaming平台采用静态数据接收通道分配技术,即在应用启动时,依据用户配置参数,为应用一次性分配相应数量的数据接收通道,并在应用运行过程中维持不变。
然而,由于平台用户对流式应用的负载特征及资源需求往往缺乏充分的了解,用户级通道参数配置具有较大的盲目性。另一方面,流式数据负载往往具有较强的波动性,这与上述静态分配方法构成一对矛盾。在流式数据负载到达强度较小时,静态数据接收通道配置导致数据接收通道利用率低下;在流式数据负载到达强度增大时,静态数据接收通道配置将导致通道产生数据接收瓶颈,限制了每一个批处理周期内可处理的数据块数量与规模,无法充分利用批处理引擎的并行计算能力。实验测试表明,当Spark Streaming应用的数据接收通道产生瓶颈时,批处理周期内数据有效计算时间仅占25%。
发明内容
针对上述问题,本文提出了Spark Streaming数据接收通道动态分配方法。该方法的核心思想是依据Spark Streaming应用的数据接收能力及流式数据到达速率变化状态的预测,为流式应用在线自动化地增加和减少数据通道的分配部署,确保数据处理的时效性以及通道组件资源和批处理引擎计算能力的有效利用。
在本发明中,依据Spark Streaming数据接收通道工作原理,选取数据接收通道组件中数据缓存区的空间利用率作为数据通道接收能力的量化表征。本发明中,选取马尔可夫链模型作为理论工具,对流式数据到达速率状态变化进行预测。马尔可夫链模型是一种经典的概率模型,它研究的是某一状态到另一状态转移的规律。由马尔可夫链的无后效性可知,系统未来所处的状态与过去状态无关,而只与当前的状态有关。Spark Streaming流式应用的数据到达速率变化具有很大的随机性,下一秒数据到达速率的状态变化往往和当前的状态有较强的相关性。因此,利用马尔可夫链模型预测流式数据到达速率的变化趋势具有较好的可行性。
本发明所述的数据接收通道动态分配方法主要分为六个步骤:初始化、数据接收通道接收能力评估、基于马尔可夫链模型的流式数据到达速率变化状态预测、数据接收通道动态分配决策、数据接收通道组件回收与追增和回溯。在本方法中,有四个基本参数:数据块生成周期Tblockinterval,批处理周期Tbatchinterval,应用数据接收能力的上限阈值Ulimit,应用数据接收能力的下限阈值Llimit。Ulimit一般取值在0.8-1之间,Llimit一般取值在0.5-0.7之间,Tbatchinterval取值在1-2s之间,Tblockinterval取值在0.1-0.2s之间。
上述方法按以下步骤实现:
(1)初始化。Spark Streaming应用启动后,利用平台既有组件收集当前SparkStreaming应用对应的数据源编号inputstream。令Spark Streaming应用当前分配的数据接收通道集合C,C={c1,c2,…cn},利用平台既有数据接收通道管理组件收集应用数据接收通道集合C信息。
(2)数据接收通道接收能力评估。
2.1)令当前时刻为i,应用的数据接收通道缓存区空间使用量集合Ei表示为其中,n表示应用当前分配的数据接收通道总数,表示应用分配的第j个数据接收通道在i时刻的缓存区空间使用量。
2.2)对于每一个数据接收通道cj,cj∈C,利用公式(1)计算其接收能力。其中,et表示数据缓存区空间总量(依据用户当前硬件配置设置)。
2.3)综合当前应用已分配的所有数据接收通道的接收能力,利用公式(2)计算当前时刻i应用的数据接收能力。
2.4)若εi>Ulimit或εi<Llimit,则执行步骤(3);否则,执行步骤(6)。
(3)基于马尔可夫链模型的流式数据到达速率变化状态预测。
3.1)令当前时刻为i,流式数据到达速率历史记录集R表示为R={ri-1,ri-2,ri-3…ri-m}。
3.2)定义数据到达速率变化的状态空间K,K={k1,k2,k3},其中,k1为增强状态、k2为持平状态,k3为减弱状态。对于任一rl∈R,若rl-1<rl,则l时刻数据到达速率变化状态为k1;若rl-1=rl,则l时刻数据到达速率变化状态为k2;若rl-1>rl,则l时刻数据到达速率变化状态为k3
3.3)状态转移概率计算。
3.3.1)令i时刻流式数据到达速率变化状态历史记录集PSi表示为PSi={si-1,si-2…,si-m}。对于任一sj∈PSi,依据步骤3.2)中的方法计算其值。
3.3.2)计算状态转移判定因子。状态转移判定因子表示相邻时刻点间,SparkStreaming应用数据到达速率变化状态的转移。令为k时刻应用数据到达速率变化状态转移判定因子,其中,sk∈PSi,j,l∈{1,2,3}。的计算方法为,若sk=kj且sk+1=kl,则否则,
3.3.3)统计状态转移计数表示在PSi中,满足起始状态为kj且下一时刻的目标状态为kl的状态转移总数。统计方法如公式(3)。
3.3.4)根据公式(4)计算状态转移概率。
3.4)根据步骤3.3)得到的状态转移概率构建状态转移矩阵Pi
3.5)依据步骤3.2)计算当前时刻i的数据到达速率变化状态si。若si=kl,kl∈K,则遍历状态转移矩阵Pi中起始状态为kl的相应行(例如,若si=k1,则遍历Pi中状态转移概率所在行。),选择其中取值最大的状态转移概率设置i+1时刻的数据到达速率变化状态si+1=kd
(4)数据接收通道动态分配决策。
4.1)令θ为通道动态分配决策因子。若εi>Ulimit且si+1=k3,转至步骤4.2);若εi<Llimit且si+1=k1,转至步骤4.3);其余情况转至步骤(6)。
4.2)设置θ←-1,表示回收一个数据接收通道。
4.3)设置θ←1,表示追增一个数据接收通道。
(5)数据接收通道组件回收与追增。
5.1)判断动态分配决策因子,若θ=-1,则转至步骤5.2);若θ=1,则转至步骤5.3)。
5.2)数据接收通道组件回收。
5.2.1)在Spark Streaming应用当前分配的数据接收通道集合C中随机选取一个数据接收通道cj
5.2.2)在数据接收通道管理组件中,撤销该数据接收通道的注册信息,并将该接收通道从应用当前分配的数据接收通道集合C中删除。
5.2.3)停止该数据接收通道的数据接收功能。
5.3)数据接收通道组件追增。
5.3.1)将新追增的数据接收通道对应的数据源编号设置为inputstream,并将该数据接收通道加入应用当前分配的数据接收通道集合C中。
5.3.2)向Spark Streaming既有的资源管理器申请数据接收通道运行资源,用于新增数据接收通道的启动。
5.3.3)在分配的运行资源所在的节点上启动新增数据接收通道组件。
5.3.4)启动新增数据接收通道的数据接收功能。
(6)回溯:一个动态分配周期结束后,判断应用程序是否结束,是则转至步骤(7),否则转至步骤(2)。
(7)结束:终止对数据接收通道动态分配功能。
为实现上述方法,本发明在每个计算节点上新增监控器,用于周期性收集数据接收通道缓存区空间的使用量信息和流式数据到达速率信息。其中,数据接收通道缓存区空间的使用量信息构成步骤(2)中所需的应用数据接收通道缓存区空间使用量集合,流式数据到达速率信息构成步骤(3)中所需的流式数据到达速率历史记录集。为实现上述方法,本发明在Spark Streaming系统中新增预测器,依据流式数据到达速率历史记录对未来流式数据到达速率变化状态进行预测(步骤(4))。为实现上述方法,本发明在Spark Streaming系统中新增执行器,用于根据预测器提供的预测结果和当前应用的数据接收能力,完成数据接收通道组件的回收与追增(步骤(5))。
附图说明
图1为本发明方法所依附的批量流式计算平台的部署图。
图2为采用本发明方法的批量流式计算平台中新增软件模块与平台既有模块间的交互关系图。
图3为本发明方法的总体流程图。
图4为未来流式数据到达速率变化状态预测流程图。
图5为数据接收通道动态分配策略流程图。
具体实施方式
下面结合附图和具体实施方式对本发明加以说明。
本发明所提出的数据接收通道动态分配方法可依附于现有Spark Streaming平台,通过修改和新增相应的功能模块实现。图1是本方法所依附的Spark Streaming平台的部署图。该平台由多个计算机服务器(平台节点)组成,服务器间通过网络连接。平台节点分为两类:包括一个管理节点(Master)和多个计算节点(Slave)。本发明方法所依附的SparkStreaming平台包含三类核心软件模块:资源管理模块(ResourceManager)、数据接收通道管理模块(ReceiverSuperVisor)、数据接收管理模块(ReceiverTracker)。其中,ResourceManager负责为数据接收通道调度分配硬件资源,仅在管理节点上部署;ReceiverSuperVisor负责启动和停止数据接收通道,需要在每个启动数据接收通道的计算节点上部署。ReceiverTracker负责管理数据的接收和数据块的构建,该模块在计算节点上部署。上述三类软件模块中,ResourceManager模块和ReceiverTracker模块在SparkStreaming平台启动时即部署运行,ReceiverSuperVisor模块在启动数据接收通道时触发部署运行。
图2是为实施本发明方法在所依附的Spark Streaming平台中需增加的软件模块及其交互关系图。阴影模块是为实现本发明方法须在既有Spark Streaming平台中新增的软件模块,包括监控模块(Monitor)、预测模块(Predictor)、执行模块(Allocator)。其中,Monitor负责收集数据接收通道缓存区空间的使用量信息和流式数据到达速率信息,部署于管理节点上。Predictor负责根据Monitor模块收集汇总的信息对数据到达速率状态变化做出预测,Allocator负责根据Predictor模块提供的预测信息和当前应用的数据接收能力进行动态分配决策。上述两个模块可作为ReceiverTracker模块的子模块部署于计算节点上。上述新增模块中,隶属于同一软件模块的子模块间采用共享变量和方法调用的通信方式,隶属于不同软件模子模块线程间采用远程过程调用(RPC)的网络通信方式。
下面结合图3发明内容总流程说明本发明方法的具体实施方法。在本实施方法中,基本参数设置如下:数据块生成周期Tblockinterval=0.1s,批处理周期Tbatchinterval=2s,应用数据接收能力的上限阈值Ulimit=0.8,应用数据接收能力的下限阈值Llimit=0.5。具体实施方法可分为以下步骤:
(1)初始化。Spark Streaming应用启动后,通过计算节点既有的ReceiverTracker模块获取当前Spark Streaming应用对应的数据源编号inputstream以及应用当前分配的数据接收通道集合C,令集合C={c1,c2}。
(2)数据接收通道接收能力评估。
2.1)令当前时刻为i,依据ReceiverTracker模块获取到的应用当前分配的数据接收通道集合C可知,应用当前分配的数据接收通道总数n=2;应用的数据接收通道缓存区空间使用量集合Ei通过对应数据接收通道所在计算节点上的Monitor模块周期性获取,令集合Ei={15,13}(GB)。
2.2)对于每一个数据接收通道cj,cj∈C,根据发明内容2.2)中的方法计算其接收能力。其中,数据缓存区空间总量et在本发明的实验环境中选取16GB。
计算得到:
2.3)综合当前应用已分配的所有数据接收通道的接收能力,根据发明内容2.3)中的方法计算当前时刻i应用的数据接收能力。
计算得到:εi=0.094。
2.4)若εi>0.8或εi<0.5,则执行步骤(3);否则,执行步骤(6)。
(3)基于马尔可夫链模型的流式数据到达速率变化状态预测。
3.1)令当前时刻为i,通过每个数据接收通道收集并按照时间戳统计可得流式数据到达速率历史记录集R,令集合R={38000,36000,36000,38000,38000,40000,38000,38000}(records)。
3.2)根据发明内容3.2)中的方法,定义状态空间K={k1,k2,k3},其中,k1为增强状态、k2为持平状态,k3为减弱状态。
3.3)状态转移概率计算。
3.3.1)Predictor模块根据发明内容3.3.1)中的方法,针对集合R计算流式数据到达速率变化状态历史记录集PSi={k3,k2,k1,k2,k1,k3,k2}。
3.3.2)Predictor模块根据发明内容3.3.2)中的方法,依据流式数据到达速率变化状态历史记录集PSi计算状态转移判定因子,可得 其余情况为0。
3.3.3)Predictor模块根据发明内容3.3.3)中的方法,统计状态转移计数,可得,其余情况为0。
3.3.4)Predictor模块根据发明内容3.3.4)中的方法,计算状态转移概率其余情况为0。
3.4)Predictor模块根据发明内容3.4)中的方法,构建状态转移矩阵Pi,可得:
3.5)Predictor模块根据发明内容3.5)中的方法,计算当前时刻i的数据到达速率变化状态,可得si=k2,遍历状态转移矩阵第二行,选择其中取值最大的状态转移概率则i+1时刻的数据到达速率变化状态si+1=k1
(4)数据接收通道动态分配决策。
4.1)Allocator模块设置动态分配决策因子θ的初始值为0,根据发明内容4.1)中的方法判断,若εi>0.8且si+1=k3,转至步骤4.2);若εi<0.5且si+1=k1,转至步骤4.3);其余情况转至步骤(6)。
4.2)Allocator模块设置θ←-1。
4.3)Allocator模块设置θ←1。
(5)数据接收通道组件回收与追增。
5.1)Allocator模块根据发明内容5.1)中的方法判断,若θ=-1,则转至步骤5.2);若θ=1,则转至步骤5.3)。
5.2)数据接收通道组件回收。
5.2.1)Allocator模块在Spark Streaming应用当前分配的数据接收通道集合C中随机选取一个数据接收通道cj
5.2.2)ReceiverTracker模块撤销该数据接收通道的注册信息,并将该接收通道从应用当前分配的数据接收通道集合C中删除。
5.2.3)ReceiverSuperVisor模块停止该数据接收通道的数据接收功能。
5.3)数据接收通道组件追增。
5.3.1)Allocator模块将新追增的数据接收通道对应的数据源编号设置为inputstream,并将该数据接收通道加入应用当前分配的数据接收通道集合C中,可得C={c1,c2,c3}。
5.3.2)Allocator模块向Spark Streaming既有的资源管理器申请数据接收通道运行资源,用于新增数据接收通道的启动。
5.3.3)ReceiverTracker模块启动新增数据接收通道。
5.3.4)ReceiverSuperVisor模块启动新增数据接收通道的数据接收功能。
(6)回溯:一个动态分配周期结束后,判断应用程序是否结束,是则转至步骤(7),否则转至步骤(2)。
(7)结束:终止对数据接收通道动态分配功能。
根据本发明所提出的数据接收通道动态分配方法,发明人进行了相关的性能测试。测试结果表明,本发明方法可适用于典型的流式应用负载。采用本方法的批量流式计算平台,如Spark Streaming,可较好地提升平台的处理效率和资源利用率。
性能测试将依据既有的Spark Streaming 2.1.0版本平台与本发明方案实现的具有数据接收通道动态分配功能的Spark Streaming平台进行性能比较。性能测试选取数据吞吐率、有效计算时间比例作为性能指标,以体现本发明提出的方法在提升SparkStreaming平台处理效率和计算资源利用率方面的优势。另外,本次测试也对本发明方法对Spark Streaming平台的性能入侵进行了测试。其中,数据吞吐率表示测试负载从提交到运行结束的时间区间内,每单位时间(秒)处理完成的数据条数,用于衡量应用的数据处理效率;有效计算时间比例表示计算节点在每个批处理间隔中实际用来计算的时间,该指标用来衡量计算资源的利用率。性能测试运行于由7个计算节点构成的集群系统,计算节点的硬件配置包括:Intel(R)Xeon(R)CPU E5-2660 0@2.20GHz的CPU、16GB DDR3RAM、1TB SATA硬盘,节点间采用千兆以太网互连,操作系统为Centos6.5。实验选用Hibench作为负载发生器,选取其中的典型流式应用WordCount进行测试。实验相关参数设置:batchinterval=2s,blockinterval=0.1s。
针对数据接收通道动态分配的测试:
本次测试选取的数据到达强度从弱到强共分为5组,如表1所示。
表1 数据到达强度分组
表2 数据吞吐率测试结果
表3 有效计算时间比例测试结果
表2给出了在不同的数据到达强度下,原Spark Streaming平台和采用数据接收通道动态分配方法的Spark Streaming平台的数据吞吐率测试结果。由实验结果可知,与既有静态分配方法相比,在5组数据到达强度下,采用数据接收通道动态分配方法均获得较高的数据吞吐率,平均提升比例为25%,且随着数据到达强度的增强,数据吞吐率的提升比例不断增大。在数据到达强度为160000record/s时,吞吐率性能最大提升了44.7%。表3给出了在不同的数据到达强度下,原Spark Streaming平台和采用数据接收通道动态分配方法的Spark Streaming平台的有效计算时间比例测试结果。由实验结果可知,采用静态分配方法获得的有效计算时间比例并未随着数据到达强度的增强而增加,保持在30%。然而采用动态分配方法,随着数据到达强度的增大,采用动态分配方法可获得的有效计算时间比例平均提升了29%,且随着数据到达强度的增强,提升比例不断增大。当数据到达强度为160000record/s时,有效计算时间比例最大提升了45%。分析其中原因可知,批次数据规模是决定Spark Streaming应用数据处理效率的关键。在批处理间隔确定的情况下,有效计算时间比例是批次数据规模的直观体现。采用静态分配方法,数据接收通道的缓存规模固定,可形成的批次数据规模受限于缓存规模。而通过采取动态分配方法,随着数据到达强度的增大,数据接收通道的数量自适应地增加,可提供更多的数据缓存空间存储外部流式数据,从而在批处理间隔内可形成更大的批次数据规模。与既有Spark Streaming平台相比,采用本发明方法的Spark Streaming平台通过对应用数据接收能力的监控和对未来数据到达速率变化的预测实现了数据接收通道动态分配。在相同的数据到达强度下,动态分配方法可形成更大规模的批次数据,在批处理间隔内充分利用计算资源进行数据处理,减少了数据批次的形成,因此获得了更高的数据吞吐率。同时,随着数据到达强度的增强,静态方法导致的数据接收停止日益恶化。因此,采用自适应的动态分配方法可获得更大的的性能收益提升比例。
表4 动态分配方法对CPU资源利用率的影响
表5 动态分配方法对内存资源利用率的影响
由表4和表5可知,在部署了数据接收通道动态分配系统后,计算节点的CPU利用率最大增加了1.6%,平均增加了0.98%;内存利用率最大增加了3.1%,平均增加了2.1%。可见,本文所提出的数据接收通道动态分配方法对Spark Streaming平台产生的性能开销较小。
最后应说明的是:以上示例仅用以说明本发明而并非限制本发明所描述的技术,而一切不脱离发明的精神和范围的技术方案及其改进,其均应涵盖在本发明的权利要求范围当中。

Claims (2)

1.一种面向Spark Streaming平台的数据接收通道动态分配方法,其特征在于:包括以下步骤:
(1)初始化
Spark Streaming应用启动后,利用平台既有组件收集当前Spark Streaming应用对应的数据源编号inputstream。令Spark Streaming应用当前分配的数据接收通道集合C,C={c1,c2,…cn},利用平台既有数据接收通道管理组件收集应用数据接收通道集合C信息;
(2)数据接收通道接收能力评估
2.1)令当前时刻为i,应用的数据接收通道缓存区空间使用量集合Ei表示为其中,n表示应用当前分配的数据接收通道总数,表示应用分配的第j个数据接收通道在i时刻的缓存区空间使用量;
2.2)对于每一个数据接收通道cj,cj∈C,利用公式(1)计算其接收能力,其中,et表示数据缓存区空间总量,
<mrow> <msubsup> <mi>&amp;sigma;</mi> <mi>i</mi> <mi>j</mi> </msubsup> <mo>=</mo> <mfrac> <mrow> <msub> <mi>e</mi> <mi>t</mi> </msub> <mo>-</mo> <msubsup> <mi>e</mi> <mi>i</mi> <mi>j</mi> </msubsup> </mrow> <msub> <mi>e</mi> <mi>t</mi> </msub> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>
2.3)综合当前应用已分配的所有数据接收通道的接收能力,利用公式(2)计算当前时刻i应用的数据接收能力,
<mrow> <msub> <mi>&amp;epsiv;</mi> <mi>i</mi> </msub> <mo>=</mo> <mfrac> <mrow> <msubsup> <mi>&amp;Sigma;</mi> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </msubsup> <msubsup> <mi>&amp;sigma;</mi> <mi>i</mi> <mi>j</mi> </msubsup> </mrow> <mi>n</mi> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>
2.4)若εi>Ulimit或εi<Llimit,则执行步骤(3);否则,执行步骤(6)。
(3)基于马尔可夫链模型的流式数据到达速率变化状态预测
3.1)令当前时刻为i,流式数据到达速率历史记录集R表示为R={ri-1,ri-2,ri-3…ri-m},
3.2)定义数据到达速率变化的状态空间K,K={k1,k2,k3},其中,k1为增强状态、k2为持平状态,k3为减弱状态。对于任一rl∈R,若rl-1<rl,则l时刻数据到达速率变化状态为k1;若rl-1=rl,则l时刻数据到达速率变化状态为k2;若rl-1>rl,则l时刻数据到达速率变化状态为k3
3.3)状态转移概率计算,
3.3.1)令i时刻流式数据到达速率变化状态历史记录集PSi表示为PSi={si-1,si-2…,si-m},对于任一sj∈PSi,依据步骤3.2)中的方法计算其值;
3.3.2)计算状态转移判定因子,状态转移判定因子表示相邻时刻点间,SparkStreaming应用数据到达速率变化状态的转移,令为k时刻应用数据到达速率变化状态转移判定因子,其中,sk∈PSi,j,l∈{1,2,3}。的计算方法为,若sk=kj且sk+1=kl,则否则,
3.3.3)统计状态转移计数表示在PSi中,满足起始状态为kj且下一时刻的目标状态为kl的状态转移总数,统计方法如公式(3),
<mrow> <msubsup> <mi>n</mi> <mrow> <mi>j</mi> <mo>&amp;RightArrow;</mo> <mi>l</mi> </mrow> <mi>i</mi> </msubsup> <mo>=</mo> <msub> <mi>&amp;Sigma;</mi> <mrow> <msub> <mi>s</mi> <mi>k</mi> </msub> <mo>&amp;Element;</mo> <msub> <mi>PS</mi> <mi>i</mi> </msub> </mrow> </msub> <msubsup> <mi>C</mi> <mrow> <mi>j</mi> <mo>&amp;RightArrow;</mo> <mi>l</mi> </mrow> <msub> <mi>s</mi> <mi>k</mi> </msub> </msubsup> <mo>,</mo> <mi>j</mi> <mo>,</mo> <mi>l</mi> <mo>&amp;Element;</mo> <mo>{</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mn>3</mn> <mo>}</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>
3.3.4)根据公式(4)计算状态转移概率;
<mrow> <msubsup> <mi>p</mi> <mrow> <mi>j</mi> <mo>&amp;RightArrow;</mo> <mi>l</mi> </mrow> <mi>i</mi> </msubsup> <mo>=</mo> <mfrac> <msubsup> <mi>n</mi> <mrow> <mi>j</mi> <mo>&amp;RightArrow;</mo> <mi>l</mi> </mrow> <mi>i</mi> </msubsup> <mrow> <msubsup> <mi>n</mi> <mrow> <mi>j</mi> <mo>&amp;RightArrow;</mo> <mn>1</mn> </mrow> <mi>i</mi> </msubsup> <mo>+</mo> <msubsup> <mi>n</mi> <mrow> <mi>j</mi> <mo>&amp;RightArrow;</mo> <mn>2</mn> </mrow> <mi>i</mi> </msubsup> <mo>+</mo> <msubsup> <mi>n</mi> <mrow> <mi>j</mi> <mo>&amp;RightArrow;</mo> <mn>3</mn> </mrow> <mi>i</mi> </msubsup> </mrow> </mfrac> <mo>,</mo> <mi>j</mi> <mo>,</mo> <mi>l</mi> <mo>&amp;Element;</mo> <mo>{</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mn>3</mn> <mo>}</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>
3.4)根据步骤3.3)得到的状态转移概率构建状态转移矩阵Pi
<mrow> <msup> <mi>P</mi> <mi>i</mi> </msup> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msubsup> <mi>p</mi> <mrow> <mn>1</mn> <mo>&amp;RightArrow;</mo> <mn>1</mn> </mrow> <mi>i</mi> </msubsup> </mtd> <mtd> <msubsup> <mi>p</mi> <mrow> <mn>1</mn> <mo>&amp;RightArrow;</mo> <mn>2</mn> </mrow> <mi>i</mi> </msubsup> </mtd> <mtd> <msubsup> <mi>p</mi> <mrow> <mn>1</mn> <mo>&amp;RightArrow;</mo> <mn>3</mn> </mrow> <mi>i</mi> </msubsup> </mtd> </mtr> <mtr> <mtd> <msubsup> <mi>p</mi> <mrow> <mn>2</mn> <mo>&amp;RightArrow;</mo> <mn>1</mn> </mrow> <mi>t</mi> </msubsup> </mtd> <mtd> <msubsup> <mi>p</mi> <mrow> <mn>2</mn> <mo>&amp;RightArrow;</mo> <mn>2</mn> </mrow> <mi>t</mi> </msubsup> </mtd> <mtd> <msubsup> <mi>p</mi> <mrow> <mn>2</mn> <mo>&amp;RightArrow;</mo> <mn>3</mn> </mrow> <mi>t</mi> </msubsup> </mtd> </mtr> <mtr> <mtd> <msubsup> <mi>p</mi> <mrow> <mn>3</mn> <mo>&amp;RightArrow;</mo> <mn>1</mn> </mrow> <mi>i</mi> </msubsup> </mtd> <mtd> <msubsup> <mi>p</mi> <mrow> <mn>3</mn> <mo>&amp;RightArrow;</mo> <mn>2</mn> </mrow> <mi>i</mi> </msubsup> </mtd> <mtd> <msubsup> <mi>p</mi> <mrow> <mn>3</mn> <mo>&amp;RightArrow;</mo> <mn>3</mn> </mrow> <mi>i</mi> </msubsup> </mtd> </mtr> </mtable> </mfenced> </mrow>
3.5)依据步骤3.2)计算当前时刻i的数据到达速率变化状态si,若si=kl,kl∈K,则遍历状态转移矩阵Pi中起始状态为kl的相应行,选择其中取值最大的状态转移概率设置i+1时刻的数据到达速率变化状态si+1=kd
(4)数据接收通道动态分配决策
4.1)令θ为通道动态分配决策因子,若εi>Ulimit且si+1=k3,转至步骤4.2);若εi<Llimit且si+1=k1,转至步骤4.3);其余情况转至步骤(6),
4.2)设置θ←-1,表示回收一个数据接收通道,
4.3)设置θ←1,表示追增一个数据接收通道,
(5)数据接收通道组件回收与追增
5.1)判断动态分配决策因子,若θ=-1,则转至步骤5.2);若θ=1,则转至步骤5.3);
5.2)数据接收通道组件回收;
5.2.1)在Spark Streaming应用当前分配的数据接收通道集合C中随机选取一个数据接收通道cj
5.2.2)在数据接收通道管理组件中,撤销该数据接收通道的注册信息,并将该接收通道从应用当前分配的数据接收通道集合C中删除;
5.2.3)停止该数据接收通道的数据接收功能;
5.3)数据接收通道组件追增;
5.3.1)将新追增的数据接收通道对应的数据源编号设置为inputstream,并将该数据接收通道加入应用当前分配的数据接收通道集合C中;
5.3.2)向Spark Streaming既有的资源管理器申请数据接收通道运行资源;用于新增数据接收通道的启动;
5.3.3)在分配的运行资源所在的节点上启动新增数据接收通道组件;
5.3.4)启动新增数据接收通道的数据接收功能;
(6)回溯:一个动态分配周期结束后,判断应用程序是否结束,是则转至步骤(7),否则转至步骤(2);
(7)结束:终止对数据接收通道动态分配功能。
2.根据权利要求1所述的一种面向Spark Streaming平台的数据接收通道动态分配方法,其特征在于,基本参数设置如下:数据块生成周期Tblockinterval,批处理周期Tbatchinterval,应用数据接收能力的上限阈值Ulimit,应用数据接收能力的下限阈值Llimit。Ulimit一般取值在0.8-1之间,Llimit一般取值在0.5-0.7之间,Tbatchinterval取值在1-2s之间,Tblockinterval取值在0.1-0.2s之间。
CN201711247686.4A 2017-12-01 2017-12-01 一种面向Spark Streaming平台的数据接收通道动态分配方法 Expired - Fee Related CN108037998B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711247686.4A CN108037998B (zh) 2017-12-01 2017-12-01 一种面向Spark Streaming平台的数据接收通道动态分配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711247686.4A CN108037998B (zh) 2017-12-01 2017-12-01 一种面向Spark Streaming平台的数据接收通道动态分配方法

Publications (2)

Publication Number Publication Date
CN108037998A true CN108037998A (zh) 2018-05-15
CN108037998B CN108037998B (zh) 2019-05-24

Family

ID=62094902

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711247686.4A Expired - Fee Related CN108037998B (zh) 2017-12-01 2017-12-01 一种面向Spark Streaming平台的数据接收通道动态分配方法

Country Status (1)

Country Link
CN (1) CN108037998B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109684077A (zh) * 2018-12-05 2019-04-26 苏州思必驰信息科技有限公司 用于spark streaming的资源动态分配和反馈方法及装置
CN109828836A (zh) * 2019-01-20 2019-05-31 北京工业大学 一种批量流式计算系统参数动态配置方法
CN110941489A (zh) * 2018-09-21 2020-03-31 北京京东尚科信息技术有限公司 流处理引擎的伸缩方法和装置
WO2020233262A1 (zh) * 2019-07-12 2020-11-26 之江实验室 一种基于Spark的多中心数据协同计算的流处理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103731371A (zh) * 2012-10-16 2014-04-16 中国科学院声学研究所 一种用于双模机顶盒的网络数据接收通道管理方法
CN105429864A (zh) * 2015-12-28 2016-03-23 北京致远协创软件有限公司 数据交换中心、系统、方法、数据发送及接收方法、装置
CN107291550A (zh) * 2017-06-22 2017-10-24 华中科技大学 一种针对迭代应用的Spark平台资源动态分配方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103731371A (zh) * 2012-10-16 2014-04-16 中国科学院声学研究所 一种用于双模机顶盒的网络数据接收通道管理方法
CN105429864A (zh) * 2015-12-28 2016-03-23 北京致远协创软件有限公司 数据交换中心、系统、方法、数据发送及接收方法、装置
CN107291550A (zh) * 2017-06-22 2017-10-24 华中科技大学 一种针对迭代应用的Spark平台资源动态分配方法及系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
DAZHAO CHENG 等: ""Adaptive scheduling of parallel jobs in spark streaming"", 《IEEE INFOCOM 2017 - IEEE CONFERENCE ON COMPUTER COMMUNICATIONS》 *
OLUBISI RUNSEWE 等: ""Cloud Resource Scaling for Big Data Streaming Applications Using a Layered Multi-dimensional Hidden Markov Model"", 《2017 17TH IEEE/ACM INTERNATIONAL SYMPOSIUM ON CLUSTER, CLOUD AND GRID COMPUTING (CCGRID)》 *
杨忙忙: ""Spark数据处理平台中资源动态分配技术研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
王曾亦: ""基于内存计算的流数据处理在飞行大数据的研究与应用"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110941489A (zh) * 2018-09-21 2020-03-31 北京京东尚科信息技术有限公司 流处理引擎的伸缩方法和装置
CN109684077A (zh) * 2018-12-05 2019-04-26 苏州思必驰信息科技有限公司 用于spark streaming的资源动态分配和反馈方法及装置
CN109828836A (zh) * 2019-01-20 2019-05-31 北京工业大学 一种批量流式计算系统参数动态配置方法
WO2020233262A1 (zh) * 2019-07-12 2020-11-26 之江实验室 一种基于Spark的多中心数据协同计算的流处理方法

Also Published As

Publication number Publication date
CN108037998B (zh) 2019-05-24

Similar Documents

Publication Publication Date Title
Sun et al. Multi-objective optimization of resource scheduling in fog computing using an improved NSGA-II
Gao et al. PORA: Predictive offloading and resource allocation in dynamic fog computing systems
CN108037998A (zh) 一种面向Spark Streaming平台的数据接收通道动态分配方法
WO2021088207A1 (zh) 云计算集群混部作业调度方法、装置、服务器及存储装置
KR100932919B1 (ko) 동적 채널 할당을 위한 채널 집합 관리 방법 및 시스템
Logeshwaran et al. A NOVEL ARCHITECTURE OF INTELLIGENT DECISION MODEL FOR EFFICIENT RESOURCE ALLOCATION IN 5G BROADBAND COMMUNICATION NETWORKS.
Alboaneen et al. Energy-aware virtual machine consolidation for cloud data centers
CN103401947A (zh) 多个服务器的任务分配方法和装置
CN106793031B (zh) 基于集合竞优算法的智能手机能耗优化方法
CN111866954A (zh) 一种基于联邦学习的用户选择和资源分配方法
Yang et al. Multi-strategy dynamic spectrum access in cognitive radio networks: Modeling, analysis and optimization
Muppala et al. Coordinated session-based admission control with statistical learning for multi-tier internet applications
Grant et al. Overtime: A tool for analyzing performance variation due to network interference
CA2857727C (en) Computer-implemented method, computer system, computer program product to manage traffic in a network
CN111083710A (zh) 一种用于5g系统的智慧组网方法
Fan et al. Machine learning based quantitative association rule mining method for evaluating cellular network performance
Shaheen et al. Tasks Scheduling in Cloud Environment Using PSO-BATS with MLRHE.
Ray et al. A framework for analyzing resource allocation policies for multi-access edge computing
Li et al. A cost‐efficient and QoS‐aware adaptive placement of applications in fog computing
Roy et al. Supporting multi-fidelity-aware concurrent applications in dynamic sensor networks
Fontana et al. SMASH: a SMArt Slicing Heterogeneous 5G network selection algorithm
RU2406124C1 (ru) Способ распределенной обработки нестационарного потока запросов в гетерогенной вычислительной системе
Jing et al. An energy efficient and resource‐constrained scheduling framework for smart city application
Omar Improving data extraction efficiency of cache nodes in cognitive radio networks using big data analysis
Zhao et al. QoE driven resource allocation in massive IoT: A deep reinforcement learning approach

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190524

Termination date: 20211201

CF01 Termination of patent right due to non-payment of annual fee