CN116737512B - 一种基于Spark的离线任务执行进度计算与获取方法及装置 - Google Patents

一种基于Spark的离线任务执行进度计算与获取方法及装置 Download PDF

Info

Publication number
CN116737512B
CN116737512B CN202311018195.8A CN202311018195A CN116737512B CN 116737512 B CN116737512 B CN 116737512B CN 202311018195 A CN202311018195 A CN 202311018195A CN 116737512 B CN116737512 B CN 116737512B
Authority
CN
China
Prior art keywords
offline task
progress
offline
index
spark
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
CN202311018195.8A
Other languages
English (en)
Other versions
CN116737512A (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.)
Hangzhou Daishu Technology Co ltd
Original Assignee
Hangzhou Daishu Technology Co ltd
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 Hangzhou Daishu Technology Co ltd filed Critical Hangzhou Daishu Technology Co ltd
Priority to CN202311018195.8A priority Critical patent/CN116737512B/zh
Publication of CN116737512A publication Critical patent/CN116737512A/zh
Application granted granted Critical
Publication of CN116737512B publication Critical patent/CN116737512B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及数据处理技术领域,解决了用户在使用Spark SQL运行离线任务时不能直观的获取到离线任务整体运行进度的问题,公开了一种基于Spark的离线任务执行进度计算与获取方法及装置,包括:计算离线任务中运行的SQL总数,通过自定义JobProgressSource来新增用于描述离线任务进度的指标,将所述指标注册到Spark内部管理系统中的指标管理系统中,自定义JobProgressListener,并将所述JobProgressListener注册到Spark内部管理系统中的ListenerBus,能够将Spark离线任务执行进度情况更细粒度的计算,并将计算结果交由Spark的指标管理系统进行统一管理。

Description

一种基于Spark的离线任务执行进度计算与获取方法及装置
技术领域
本申请涉及数据处理技术领域,尤其是一种基于Spark的离线任务执行进度计算与获取方法及装置。
背景技术
在Spark提供的众多原生指标里,目前还没有一个指标是直接描述任务运行进度情况。和任务执行进度相关的指标有以下两个:application_xx_driver_DAGScheduler_job_allJobs和application_xx_driver_DAGScheduler_job_activeJobs。理想情况下,可以通过对上述两个指标进行相除,即可得到Spark离线任务的执行进度。但是,application_xx_driver_DAGScheduler_job_allJobs的值并不是Spark任务从一开始运行就已经计算好所有的Job的数量。实际情况是,当一个action触发一个Job的时候,上述指标会不断递增,直到没有action算子为止。因此,不能通过以上两个指标来计算任务执行进度。
Spark本身也提供了不完善的任务进度条展示功能。Spark中的配置spark.ui.showconsoleprogress的值默认为true,SparkContext在初始化的时候会创建ConsoleProgressBar对象。ConsoleProgressBar对象会周期性的会从AppStatusStore中获取到已完成的任务数numCompleteTasks以及单个stage总的任务数numTasks,两者相除即可得到每个stage的任务执行进度情况。但是该方式只会在Spark SQL REPL模式下将进度条信息打印出来,并且该进度条信息是stage级别,如果用户要想获取整个Spark离线任务运行过程中整体的执行进度,目前为止,Spark还没有提供对应的解决方案。
发明内容
本申请的目的在于克服用户在使用Spark SQL运行离线任务时不能直观的获取到离线任务整体运行进度的问题,提供一种基于Spark的离线任务执行进度计算与获取方法及装置。
第一方面,提供了一种基于Spark的离线任务执行进度计算与获取方法,包括:
计算离线任务中运行的SQL总数;
通过自定义JobProgressSource来新增用于描述离线任务进度的指标,将所述指标注册到Spark内部管理系统中的指标管理系统中;
自定义JobProgressListener,并将所述JobProgressListener注册到Spark内部管理系统中的ListenerBus,其中,所述JobProgressListener包括用于计算当前Job下所有的Task数量的onJobStart方法、用于在每个Task完成后计算并更新当前离线任务进度的onTaskEnd方法和用于在每个Job完成后计算并更新当前离线任务进度的onJobEnd方法。
还包括:通过Spark内部管理系统将离线任务进度的指标推送到PushGateway,由Prometheus从PushGateway中拉取离线任务进度的指标,由离线平台周期性的从Prometheus中获取离线任务进度的指标并将离线任务进度在离线平台上进行展示。
进一步的,计算离线任务中运行的SQL总数,包括:
获取离线平台中本次离线任务的SQL字符串;
将SQL字符串按照连接的规则拆分成独立的SQL字符串;
计算出独立的SQL字符串的数量即为本次离线任务中运行的SQL总数。
进一步的,所述JobProgressSource实现Spark的org.apache.spark.metrics.source.Source特质。
进一步的,通过调用registerGauge方法将所述指标注册到Spark内部管理的指标管理系统中。
进一步的,所述onJobStart方法包括:
计算每个Job下stage的数量;
计算每个stage下Task的数量;
将当前Job下所有stage下Task的数量相加即得当前Job下所有的Task数量。
进一步的,所述onJobEnd方法包括:通过公式1计算job完成后的离线任务进度并更新:
(1)
其中,P(i,n)为第i条SQL中完成n个Job后的离线任务进度,S为SQL的总数。
进一步的,所述onTaskEnd方法包括:通过公式2计算Task完成后的离线任务进度并更新:
(2)
其中,Pt为第i条SQL的第n个Job中完成X个Task后的离线任务进度,P(i,n-1)为第i条SQL中完成n-1个Job后的离线任务进度,P(i,n)为第i条SQL中完成n个Job后的离线任务进度,t为当前Job中Task的数量。
第二方面,提供了一种基于Spark的离线任务执行进度计算与获取装置,包括:
SQL数计算模块,用于计算离线任务中运行的SQL总数;
指标注册模块,用于通过自定义JobProgressSource来新增用于描述离线任务进度的指标,将所述指标注册到Spark内部管理系统中的指标管理系统中;
JobProgressListener注册模块,用于自定义JobProgressListener,并将所述JobProgressListener注册到Spark内部管理系统中的ListenerBus,其中,所述JobProgressListener包括用于计算当前Job下所有的Task数量的onJobStart方法、用于在每个Job完成后计算并更新当前离线任务进度的onJobEnd方法和用于在每个Task完成后计算并更新当前离线任务进度的onTaskEnd方法。
还包括:指标拉取模块,用于通过Spark内部管理系统将离线任务进度的指标推送到PushGateway,由Prometheus从PushGateway中拉取离线任务进度的指标,由离线平台周期性的从Prometheus中获取离线任务进度的指标并将离线任务进度在离线平台上进行展示。
本申请具有如下有益效果:该方法实现了将Spark离线任务执行进度情况更细粒度的计算,并将计算结果交由Spark的指标管理系统进行统一管理,最后由Spark将指标推送到PushGateway,由Prometheus实时拉取,最后离线平台周期性的从Prometheus中获取任务进度条指标并展示到离线平台上,使得用户可以直观的了解当前离线任务的执行进度情况。
附图说明
构成本申请的一部分的附图用于来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例1的基于Spark的离线任务执行进度计算与获取方法的流程图;
图2是本申请实施例2的基于Spark的离线任务执行进度计算与获取装置的结构框图。
附图标记:
100、SQL数计算模块;200、指标注册模块;300、JobProgressListener注册模块;400、指标拉取模块。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例1
本申请实施例1所涉及的一种基于Spark的离线任务执行进度计算与获取方法,包括:计算离线任务中运行的SQL总数;通过自定义JobProgressSource来新增用于描述离线任务进度的指标,将所述指标注册到Spark内部管理系统中的指标管理系统中;自定义JobProgressListener,并将所述JobProgressListener注册到Spark内部管理系统中的ListenerBus,其中,所述JobProgressListener包括用于计算当前Job下所有的Task数量的onJobStart方法、用于在每个Task完成后计算并更新当前离线任务进度的onTaskEnd方法和用于在每个Job完成后计算并更新当前离线任务进度的onJobEnd方法;通过Spark内部管理系统将离线任务进度的指标推送到PushGateway,由Prometheus从PushGateway中拉取离线任务进度的指标,由离线平台周期性的从Prometheus中获取离线任务进度的指标并将离线任务进度在离线平台上进行展示,该方法实现了将Spark离线任务执行进度情况更细粒度的计算,并将计算结果交由Spark的指标管理系统进行统一管理,最后由Spark将指标推送到PushGateway,由Prometheus实时拉取,最后离线平台周期性的从Prometheus中获取任务进度条指标并展示到离线平台上,使得用户可以直观的了解当前离线任务的执行进度情况。
具体的,图1示出了申请实施例1中的基于Spark的离线任务执行进度计算与获取方法的流程图,包括:
S101、计算离线任务中运行的SQL总数S;
在离线平台中会将用户的多个SQL以分号分隔连接成一个字符串,因此在接收到这个字符串后,先将接收到的SQL字符串根据分号进行拆分,以拆分出一条条SQL。
具体的,获取离线平台中本次离线任务的SQL字符串;
将SQL字符串按照连接的规则拆分成独立的SQL字符串;
计算出独立的SQL字符串的数量即为本次离线任务中运行的SQL总数。
S102、通过自定义JobProgressSource来新增用于描述离线任务进度的指标,其中,所述JobProgressSource实现Spark的org.apache.spark.metrics.source.Source特质,通过调用registerGauge方法将所述指标注册到Spark内部管理的指标管理系统中;
在Spark中需要新增一个或者一类指标时,需要自定义一个类,并且自定义的这个类实现Source特质,这样就可以把这个指标纳入到Spark内部的指标管理系统进行管理。
其中,Source内部定义了sourceName和metricRegistry两个方法,当实现Source特质时,就要重写这两个方法;当需要新增一个指标或者一类指标,会自定义Source,比如说JobProgressSource,并且JobProgressSource实现Source特质,重写sourceName和metricRegistry两个方法。除此之外,JobProgressSource还有一个registerGauge方法,比如说JobProgressSource,sourceName的值为jobProgress,metricRegistry指向一个新创建出来的MetricRegistry对象。metricRegistry可以理解成是JobProgressSource的一个代理。
需要说明的是,Spark内部的指标管理系统是基于Dropwizar这个度量库来构建的,MetricRegistry是这个库的一个核心组件,用来对各个指标进行管理。
在自定义JobProgressSource的过程中,创建了一个MetricRegistry对象。Spark内部的所有指标的管理都是由一个个的MetricRegistry对象进行管理,此时,如果需要新增一个指标,就需要调用metricRegistry的register方法,将指标注册到metricRegistry中,让metricRegistry进行管理,registerGauge方法就是调用了metricRegistry的register方法
S103、自定义JobProgressListener,并将所述JobProgressListener注册到Spark内部管理系统中的ListenerBus,其中,所述JobProgressListener包括用于计算当前Job下所有的Task数量的onJobStart方法、用于在每个Task完成后计算并更新当前离线任务进度的onTaskEnd方法和用于在每个Job完成后计算并更新当前离线任务进度的onJobEnd方法。
其中,所述onJobStart方法包括:
计算每个Job下stage的数量;
计算每个stage下Task的数量;
将当前Job下所有stage下Task的数量相加即得当前Job下所有的Task数量t。
需要说明的是,在一个job下面会被切分成一个个stage,每个stage下也有一个个Task。onJobStart、onJobEnd、onTaskEnd这几个方法可以理解成是一个钩子方法,当一个job开始执行,Spark就会调用onJobStart方法,onJobStart方法有一个入参为SparkListenerJobStart对象,从这个对象就可以获取到这个job下所有StageInfo对象。而StageInfo对象下的numTasks成员变量就记录了一个stage下的所有Task数量。
所述onJobEnd方法包括:通过公式1计算job完成后的离线任务进度并更新:
(1)
其中,P(i,n)为第i条SQL中完成n个Job后的离线任务进度,S为SQL的总数。
当一个job执行完毕,Spark就会调用onJobEnd方法,我们是可以计算到每个job完成之后进度条的百分比的,onJobEnd方法就是在这个job结束之后,更新进度条的百分到对应的值。
所述onTaskEnd方法包括:通过公式2计算Task完成后的离线任务进度并更新:
(2)
其中,Pt为第i条SQL的第n个Job中完成X个Task后的离线任务进度,P(i,n-1)为第i条SQL中完成n-1个Job后的离线任务进度,P(i,n)为第i条SQL中完成n个Job后的离线任务进度,t为当前Job中Task的数量。
需要说明的是,当一个Task执行完毕,Spark就会调用onTaskEnd方法。onTaskEnd方法核心的算法是计算出一个Task完成后整个进度条的百分比是多少并对进度条进行更新。
在一个具体的实施例中,该离线任务中共有两条SQL,即S=2:
在第一条SQL完成之后,进度条就到达到50%,第二条SQL完成之后,进度条就会达到100%;
在运行第一条SQL过程中,首先会运行第一个Job,调用onJobStart方法,计算出这个job下一共有2个Task,即t=2,在运行第一个Job的过程中,虽然Job还没运行结束,但是通过onJobEnd方法可以计算出第一个Job完成后的进度百分比为:,等到第一个Job运行结束后,会调用onJobEnd方法,此时在onJobEnd方法中直接将进度条百分比的值更新为25%,当第一个Task完成后,即i=1,n=1,X=1,t=2,通过onTaskEnd方法可以计算出第一个Task完成后的进度百分比为:/>;当第二个Task完成后,即i=1,n=1,X=2,t=2,通过onTaskEnd方法可以计算出第二个Task完成后的进度百分比为:/>
在运行第一条SQL过程中,在第一个Job完成后,会运行第二个Job,调用onJobStart方法,计算出这个job下一共有2个Task,即t=2,由于无法得知一条SQL中有多少个Job,因此,需要先通过onJobEnd方法计算出第二个Job完成后的进度百分比为:,等到第二个Job运行结束后,会调用onJobEnd方法,此时在onJobEnd方法中直接将进度条百分比的值更新为37.5%,当第一个Task完成后,即i=1,n=2,X=1,t=1,通过onTaskEnd方法可以计算出第一个Task完成后的进度百分比为:;当第二个Task完成后,即i=1,n=2,X=2,t=2,通过onTaskEnd方法可以计算出第二个Task完成后的进度百分比为:,由于第二个Job只有两个Task,所以在第二个Task完成后第二个Job也完成了,所以通过onJobEnd方法和onTaskEnd方法计算出的离线任务的进度百分比都为37.5%;以此类推,可以在某一个Job或某一个Task完成后自动计算出离线任务的进度条的百分比。
需要说明的是,JobProgressListener的作用是计算离线任务进度,JobProgressSource的作用是将此时此刻指标的值(即JobProgressListener所计算出的离线任务进度)注册到Spark内部的指标管理系统中,后续Spark内部的指标管理系统会每隔一段时间将指标值push到destination,比如PushGateway。
S104、通过Spark内部管理系统将离线任务进度的指标推送到PushGateway,由Prometheus从PushGateway中拉取离线任务进度的指标,由离线平台周期性的从Prometheus中获取离线任务进度的指标并将离线任务进度在离线平台上进行展示。
需要说明的是,Prometheus是一个开源的监控和报警系统,Prometheus可以收集并保存指标数据,一般来说,Prometheus可以每隔一段时间自动将源头的指标数据拉取过来。但是有一些特殊情况,比如说针对运行时间比较短的任务,Prometheus还没来得及拉取数据,任务就结束了。像这种任务较优的方式是将指标先推送到PushGateway,此时,PushGateway可以理解成是一个中间商,我们可以先把指标数据推送到PushGateway,然后Prometheus去PushGateway将指标数据拉取过来,最后再由离线平台周期性的从Prometheus中获取离线任务进度的指标并将离线任务进度在离线平台上进行展示。
实施例2
如图2所示,本申请实施例2所涉及的一种基于Spark的离线任务执行进度计算与获取装置,包括:
SQL数计算模块100,用于计算离线任务中运行的SQL总数;
指标注册模块200,用于通过自定义JobProgressSource来新增用于描述离线任务进度的指标,将所述指标注册到Spark内部管理系统中的指标管理系统中;
JobProgressListener注册模块300,用于自定义JobProgressListener,并将所述JobProgressListener注册到Spark内部管理系统中的ListenerBus,其中,所述JobProgressListener包括用于计算当前Job下所有的Task数量的onJobStart方法、用于在每个Job完成后计算并更新当前离线任务进度的onJobEnd方法和用于在每个Task完成后计算并更新当前离线任务进度的onTaskEnd方法。
还包括:指标拉取模块400,用于通过Spark内部管理系统将离线任务进度的指标推送到PushGateway,由Prometheus从PushGateway中拉取离线任务进度的指标,由离线平台周期性的从Prometheus中获取离线任务进度的指标并将离线任务进度在离线平台上进行展示。
本实施例的系统实现了将Spark离线任务执行进度情况更细粒度的计算,并将计算结果交由Spark的指标管理系统进行统一管理,最后由Spark将指标推送到PushGateway,由Prometheus实时拉取,最后离线平台周期性的从Prometheus中获取任务进度条指标并展示到离线平台上,使得用户可以直观的了解当前离线任务的执行进度情况。
以上,仅为本申请较佳的具体实施方式;但本申请的保护范围并不局限于此。任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,根据本申请的技术方案及其改进构思加以等同替换或改变,都应涵盖在本申请的保护范围内。

Claims (5)

1.一种基于Spark的离线任务执行进度计算与获取方法,其特征在于,包括:
计算离线任务中运行的SQL总数;
通过自定义JobProgressSource来新增用于描述离线任务进度的指标,将所述指标注册到Spark内部管理系统中的指标管理系统中;
自定义JobProgressListener,并将所述JobProgressListener注册到Spark内部管理系统中的ListenerBus,其中,所述JobProgressListener包括用于计算当前Job下所有的Task数量的onJobStart方法、用于在每个Task完成后计算并更新当前离线任务进度的onTaskEnd方法和用于在每个Job完成后计算并更新当前离线任务进度的onJobEnd方法;
通过Spark内部管理系统将离线任务进度的指标推送到PushGateway,由Prometheus从PushGateway中拉取离线任务进度的指标,由离线平台周期性的从Prometheus中获取离线任务进度的指标并将离线任务进度在离线平台上进行展示;
其中,所述onJobStart方法包括:
计算每个Job下stage的数量;
计算每个stage下Task的数量;
将当前Job下所有stage下Task的数量相加即得当前Job下所有的Task数量;
所述onJobEnd方法包括:通过公式(1)计算job完成后的离线任务进度并更新:
其中,P(i,n)为第i条SQL中完成n个Job后的离线任务进度,S为SQL的总数;
所述onTaskEnd方法包括:通过公式(2)计算Task完成后的离线任务进度并更新:
其中,Pt为第i条SQL的第n个Job中完成X个Task后的离线任务进度,P(i,n-1)为第i条SQL中完成n-1个Job后的离线任务进度,P(i,n)为第i条SQL中完成n个Job后的离线任务进度,t为当前Job中Task的数量。
2.根据权利要求1所述的基于Spark的离线任务执行进度计算与获取方法,其特征在于,计算离线任务中运行的SQL总数,包括:
获取离线平台中本次离线任务的SQL字符串;
将SQL字符串按照连接的规则拆分成独立的SQL字符串;
计算出独立的SQL字符串的数量即为本次离线任务中运行的SQL总数。
3.根据权利要求1所述的基于Spark的离线任务执行进度计算与获取方法,其特征在于,所述JobProgressSource实现Spark的org.apache.spark.metrics.source.Source特质。
4.根据权利要求1所述的基于Spark的离线任务执行进度计算与获取方法,其特征在于,通过调用registerGauge方法将所述指标注册到Spark内部管理的指标管理系统中。
5.一种基于Spark的离线任务执行进度计算与获取装置,其特征在于,包括:
SQL数计算模块,用于计算离线任务中运行的SQL总数;
指标注册模块,用于通过自定义JobProgressSource来新增用于描述离线任务进度的指标,将所述指标注册到Spark内部管理系统中的指标管理系统中;
JobProgressListener注册模块,用于自定义JobProgressListener,并将所述JobProgressListener注册到Spark内部管理系统中的ListenerBus,其中,所述JobProgressListener包括用于计算当前Job下所有的Task数量的onJobStart方法、用于在每个Job完成后计算并更新当前离线任务进度的onJobEnd方法和用于在每个Task完成后计算并更新当前离线任务进度的onTaskEnd方法;
指标拉取模块,用于通过Spark内部管理系统将离线任务进度的指标推送到PushGateway,由Prometheus从PushGateway中拉取离线任务进度的指标,由离线平台周期性的从Prometheus中获取离线任务进度的指标并将离线任务进度在离线平台上进行展示;
其中,所述onJobStart方法包括:
计算每个Job下stage的数量;
计算每个stage下Task的数量;
将当前Job下所有stage下Task的数量相加即得当前Job下所有的Task数量;
所述onJobEnd方法包括:通过公式(1)计算job完成后的离线任务进度并更新:
其中,P(i,n)为第i条SQL中完成n个Job后的离线任务进度,S为SQL的总数;
所述onTaskEnd方法包括:通过公式(2)计算Task完成后的离线任务进度并更新:
其中,Pt为第i条SQL的第n个Job中完成X个Task后的离线任务进度,P(i,n-1)为第i条SQL中完成n-1个Job后的离线任务进度,P(i,n)为第i条SQL中完成n个Job后的离线任务进度,t为当前Job中Task的数量。
CN202311018195.8A 2023-08-14 2023-08-14 一种基于Spark的离线任务执行进度计算与获取方法及装置 Active CN116737512B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311018195.8A CN116737512B (zh) 2023-08-14 2023-08-14 一种基于Spark的离线任务执行进度计算与获取方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311018195.8A CN116737512B (zh) 2023-08-14 2023-08-14 一种基于Spark的离线任务执行进度计算与获取方法及装置

Publications (2)

Publication Number Publication Date
CN116737512A CN116737512A (zh) 2023-09-12
CN116737512B true CN116737512B (zh) 2023-11-10

Family

ID=87910085

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311018195.8A Active CN116737512B (zh) 2023-08-14 2023-08-14 一种基于Spark的离线任务执行进度计算与获取方法及装置

Country Status (1)

Country Link
CN (1) CN116737512B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123214A (zh) * 2013-04-26 2014-10-29 阿里巴巴集团控股有限公司 基于运行时数据的任务执行进度度量和展示的方法及系统
CN109726175A (zh) * 2018-12-29 2019-05-07 北京赛思信安技术股份有限公司 一种基于HBase的海量文件离线分区管理方法
CN110717093A (zh) * 2019-08-27 2020-01-21 广东工业大学 一种基于Spark的电影推荐系统及方法
CN110990476A (zh) * 2019-12-17 2020-04-10 腾讯科技(深圳)有限公司 数据导入方法、装置、服务器及存储介质
CN111736907A (zh) * 2020-06-16 2020-10-02 湖南省星岳天璇科技有限公司 一种自适应低延迟内存计算引擎的数据分析方法
CN113590007A (zh) * 2021-07-28 2021-11-02 平安科技(深圳)有限公司 进度条的生成方法、生成装置、计算机设备及存储介质
CN114546769A (zh) * 2022-02-18 2022-05-27 内蒙古蒙商消费金融股份有限公司 一种任务监控方法、装置、电子设备及可读存储介质
CN115686811A (zh) * 2021-07-28 2023-02-03 腾讯科技(深圳)有限公司 进程管理方法、装置、计算机设备及存储介质
CN115934286A (zh) * 2022-12-23 2023-04-07 厦门市美亚柏科信息股份有限公司 一种用于轻客户端的Spark作业提交方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10983895B2 (en) * 2018-06-05 2021-04-20 Unravel Data Systems, Inc. System and method for data application performance management

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123214A (zh) * 2013-04-26 2014-10-29 阿里巴巴集团控股有限公司 基于运行时数据的任务执行进度度量和展示的方法及系统
CN109726175A (zh) * 2018-12-29 2019-05-07 北京赛思信安技术股份有限公司 一种基于HBase的海量文件离线分区管理方法
CN110717093A (zh) * 2019-08-27 2020-01-21 广东工业大学 一种基于Spark的电影推荐系统及方法
CN110990476A (zh) * 2019-12-17 2020-04-10 腾讯科技(深圳)有限公司 数据导入方法、装置、服务器及存储介质
CN111736907A (zh) * 2020-06-16 2020-10-02 湖南省星岳天璇科技有限公司 一种自适应低延迟内存计算引擎的数据分析方法
CN113590007A (zh) * 2021-07-28 2021-11-02 平安科技(深圳)有限公司 进度条的生成方法、生成装置、计算机设备及存储介质
CN115686811A (zh) * 2021-07-28 2023-02-03 腾讯科技(深圳)有限公司 进程管理方法、装置、计算机设备及存储介质
CN114546769A (zh) * 2022-02-18 2022-05-27 内蒙古蒙商消费金融股份有限公司 一种任务监控方法、装置、电子设备及可读存储介质
CN115934286A (zh) * 2022-12-23 2023-04-07 厦门市美亚柏科信息股份有限公司 一种用于轻客户端的Spark作业提交方法和系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
OctopusKing: A TCT-Aware Task Scheduling on Spark Platform;Haizhou Du 等;《2019 IEEE 25th International Conference on Parallel and Distributed Systems (ICPADS)》;全文 *
Spark平台中任务执行时间预测方法研究;刘思宇;梁毅;陈诚;陈翔;;软件导刊(第12期);全文 *
基于ELK和Spark的日志分析系统的研究与实现;袁华;《中国优秀硕士学位论文全文数据库信息科技辑》;全文 *

Also Published As

Publication number Publication date
CN116737512A (zh) 2023-09-12

Similar Documents

Publication Publication Date Title
CN107316083B (zh) 用于更新深度学习模型的方法和装置
US8155988B2 (en) Workflow management including determination if a requestor is in charge of tasks
JP6011479B2 (ja) アプリケーション管理装置、アプリケーション管理システムおよびプログラム
US20140108440A1 (en) Configuration of Life Cycle Management for Configuration Files for an Application
CN110399208B (zh) 分布式任务调度拓扑图的展示方法、装置及设备
CN105867941A (zh) 软件升级系统及其实现方法
CN110795119A (zh) 固件升级方法、装置、计算机设备及存储介质
CN111475401A (zh) 一种测试方法及相关设备
CN109086382A (zh) 一种数据同步方法、装置、设备及存储介质
CN116737512B (zh) 一种基于Spark的离线任务执行进度计算与获取方法及装置
CN114816393A (zh) 信息生成方法、装置、设备以及存储介质
CN114756257B (zh) 数据更新方法、装置、通信模组和可读存储介质
JP4796446B2 (ja) アプリケーション設定情報更新方法
CN112364187B (zh) 基于大数据的汽车配件数据库建库方法、装置及设备
CN109240916A (zh) 信息输出控制方法、装置及计算机可读存储介质
CN111104125B (zh) 智能集成版本管理方法、装置、介质及电子设备
CN104572661A (zh) 终端设备以及信息处理方法
CN114218258A (zh) 一种用户标签管理方法、系统、设备及存储介质
CN113076314B (zh) 数据表的存储方法、装置及计算机可读存储介质
CN113419483A (zh) 设备状态的显示方法、装置、终端及存储介质
JP4299291B2 (ja) 位置情報管理プログラム、位置情報管理装置および位置情報管理方法
CN116521199B (zh) 一种部件升级方法、装置、设备及存储介质
CN112130924B (zh) 应用系统数据解析方法及装置
CN114723072A (zh) Exporter组合方法、系统、设备及存储介质
CN112631651A (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
GR01 Patent grant
GR01 Patent grant