CN112612587A - 一种针对流量分析的Spark平台动态资源调配方法 - Google Patents

一种针对流量分析的Spark平台动态资源调配方法 Download PDF

Info

Publication number
CN112612587A
CN112612587A CN202011559649.9A CN202011559649A CN112612587A CN 112612587 A CN112612587 A CN 112612587A CN 202011559649 A CN202011559649 A CN 202011559649A CN 112612587 A CN112612587 A CN 112612587A
Authority
CN
China
Prior art keywords
memory
spark
task
load
driver
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
CN202011559649.9A
Other languages
English (en)
Other versions
CN112612587B (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.)
Jiangsu Future Networks Innovation Institute
Original Assignee
Jiangsu Future Networks Innovation Institute
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 Jiangsu Future Networks Innovation Institute filed Critical Jiangsu Future Networks Innovation Institute
Priority to CN202011559649.9A priority Critical patent/CN112612587B/zh
Publication of CN112612587A publication Critical patent/CN112612587A/zh
Application granted granted Critical
Publication of CN112612587B publication Critical patent/CN112612587B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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
    • 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/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种针对流量分析的Spark平台动态资源调配方法,其特征在于,包括部分,其中,第一部分:通过Spark资源调度器,根据服务器中的CPU、内存等基本性能指标,结合Spark任务流程的复杂度,推荐一种较为合适的内存和核数的组合配置;第二部分:实现一种资源调度器,通过分析应用程序占用的CPU、内存、以及负载的网络流量数据特征,结合ARSA算法进行资源自适应分配。针对流量分析的Spark资源的自动化调度方法,不仅能够通过分析集群服务器的性能指标适配出合适的初始内存、核数配置,还能够根据实际流量的复杂度、大小等,进行自适应调整,充分利用集群资源,保证流量处理任务稳定运行。

Description

一种针对流量分析的Spark平台动态资源调配方法
技术领域
本发明涉及互联网技术领域,具体涉及一种针对流量分析的Spark平台动态资源调配方法。
背景技术
随着互联网技术的飞速发展,信息化数据急剧膨胀,如何处理海量的互联网数据成为了一种技术性难题。而流量分析作为带宽管理、流量透视、攻击溯源、病毒防御、入侵检测等多种网络运维与安全管理的前提,更是因其数据规模大、多元、不固定等特点,成为业界关注的焦点。随着分布式计算的出现和发展,利用多个服务器节点进行并行处理计算,为海量数据的处理难题打开了新的大门,例如Hadoop、Spark、Flink等分布式处理框架应运而生。
Apache Spark是由UC Berkeley AMP实验室开发的一个开源数据处理平台,其基础架构图如图1所示。Spark平台采用了Master/Slave架构,其中Master用来管理平台中用户提交的应用程序和资源分配;Driver用来管理应用程序中SparkContext对象,包含了DAGScheduler、TaskSche-duler以及SchedulerBackend;Worker用来启动Executor执行器,处理应用程序。其中,Execut-or是应用程序任务执行和数据缓存的真正位置。Spark由于采用了基于内存的数据计算方式,不会受到磁盘读/写性能和网络I/O性能的约束,能够更实时快速的计算出汇聚结果。
Spark本身具有自己的资源调度器,是基于集群各个节点的服务器在相同环境下的理想设计,然而实际环境中,集群中各个节点服务器的CPU、内存以及IO等因为性能和负载不同可能会有所差异,所以相同任务分配到不同的节点会产生不同的影响。如果某台服务器CPU、内存被其他应用长期占用,实际性能较差,则会导致Spark任务执行效率低下,甚至Spark任务出现异常终止状况。况且现有的Spark计算资源配置,都是在任务初始化时完成的,Spark任务所能够使用的CPU及内存在启动时已在脚本或命令中预置,并在运行中保持不变;所以初始资源配置对于Spark任务是及其重要的。
另外,流量数据的瞬时激增、海量用户导致流量内容巨大的差异化,这些都给流量处理任务的稳定运转带来了巨大的隐患和考验;但另一方面,按照不同场景,针对不同业务流量的预采集分析和研究整理,我们发现流量数据的变化也不是完全无迹可寻,比如按白天和晚上,工作日和休息日等时间维度划分后,网络流量的数据量和类型复杂度的变化波动总是能维持在一定的范围内;本发明前文提到,Spark本身的调度器并不会针对已分配资源的Spark任务进行资源的动态调整,这样会导致在为保证Spark任务正常处理设置较大的内存、核数时,如果实际处理的数据量较少,则可能会导致服务器上其他进程无法正常运行或者出现卡顿现象,造成资源浪费。所以如果能够根据实际场景情况,动态自适应的调整资源配置,那么我们就可以让流量处理任务既不占用过多资源导致浪费,也不会出现资源不够用导致处理性能降低;
发明内容
本发明的第一个目的是提供一种Spark资源调度器,能够根据服务器中的CPU、内存等基本性能指标,结合Spark任务流程的复杂度,推荐一种较为合适的内存和核数的组合配置,包括driver memory,executor memory,driver core,executor core。由于在不同时刻,Spark应用程序中流量的大小、流量的复杂度等因素可能会直接影响到Spark任务的处理效率和内存负载,本发明提出了第二个技术方案:实现一种资源调度器,通过分析应用程序占用的CPU、内存、以及负载的网络流量数据特征,结合ARSA,Adaptive resourcescheduling algorithm算法进行资源自适应分配。
为实现本发明所述目的,所提出的的技术方案如下:
一种针对流量分析的Spark平台动态资源调配方法,其特征在于,包括部分,其中,第一部分:通过Spark资源调度器,根据服务器中的CPU、内存等基本性能指标,结合Spark任务流程的复杂度,推荐一种较为合适的内存和核数的组合配置;第二部分:实现一种资源调度器,通过分析应用程序占用的CPU、内存、以及负载的网络流量数据特征,结合ARSA算法进行资源自适应分配。
所述第一部分具体步骤如下:
步骤1.1:根据基于同一Spark平台的历史任务,抽取各任务所有时间节点采集到的CPU负载、内存负载、处理数据量;
步骤1.2:根据stage、action、io等spark特点计算出各历史任务的平均CPU负载、平均内存负载、任务复杂度、处理数据量峰值;
步骤1.3:分别构建driver memory、executor memory、driver core、executorcore四个类评分矩阵Rdm_(m×n),Rem_(m×n),Rdc_(m×n),Rec_(m×n);以Rdm_(m×n)为例(以下均以此为例):纵向为各历史spark任务,横向为spark任务的平均CPU负载、平均内存负载、任务复杂度、处理数据量峰值、driver memory配置;
步骤1.4:将各矩阵中的平均CPU负载、平均内存负载、任务复杂度、处理数据量峰值,做标准化评分处理,落在评分[1,5]的区间中;
步骤1.5:设置当前spark任务的初始向量,任务复杂度根据真实情况计算,drivermemory配置、平均CPU负载和平均内存负载为各历史任务的均值,处理数据量峰值为期望预估值;
步骤1.6:根据协同过滤算法,计算当前spark任务和历史各任务之间的相似度sim集合,求得与当前任务最相似的N个邻居;
步骤1.7:根据这N个邻居的实际driver memory配置,使用协同过滤预测评分公式,预测当前spark任务最合适的初始driver memory配置;
所述第二部分具体步骤如下:
步骤2.1:每隔15分钟收集同一应用程序的历史数据,包括CPU使用率、内存使用率、流量大小、流量类型复杂度,以及当时分配的driver memory、executor memory、drivercore、executor core这8个指标值。
步骤2.2:数据处理;
设定1小时为1周期,取该周期内的平均CPU使用率,标记为c、平均内存使用率,标记为m、平均流量大小的波动率,1周期内平均流量大小在近12个周期内平均流量大小的峰值的占比,标记为fs、平均流量复杂度的波动率(1周期内的协议个数在12周期内的协议个数峰值的占比),标记为fc,代表了一段周期内的复杂度。计算每个周期内的负载评分及适配的driver memory、executor memory、driver core、executor core四个指标值。
步骤2.3:利用以下公式计算负载评分:
R=u*(c+m-c*m)+(1-u)*(fs+fc-fs*fc),
其中,u是权重因子,设定为0.382;CPU使用率c和内存使用率m均为性能指标,平均流量大小的波动率fs和平均流量复杂度的波动率fc为流量性能指标;预测的负载评分R值越高,说明Spark应用程序的负载要求越高,则需要更高的资源配置。
步骤2.4:根据负载评分的变化,自适应调整driver memory、executor memory、driver core、executor core等值;
输出预测值的driver memory,executor memory,driver core,executor core等值,修改启动脚本,进行资源配置。
针对流量分析的Spark资源的自动化调度方法,能够充分考虑节点服务器的CPU、内存等基本性能指标,自动化部署资源配置,减少操作人员的负担。
本发明的有益效果如下:
(1)能够通过分析历史数据,推荐出合适的资源配置,无需操作人员进行手动适配。
(2)能够实现集群资源的高效利用,当流量过大、或者流量的复杂度比较高时,会增加应用程序的使用内存和处理线程数,保证程序的正常运行;当流量比较小、流量的复杂度低时,会减少应用程序的使用内存和处理线程数,保证集群中各服务器资源的合理分配。
附图说明
图1为Spark系统架构图;
图2为本发明中初始化资源配置的流程图;
图3为本发明中自适应资源调度器的流程图。
具体实施方式
下面结合附图和实施例对本发明进行详细的描述,但并不以此作为对本申请保护范围的限定。
实施例1
具体实施方式如下:
初始化资源配置流程模块部署:
在现有Spark平台成功部署的情况下,部署本发明的第一个模块。首先需要配置服务器环境:Centos7.5,JDK环境1.8,Python3,Crontab定时脚本,Hive数据库。Crontab定时脚本,主要用来触发监控和收集数据。收集的历史数据,被Python任务进行数据处理,并持久化到HDFS中。数据分析模块,会从HDFS库中捞取处理后的数据,利用协同过滤算法找到历史记录中与当前最新的配置的最相似的记录,得到较为合适的资源配置。
自适应资源调度器模块部署:
在Spark应用程序正常启动的情况下,Crontab定时任务会实时监控流量大小、流量类型的复杂度,以及Spark应用程序的告警日志和运行时间。然后交由数据处理模块进行数据的标准化处理,持久化到HDFS中。最后数据分析模块,会通过GBDT算法计算出适配的driver memory,executor memory,driver core,executor core,并且写入启动脚本,重启Spark应用程序。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的仅为本发明的优选例,并不用来限制本发明,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

Claims (3)

1.一种针对流量分析的Spark平台动态资源调配方法,其特征在于,包括部分,其中,第一部分:通过Spark资源调度器,根据服务器中的CPU、内存等基本性能指标,结合Spark任务流程的复杂度,推荐一种较为合适的内存和核数的组合配置;第二部分:实现一种资源调度器,通过分析应用程序占用的CPU、内存、以及负载的网络流量数据特征,结合ARSA算法进行资源自适应分配。
2.根据权利要求1所述的一种针对流量分析的Spark平台动态资源调配方法,其特征在于,所述第一部分具体步骤如下:
步骤1.1:根据基于同一Spark平台的历史任务,抽取各任务所有时间节点采集到的CPU负载、内存负载、处理数据量;
步骤1.2:根据stage、action、io等spark特点计算出各历史任务的平均CPU负载、平均内存负载、任务复杂度、处理数据量峰值;
步骤1.3:分别构建driver memory、executor memory、driver core、executor core四个类评分矩阵Rdm_(m×n),Rem_(m×n),Rdc_(m×n),Rec_(m×n);
步骤1.4:将各矩阵中的平均CPU负载、平均内存负载、任务复杂度、处理数据量峰值,做标准化评分处理,落在评分[1,5]的区间中;
步骤1.5:设置当前spark任务的初始向量,任务复杂度根据真实情况计算,drivermemory配置、平均CPU负载和平均内存负载为各历史任务的均值,处理数据量峰值为期望预估值;
步骤1.6:根据协同过滤算法,计算当前spark任务和历史各任务之间的相似度sim集合,求得与当前任务最相似的N个邻居;
步骤1.7:根据这N个邻居的实际driver memory配置,使用协同过滤预测评分公式,预测当前spark任务最合适的初始driver memory配置。
3.根据权利要求1所述的一种针对流量分析的Spark平台动态资源调配方法,其特征在于,所述第二部分具体步骤如下:
步骤2.1:每隔15分钟收集同一应用程序的历史数据,包括CPU使用率、内存使用率、流量大小、流量类型复杂度,以及当时分配的driver memory、executor memory、drivercore、executor core这8个指标值。
步骤2.2:数据处理。
步骤2.3:利用以下公式计算负载评分:
R=u*(c+m-c*m)+(1-u)*(fs+fc-fs*fc)
其中,u是权重因子,设定为0.382;CPU使用率c和内存使用率m均为性能指标,平均流量大小的波动率fs和平均流量复杂度的波动率fc为流量性能指标;预测的负载评分R值越高,说明Spark应用程序的负载要求越高,则需要更高的资源配置。
步骤2.4:根据负载评分的变化,自适应调整driver memory、executor memory、drivercore、executor core等值;
输出预测值的driver memory,executor memory,driver core,executor core等值,修改启动脚本,进行资源配置。
CN202011559649.9A 2020-12-25 2020-12-25 一种针对流量分析的Spark平台动态资源调配方法 Active CN112612587B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011559649.9A CN112612587B (zh) 2020-12-25 2020-12-25 一种针对流量分析的Spark平台动态资源调配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011559649.9A CN112612587B (zh) 2020-12-25 2020-12-25 一种针对流量分析的Spark平台动态资源调配方法

Publications (2)

Publication Number Publication Date
CN112612587A true CN112612587A (zh) 2021-04-06
CN112612587B CN112612587B (zh) 2022-05-10

Family

ID=75245048

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011559649.9A Active CN112612587B (zh) 2020-12-25 2020-12-25 一种针对流量分析的Spark平台动态资源调配方法

Country Status (1)

Country Link
CN (1) CN112612587B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116094815A (zh) * 2023-02-03 2023-05-09 广州万协通信息技术有限公司 基于流量自适应控制调节的数据加密处理方法及装置
CN116204248A (zh) * 2023-05-05 2023-06-02 北京睿企信息科技有限公司 一种集群服务器的配置系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106506266A (zh) * 2016-11-01 2017-03-15 中国人民解放军91655部队 基于GPU、Hadoop/Spark混合计算框架的网络流量分析方法
US9672064B2 (en) * 2015-07-13 2017-06-06 Palo Alto Research Center Incorporated Dynamically adaptive, resource aware system and method for scheduling
CN107291550A (zh) * 2017-06-22 2017-10-24 华中科技大学 一种针对迭代应用的Spark平台资源动态分配方法及系统
CN107734052A (zh) * 2017-11-02 2018-02-23 华南理工大学 面向组件依赖的负载均衡容器调度方法
CN109684078A (zh) * 2018-12-05 2019-04-26 苏州思必驰信息科技有限公司 用于spark streaming的资源动态分配方法和系统
US20190370146A1 (en) * 2018-06-05 2019-12-05 Shivnath Babu System and method for data application performance management

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9672064B2 (en) * 2015-07-13 2017-06-06 Palo Alto Research Center Incorporated Dynamically adaptive, resource aware system and method for scheduling
CN106506266A (zh) * 2016-11-01 2017-03-15 中国人民解放军91655部队 基于GPU、Hadoop/Spark混合计算框架的网络流量分析方法
CN107291550A (zh) * 2017-06-22 2017-10-24 华中科技大学 一种针对迭代应用的Spark平台资源动态分配方法及系统
CN107734052A (zh) * 2017-11-02 2018-02-23 华南理工大学 面向组件依赖的负载均衡容器调度方法
US20190370146A1 (en) * 2018-06-05 2019-12-05 Shivnath Babu System and method for data application performance management
CN109684078A (zh) * 2018-12-05 2019-04-26 苏州思必驰信息科技有限公司 用于spark streaming的资源动态分配方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
胡亚红: "资源不均衡Spark环境任务调度优化算法研究", 《计算机工程与科学》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116094815A (zh) * 2023-02-03 2023-05-09 广州万协通信息技术有限公司 基于流量自适应控制调节的数据加密处理方法及装置
CN116094815B (zh) * 2023-02-03 2023-12-22 广州万协通信息技术有限公司 基于流量自适应控制调节的数据加密处理方法及装置
CN116204248A (zh) * 2023-05-05 2023-06-02 北京睿企信息科技有限公司 一种集群服务器的配置系统
CN116204248B (zh) * 2023-05-05 2023-07-07 北京睿企信息科技有限公司 一种集群服务器的配置系统

Also Published As

Publication number Publication date
CN112612587B (zh) 2022-05-10

Similar Documents

Publication Publication Date Title
US9093841B2 (en) Power distribution network event correlation and analysis
CN112685170B (zh) 备份策略的动态优化
CN112612587B (zh) 一种针对流量分析的Spark平台动态资源调配方法
Cámara et al. Evolving an adaptive industrial software system to use architecture-based self-adaptation
US10574552B2 (en) Operation of data network
CN112398700B (zh) 一种服务降级方法及装置、存储介质、计算机设备
Sîrbu et al. Towards data-driven autonomics in data centers
CN113656168A (zh) 一种流量的自动容灾和调度的方法、系统、介质和设备
CN114443441B (zh) 一种存储系统管理方法、装置、设备及可读存储介质
Sîrbu et al. Towards operator-less data centers through data-driven, predictive, proactive autonomics
CN109510721A (zh) 一种基于Syslog的网络日志管理方法与系统
CN110363381B (zh) 一种信息处理方法和装置
CN108268351A (zh) 一种进程运行状态精确监控方法及系统
CN113656367A (zh) 一种bmc日志收集方法及系统
CN111506425B (zh) 服务质量数据处理方法和装置
CN112800089B (zh) 一种中间数据存储级别调整方法、存储介质及计算机设备
CN116126415A (zh) 一种基于场景的上云组件配置推荐方法及系统
CN113448747A (zh) 数据传输方法、装置、计算机设备和存储介质
Xue et al. Proactive management of systems via hybrid analytic techniques
CN115146261B (zh) 应对数字云服务的数据威胁处理方法及服务器
CN117148705B (zh) 基于数据监控分析的设备运行状态检测方法及系统
KR102426889B1 (ko) 대용량 이벤트 로그에 대한 로그 타입별 데이터 분석 처리 장치, 방법 및 프로그램
CN113656242B (zh) 一种服务器集群的监控方法及系统
CN115396319B (zh) 数据流分片方法、装置、设备及存储介质
US11340940B2 (en) Workload assessment and configuration simulator

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