CN115827237A - 一种基于性价比的storm任务调度方法 - Google Patents
一种基于性价比的storm任务调度方法 Download PDFInfo
- Publication number
- CN115827237A CN115827237A CN202211594280.4A CN202211594280A CN115827237A CN 115827237 A CN115827237 A CN 115827237A CN 202211594280 A CN202211594280 A CN 202211594280A CN 115827237 A CN115827237 A CN 115827237A
- Authority
- CN
- China
- Prior art keywords
- cost
- cost performance
- performance
- task
- storm
- 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.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及大数据流处理领域,涉及一种基于性价比的storm任务调度方法。该方法包括基于Storm流处理框架,构建出基于流处理的性价比模型,提交拓扑后判断在性价比数据库中是否有该拓扑的性价比信息,若有则在满足时延SLA和资源约束的条件下,按照性价比优先级来放置线程,否则以默认调度算法的方式来放置;监控集群中的task线程的性能,统计成本信息,写入性价比数据库,评判出计算资源放置的性价比优先级列表,并更新优先级列表,重新提交该拓扑。使本发明方法能够有效地权衡流式作业运行时的综合性能和成本,使用图划分思想进一步优化集群调度的性能,并考虑了资源容量的情况,使得集群以高性价比的方式调度。
Description
技术领域
本发明涉及大数据流处理领域,具体涉及一种基于性价比的storm任务调度方法。
背景技术
在大数据时代,流计算是一种实时计算框架,它能够在几分钟内将任意复杂的数据处理工作部署到数百到数千个计算节点上,然后实时地处理输入数据流,从中提取有价值的信息。由于越来越多的新兴应用场景严重依赖数据流的实时处理,流计算正获得很大的关注。现在有几个被广泛采用的流计算引擎,包括Apache Storm、Apache Flink、ApacheSpark Streaming等。其中Storm引擎是很受欢迎的流计算系统之一。例如,雅虎选择的平台是Apache Storm,它取代了内部开发的S4平台。JStorm(现已并入Apache Storm)被阿里巴巴(Alibaba Inc.)使用。流计算系统几分钟内将任意复杂的数据处理工作部署到数百到数千个计算节点上。
Storm提供了一个可靠的消息处理框架来实现处理逻辑,它的三个主要组件是:Spout、Bolt和Topology(拓扑);在Storm中,流应用逻辑被抽象为流拓扑。拓扑是有向无环图(DAG)。DAG中的顶点表示spout或者bolt组件。Spout是数据流的源,通常从外部读取数据源,然后将元组发射到Bolt中。一个Bolt使用来自Spout或其他的Bolt的元组(tuple),并以用户提交的代码逻辑来进行处理。它们能够在多台物理主机上并行的执行任务。DAG中的边表示这些顶点之间的通信通道。DAG提交到流计算系统并部署在一个或多个计算节点上。在物理逻辑上,Storm集群是由其主节点Nimbus和从节点Supervisor组成的,它们之间是使用Zookeeper来进行通信。一旦用户提交拓扑信息,Nimbus就会根据其任务信息,将任务分发给各个节点下的Supervisor来进行处理。在任务调度方面,Storm中的任务调度是两级调度:(1)将进程分配给节点,(2)将线程分配给进程。
关于storm作业调度算法,前人给出了很多思路,比如成本效益和延迟感知的工作流调度算法、流拓扑模型和资源调度模型LR-Stream、最大吞吐量调度器、模型驱动的映射和分配调度算法、状态和运行时感知的弹性流计算系统调度框架等等。这些研究要么优化了调度的性能(如优化吞吐量和延迟,提高资源利用率,减少系统响应时间或能量消耗等),要么优化了调度的成本。然而对于性价比指标,却鲜有人研究。如何把握性能和价格的权衡尺度,把流式作业在满足资源约束和性能约束的情况下提供较具性价比的调度方案,是本领域技术人员亟待解决的技术问题。
发明内容
基于现有技术存在的问题,本发明提供了一种基于性价比的storm任务调度方法,所述性价比模型包括以下步骤:
S1、基于Storm流处理框架,构建出基于流处理的性价比模型;
S2、在提交拓扑任务前,把拓扑进行图划分,某些关联任务划分到同一个进程,若某个进程超过相应Slot资源阈值,则重新划分直到划分成功,提交拓扑;
S3、在提交拓扑任务后,判断性价比模型的数据库中是否存在该拓扑任务的性价比信息;
S4、若性价比模型的数据库中存在该任务的性价比信息,则获取当前拓扑任务的资源需求和时延SLA约束;若当前任务的资源需求超载或者不满足SLA时延约束,则调整并行度,重新提交该拓扑任务并返回步骤S3;否则根据数据库中的性价比优先级顺序表,在满足资源约束的情况下,以性价比最大化的调度策略来分配任务;
S5、若性价比模型的数据库中不存在该任务的性价比信息,则将当前拓扑任务按照默认的调度策略来分配任务,监控每个节点的性能并写入数据库;从数据库获取所需要的数据,计算每个节点所耗费的成本;通过性价比模型,计算各个节点的计算资源Slot的性价比,将其写入性价比模型的数据库中;根据性价比模型评判计算资源的性价比优先级顺序表,并更新任务放置列表,重新提交该拓扑任务并返回步骤S3。
本发明的有益效果:
本发明的任务调度方法能够基于关联任务图划分的思想,在满足Slot资源阈值的情况下,把某些关联任务放置到同一进程,提高作业处理性能;在作业调度前考虑了资源约束和时延SLA约束,以减少集群超载的情况,优化调度性能;有效地权衡流式作业运行时的综合性能和成本,使得集群以高性价比的方式调度拓扑任务;
附图说明
图1为本发明实施例中Storm的调度框架结构示意图;
图2为本发明实施例中关联任务分配到进程的示意图;
图3为本发明实施例中的基于性价比的storm任务调度方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
Storm大数据框架,如图1所示,一个流式计算作业(拓扑)在提交到storm平台进行处理后,会由Nimbus通过在zookeeper上写状态信息来分配任务,而Supervisor则通过从Zookeeper上读取这些状态信息从而执行具体任务。一个流式作业拓扑逻辑上是一个拓扑结构,由多个Supervisor节点协同处理,每个Supervisor节点上又包含了多个进程;对于任意的进程上会运行一个或者多个线程,一个线程上运行一个或者多个task任务。task任务分为spout和bolt任务。Spout像适配器一样连接到Storm的数据源,将数据转换为元组,发射到下游的Bolt。Bolt可以被认为是运算操作或函数,上游Bolt处理完成之后可以把数据传送给下游Bolt进行下一步处理,各种bolt还可以串联成一个计算链条。
图3是本发明实施例的提供一种基于性价比的storm任务调度方法流程图,如图3所示,所述性价比模型至少包括:
S1、基于Storm流处理框架,构建出基于流处理的性价比模型;
S2、在提交拓扑任务前,把拓扑进行图划分,某些关联任务划分到同一个进程,若某个进程超过节点Slot资源阈值,则重新划分直到划分成功,提交拓扑;
S3、在提交拓扑任务后,判断性价比模型的数据库中是否存在该拓扑任务的性价比信息;
S4、若性价比模型的数据库中存在该任务的性价比信息,则获取当前拓扑任务的资源需求和时延SLA约束;若当前任务的资源需求超载或者不满足SLA时延约束,则调整并行度,重新提交该拓扑任务并返回步骤S3;否则根据数据库中的性价比优先级顺序表,在满足资源约束的情况下,以性价比最大化的调度策略来分配任务;
S5、若性价比模型的数据库中不存在该任务的性价比信息,则将当前拓扑任务按照默认的调度策略来分配任务,监控每个节点的性能并写入数据库;从数据库获取所需要的数据,计算每个节点所耗费的成本;通过性价比模型,计算各个节点的计算资源Slot的性价比,将其写入性价比模型的数据库中;根据性价比模型评判计算资源的性价比优先级顺序表,并更新任务放置列表,重新提交该拓扑任务并返回步骤S3。
Storm大数据框架,如图1所示,一个流式计算作业(拓扑)在提交到storm平台进行处理后,会由Nimbus通过在zookeeper上写状态信息来分配任务,而Supervisor则通过从Zookeeper上读取这些状态信息从而执行具体任务。一个流式作业逻辑上是一个拓扑结构,由多个Supervisor节点协同处理,每个Supervisor节点上又包含了多个进程(worker);对于任意的进程上会运行一个或者多个线程,一个线程上运行一个或者多个task任务。task任务分为Spout和Bolt任务。Spout像适配器一样连接到Storm的数据源,将数据转换为元组,发射到下游的Bolt。Bolt可以被认为是运算操作或函数,上游Bolt处理完成之后可以把数据传送给下游Bolt进行下一步处理,各种Bolt还可以串联成一个计算链条。
本发明的调度算法使用了Storm的自定义调度器。自定义调度器可以把多个Spout和Bolt类型的task放进一个线程;也可以多个线程可以放进一个进程,前提是要满足资源约束和性能约束,然后可以把一个进程放置到集群的某个指定的Slot,来实现自定义调度。
本发明改进的基于Storm流式计算框架包括Storm拓扑预处理、Storm调度器、主节点、从节点和性价比模型数据数据库。每个从节点放置了监控模块,用于监控从节点的性能和成本信息也即从节点计算资源的性能信息,并将数据信息写入性价比模型数据库,Storm调度器根据性价比模型数据库中性价比优先级顺序表直接或间接控制主节点、从节点完成任务。
提出基于性价比的storm任务调度方法,首先需要对Storm拓扑进行预处理,在满足Slot资源阈值前提下,对拓扑任务进行图划分,具体步骤包括,寻找某任务的上下游的关联任务,封装进入进程,若当前图划分的进程的资源需求超过对应的Slot的资源阈值,则重新图划分,直到成功。如图2,t1和t8都是t4的关联任务,可以把t1、t4、t8都封装进入一个进程,若当前进程的资源需求不大于要放置的slot资源容量,划分成功,否则重新划分。图划分成功应当满足如下公式:
WR<=αSR
其中,表示第m个任务taskm的资源需求,表示taskm的某些上游关联任务的资源需求总和,表示taskm的某些下游关联任务的资源需求总和;WR表示进程的资源需求,SR表示把该进程放置到的相应Slot的资源阈值;α为一个常量系数。
在一些实施例中,本发明提出基于性价比的storm任务调度方法,需要给出基于流处理的性能模型和成本模型。其中性能指标包括:时延违反率、时效率需求满足率。成本包括能耗成本。
其中,性能指标——时延违反率,指的是进程处理一个tuple的时延超过用户指定的截止期所耗费的时间。时延违反率V(t)的统计方式如下:
其中σ(t)表示在高性价比调度算法下,一个线程在时间t内处理一个tuple的时延的平均值;θ表示默认调度算法下,一个线程在时间t内处理一个tuple的时延的平均值;其中σ(t)如下:
其中,N表示tuple总数。t(i,process)表示一个tuple的逻辑处理时延。
其中,性能指标——时效率需求满足率,指的是进程在某段时间内成功在截止期前完成的数据量,和这段时间内到达的总数据量的比值。该性能指标用于描述该进程的吞吐量,统计方式如下:
其中N(T)表示在时间T内到达的数据量,S(T)表示在时间T内成功在截止期内完成的数据量。
耗成本,E为线程的总数量。
然后,结合上述两个性能指标,做一个综合的性能评价指标,来权衡二者对于性能影响的程度。综合性能指标F如下表示:
其中,L表示时延违反率,T表示时效率需求满足率,σ是一个常量,用于确定这两个性能指标的重要程度。一般情况下σ取值为1、1/2、2。σ取1表示这两个指标一样重要。
本发明的最终目的是Storm流式作业在调度的过程中,在满足资源约束和时延SLA约束情况下,找出最大化性价比的作业调度方式。
本发明首次提出流式作业的性价比优先的进程放置策略和Storm的性价比评测方法,以此为依据修改了Storm的默认调度策略,做出最大化性价比的任务分配,解决了Storm的默认调度算法没有考虑作业调度的性价比的问题;此外,本发明使用关联任务的图划分思想和资源约束条件来预处理拓扑,优化集群调度性能。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (10)
1.一种基于性价比的storm任务调度方法,其特征在于,包括以下步骤:
S1、基于Storm流处理框架,构建出基于流处理的性价比模型;
S2、在提交拓扑任务前,把拓扑进行图划分,将某些关联任务划分到同一个进程,若某个进程超过相应Slot资源阈值,则重新进行图划分直到划分成功,提交拓扑;
S3、在提交拓扑任务后,判断性价比模型的数据库中是否存在该拓扑任务的性价比信息;
S4、若性价比模型的数据库中存在该任务的性价比信息,则获取当前拓扑任务的资源需求和时延SLA约束;若当前任务的资源需求超载或者不满足SLA时延约束,则调整并行度,重新提交该拓扑任务并返回步骤S3;否则根据数据库中的性价比优先级顺序表,在满足资源约束的情况下,以性价比最大化的调度策略来分配任务;
S5、若性价比模型的数据库中不存在该任务的性价比信息,则将当前拓扑任务按照默认的调度策略来分配任务,监控每个节点的性能并写入数据库;从数据库获取所需要的数据,计算每个节点所耗费的成本;通过性价比模型,计算各个节点的计算资源Slot的性价比,将其写入性价比模型的数据库中;根据性价比模型评判计算资源的性价比优先级顺序表,并更新任务放置列表,重新提交该拓扑任务并返回步骤S3。
3.根据权利要求1所述的一种基于性价比的storm任务调度方法,其特征在于,所述基于性价比的Storm流处理框架包括Storm自定义调度器、主节点、从节点、性价比模型数据库;每个从节点包括多个进程和一个监控模块,所述监控模块用于监控从节点的计算资源的性能信息,并将数据信息写入性价比模型的数据库,所述Storm调度器根据性价比优先级顺序表直接或间接控制主节点、从节点完成任务调度。
4.根据权利要求1所述的一种基于性价比的storm任务调度方法,其特征在于,所述基于流处理的性价比模型包括综合性能模型和成本模型;所述综合性能模型包括多个性能指标,所述成本模型包括成本指标;其中性能指标包括时延违反率和时效率需求满足率;所述成本指标包括能耗成本。
10.根据权利要求1所述的一种基于性价比的storm任务调度方法,其特征在于,所述性价比模型还包括统计流式作业运行的综合性能和成本,建立计算资源的性价比优先级顺序表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211594280.4A CN115827237A (zh) | 2022-12-13 | 2022-12-13 | 一种基于性价比的storm任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211594280.4A CN115827237A (zh) | 2022-12-13 | 2022-12-13 | 一种基于性价比的storm任务调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115827237A true CN115827237A (zh) | 2023-03-21 |
Family
ID=85546729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211594280.4A Pending CN115827237A (zh) | 2022-12-13 | 2022-12-13 | 一种基于性价比的storm任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115827237A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116566789A (zh) * | 2023-04-13 | 2023-08-08 | 南京优玛软件科技有限公司 | 商机引擎实时流处理方法 |
-
2022
- 2022-12-13 CN CN202211594280.4A patent/CN115827237A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116566789A (zh) * | 2023-04-13 | 2023-08-08 | 南京优玛软件科技有限公司 | 商机引擎实时流处理方法 |
CN116566789B (zh) * | 2023-04-13 | 2024-05-10 | 南京优玛软件科技有限公司 | 商机引擎实时流处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107038069B (zh) | Hadoop平台下动态标签匹配DLMS调度方法 | |
CN110995614B (zh) | 一种算力资源分配的方法及装置 | |
US20170255496A1 (en) | Method for scheduling data flow task and apparatus | |
WO2020206705A1 (zh) | 一种基于集群节点负载状态预测的作业调度方法 | |
CN103605567B (zh) | 面向实时性需求变化的云计算任务调度方法 | |
WO2017045211A1 (zh) | 一种多服务质量约束的云计算任务调度方法 | |
CN103324525B (zh) | 一种云计算环境下的任务调度方法 | |
US20100125847A1 (en) | Job managing device, job managing method and job managing program | |
CN104902001B (zh) | 基于操作系统虚拟化的Web请求负载均衡方法 | |
CN104657221A (zh) | 一种云计算中基于任务分类的多队列错峰调度模型及方法 | |
CN106713396B (zh) | 服务器调度方法和系统 | |
CN108270805B (zh) | 用于数据处理的资源分配方法及装置 | |
CN101271405A (zh) | 基于QoS约束的双向分级网格资源调度方法 | |
CN108491255B (zh) | 自助式MapReduce数据优化分配方法及系统 | |
CN115827237A (zh) | 一种基于性价比的storm任务调度方法 | |
CN104794239A (zh) | 一种云平台数据处理方法 | |
CN115237568A (zh) | 一种面向边缘异构设备的混合权重任务调度方法及系统 | |
CN104657217A (zh) | 一种基于非均匀粒度分类的云环境任务调度方法 | |
CN104346220B (zh) | 一种任务调度方法与系统 | |
CN110084507A (zh) | 云计算环境下分级感知的科学工作流调度优化方法 | |
CN112231081B (zh) | 云环境下基于pso-ahp的单调速率资源调度方法及系统 | |
Yang et al. | Trust-based scheduling strategy for cloud workflow applications | |
CN107220114A (zh) | 基于资源统一调度的分布式资源调度方法 | |
CN115391047A (zh) | 资源调度方法及装置 | |
CN115168014A (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 |