CN110245023B - 分布式调度方法及装置、电子设备以及计算机存储介质 - Google Patents
分布式调度方法及装置、电子设备以及计算机存储介质 Download PDFInfo
- Publication number
- CN110245023B CN110245023B CN201910564952.9A CN201910564952A CN110245023B CN 110245023 B CN110245023 B CN 110245023B CN 201910564952 A CN201910564952 A CN 201910564952A CN 110245023 B CN110245023 B CN 110245023B
- Authority
- CN
- China
- Prior art keywords
- tasks
- task
- resource
- overhead
- calculation
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
Abstract
提供分布式调度方法及装置、电子设备以及计算机存储介质,其中,分布式调度方法用于对大数据平台中的任务进行调度,所述分布式调度方法包括如下步骤:步骤S1,确定需要调度的计算任务的范围,生成初始任务集合;步骤S2,将所有初始任务集合中的任务的上游引用对象的任务进行层层统计,并按上下游顺序进行排列;步骤S3,对每个任务的内存和处理器开销进行估算,通过资源开销评估算法计算各自分值,并按照分值进行排序以生成执行任务集合;步骤S4,将所述执行任务集合中的所述任务,分配到所述大数据平台的多个计算节点以由多个所述计算节点执行各自的任务。根据本发明的分布式调度方法,进行分配控制和开销测算,解决了资源浪费情况。
Description
技术领域
本发明涉及大数据平台技术,特别涉及一种大数据平台的任务的分布式调度方法及装置、电子设备以及非暂时性计算机存储介质。
背景技术
随业务发展范围逐步扩大,通常,公司大数据平台承接了越来越多的数据计算任务,也逐步成为数据服务的重要支柱平台。以电商企业的大数据平台为例,从电商分析中心报表任务最初30个数据采集任务和20-30个计算任务为起点,逐步覆盖寄托报表、财务报表、供应链业务、风险预警、GMV运营日报等业务的近400多个数据采集任务和700多个数据分析计算任务;同时数据服务的对象层面也从业务中台向经营决策转变。因此通过设立大数据基础平台优化项目,将针对性的优化需要列入项目完成目标,解决相应的应用问题。
目前应用的调度方法,存在通过参数设定预先设置了分配规则,但不匹配实际计算任务差异化的开销情况的实际应用问题。
进一步地,还存在下述实际应用问题:
资源开销的颗粒度较高,大计算任务分配不足、小计算任务浪费较大,导致大计算任务计算结果较慢,小计算任务并发任务总数受限,整体上影响了并发运行总量和效果;
预处理过程和管理途径不足以满足专业化的运行结果分析;
不能满足对整体范围内异常任务运行情况的快速定位排查;
现有调度程序的故障分析定位时间较长,因此必须将所有批次的执行日志进行存储,目的是在下一次调度启动前,有足够的时间定位到故障的信息而不被覆盖;同一个小时级计算任务的日志一天将存储20+次;因此每天生成的计算日志文件数量约在15000个以上;每天的日志数据量基于分布式存储大于1G,因此,运行产生的碎片和垃圾文件较多,维护精力和投入成本较高。
发明内容
有鉴于此,本发明立足于日以拓展的业务应用场景,其目的之一在于提供一种分布式调度方法,其能够在计算任务刷新落地数据集的同时保持了平台内结果集在前端查询服务,使的大数据平台整体上能够满足计算周期内更多的并发计算任务能力。
本发明的另一个目的在于提供一种分布式调度装置。
本发明的又一个目的在于提供一种电子设备。
本发明的目的还在于提供一种非暂时性计算机存储介质。
为解决上述技术问题,本发明采用以下技术方案:
根据本发明第一方面实施例的分布式调度方法,用于对大数据平台中的任务进行调度,其特征在于,
所述大数据平台中的分层任务包括:
数据采集任务,从业务系统采集数据;
数据清理计算任务,以对于所采集的数据计算需要清理的数据;
明细数据计算任务,以对所述大数据平台的数据仓库的明细数据进行计算;
应用数据计算任务,以对所述大数据平台的数据仓库的应用数据进行计算,
所述分布式调度方法包括如下步骤:
步骤S1,确定需要调度的计算任务的范围,生成初始任务集合;
步骤S2,将所有初始任务集合中的任务的上游引用对象的任务进行层层统计,并按上下游顺序进行排列;
步骤S3,对每个任务的内存和处理器开销进行估算,通过资源开销评估算法计算各自分值,并按照分值进行排序以生成执行任务集合;
步骤S4,将所述执行任务集合中的所述任务,分配到所述大数据平台的多个计算节点以由多个所述计算节点执行各自的任务。
根据本发明的一些实施例,所述分布式调度方法还包括如下步骤:
步骤S5,在所述步骤S1至所述步骤S4中,生成计算任务日志文件和告警日志文件。
根据本发明的一些实施例,所述步骤S1中,当存在新增任务发布时,则重新确认所述需要调度的计算任务的范围,更新所述初始任务集合。
根据本发明的一些实施例,所述步骤S2中,分析写入所述初始任务集中的计算任务的结构化查询语言语句,将引用的数据表和视图对象的名称进行标注,并将其应用对象进行汇总,以对所有初始任务集合中的任务的上游引用对象的任务进行层层统计,从而按上下游顺序进行排列。
根据本发明的一些实施例,所述步骤S3中,所述资源开销评估算法依照木桶原理计算各自分值。
进一步地,所述步骤S3包括:
步骤S31:输出所有计算任务的执行计划日志;
步骤S32:解析所输出的执行计划日志中的资源开销信息,将每个应用数据计算任务的开销分类,
统计日志内容中的单个计算任务的处理器资源开销x,
统计日志内容中的单个计算任务在数据平台每个计算节点的内存开销量,进行算数相加得到内存开销量y,
统计日志内容中的单个任务在分布式文件系统的扫描总字节数,进行算数相加得到存储资源扫描量z,
此后,依照下述三元二次计算公式计算各个应用数据计算任务的资源开销:
其中,系数n为分布式系统运行节点总数,x为处理器资源开销,y为内存开销量,z为存储资源扫描量;
步骤S33,对同一批分层的计算任务按资源开销f(x,y,z)进行倒序排列,分配方法以任务总数为被除数,计算节点数(n-1)为除数,余数记录为变量c,
如果任务总数小于等于(n-1),则将任务名顺序分配至每个节点的执行任务集合,
如果任务总数大于(n-1),则将排序队列末尾的c个任务分给第(n-1)号执行任务集合,剩余倒序队列的任务按顺序循环分配到(n-1)个执行任务集合。
根据本发明的一些实施例,所述步骤S4中,将所述执行任务集合中的任务均衡分配到所述大数据平台的多个计算节点以由多个所述计算节点执行各自的任务。
根据本发明的另一些实施例,所述步骤S4中,对系统节点的组件资源池以外的可分配资源进行测算,并根据所述可分配资源分配所述执行任务集合中的任务。
进一步地,根据所述可分配资源,将内存和处理器计算资源的开销情况分开来进行考虑分配。
进一步地,系统后台运行有监控进程,以预定的时间间隔查询资源运行情况,以获得基础资源开销量,并基于下述算式计算所述可分配资源:
可分配资源=总资源量-基础资源开销量。
根据本发明第二方面实施例的分布式调度装置,包括:
初始任务集合生成模块,以确定需要调度的计算任务的范围,生成初始任务集合;
分层排列模块,以对所有初始任务集合中的任务的上游引用对象的任务进行层层统计,并按上下游顺序进行排列;
执行任务集合生成模块,以对每个任务的内存和处理器开销进行估算,通过资源开销评估算法计算各自分值,并按照分值进行排序以生成执行任务集合;
分配模块,以将所述执行任务集合中的所述任务分配到所述大数据平台的多个计算节点从而由多个所述计算节点执行各自的任务。
根据本发明第三方面实施例的用于大数据分布式调度的电子设备,包括:
一个或多个处理器;
一个或多个存储器,其中存储了计算机可读代码,所述计算机可读代码当由所述一个或多个处理器执行时进行上述任一实施例所述的分布式调度方法。
根据本发明第四方面实施例的非暂时性计算机存储介质,其中存储了计算机可读代码,所述计算机可读代码当由一个或多个处理器执行时进行上述任一实施例所述的分布式调度方法。
本发明的上述技术方案至少具有如下有益效果之一:
根据本发明实施例的分布式调度方法,通过操作系统指令集、大数据平台功能接口、自动化运维技术集合的方式,进行资源开销和统计计算,对批次的任务开销情况统计并对整体计算任务进行分布式预分配,分割批次总任务量到节点任务集合,实现了计算资源的分配控制和开销测算,然后对计算节点发布执行调度指令,从而解决了资源浪费情况;
同时对计算任务长短不一的处理时间,依照木桶原理向大任务资源倾斜、提高小任务并发度,减少了整体计算任务的开销时间,使一小时的调度周期间隔内完成更多计算任务得到实现;
由于在中间过程生成任务日志文件和告警日志文件,提供计算任务跟踪和分析功能,从而能够通过任务跟踪快速定位异常情况,更具体地,通过操作系统层的文本操作指令cat、grep等组合,能在2秒内迅速排查一批调度生成的数百个日志文件中的运行失败的任务,并能迅速获取故障错误的关键异常信息,输出错误日志,该分布式调度方法的故障定位时间比常规调度的故障排查时间大幅缩减了99.3%-99.89%;
根据本发明的分布式调度方法,将所有资源视为一个大池,不采用组件参数限制启动任务的资源范围,通过操作系统CGROUP进行进程资源的隔离,通过分配资源开销算法,自定义分配计算任务,大小任务的资源分配都得到满足,减小了资源分配颗粒度,并发效果实测更佳;
此外,根据本发明的分布式调度方法,由于优化了日志管理方法、任务完成度的统计模式,减少了垃圾文件的生成和维护开销,因此实现了管理途径和统计模式的优化,无过程碎片,从而减少维护开销;
其不仅能够满足对逐步增加的数据分析计算任务的调度需要、满足业务数据服务小时级数据更新的频度和并发要求,并满足后续多个基于数据治理相关的管理功能需要。
附图说明
图1为根据本发明的分布式调度方法的流程图;
图2为本发明实施例的分布式调度装置的模块图;
图3为根据本发明一个具体实施例的分布式调度装置的模块图;
图4示出了可以用于实现本公开的分布式调度方法的示例性电子设备。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将集合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
下面首先集合附图具体描述根据本发明实施例的分布式调度方法。
根据本发明的分布式调度方法,用于对大数据平台中的任务进行调度。
例如,大数据平台中的分层任务可以包括:
0_ods层数据采集任务——>1_odsp层数据清理计算任务——>2_dw0、2_dw1层明细数据计算任务——>3_dm0、3_dm1、3_dm2、3_dm3、3_dm4层应用数据计算任务——>4_h2m层数据推送任务。
各层任务之间按箭头有明确的先后计算关系。
为了对上述大数据平台中的分层任务进行调度,如图1所示,根据本发明的分布式调度方法包括如下步骤:
步骤S1,确定需要调度的计算任务的范围,生成初始任务集合。
需要调度的计算任务包括数据清理计算任务、明细数据计算任务、应用数据计算任务,也就是说,对上述数据清理计算任务、明细数据计算任务、应用数据计算任务进行分析,确定需要调度的计算任务的范围。
优选地,当存在新增任务发布时,则重新确认所述需要调度的计算任务的范围,更新所述初始任务集合。
步骤S2,将所有初始任务集合中的任务的上游引用对象的任务进行层层统计,并按上下游顺序进行排列。具体地,例如可以通过下述方法来确定每个计算任务的上下游关系。
首先,分析写入所述初始任务集合中的应用数据计算任务的结构化查询语言语句,将引用的数据表和视图对象的名称进行标注,并将其应用对象进行汇总,以对所有初始任务集合中的任务的上游引用对象的任务进行层层统计,从而按上下游顺序进行排列。
步骤S3,对每个任务的内存和处理器开销进行估算,通过资源开销评估算法计算各自分值,并按照分值进行排序以生成执行任务集合。
优选地,所述资源开销评估算法依照木桶原理计算各自分值。
进一步地,所述步骤S3包括:
步骤S31:输出所有计算任务的执行计划日志;
步骤S32:解析所输出的执行计划日志中的资源开销信息,将每个应用数据计算任务的开销分类,
统计日志内容中的单个计算任务的处理器资源开销x,
统计日志内容中的单个计算任务在数据平台每个计算节点的内存开销量,进行算数相加得到内存开销量y,
统计日志内容中的单个任务在分布式文件系统的扫描总字节数,进行算数相加得到存储资源扫描量z,
此后,依照下述三元二次计算公式计算各个应用数据计算任务的资源开销:
其中,系数n为分布式系统运行节点总数,x为处理器资源开销,y为内存开销量,z为存储资源扫描量;
步骤S33,对同一批分层的计算任务按资源开销f(x,y,z)进行倒序排列,分配方法以任务总数为被除数,计算节点数(n-1)为除数,余数记录为变量c,
如果任务总数小于等于(n-1),则将任务名顺序分配至每个节点的执行任务集合,
如果任务总数大于(n-1),则将排序队列末尾的c个任务分给第(n-1)号执行任务集合,剩余倒序队列的任务按顺序循环分配到(n-1)个执行任务集合。
由此,对于计算任务长短不一的处理时间,依照木桶原理向大任务资源倾斜、提高小任务并发度,减少了整体计算任务的开销时间;从而能够实现单位时间的调度周期间隔内完成更多计算任务。
步骤S4,将所述执行任务集合中的所述任务,分配到所述大数据平台的多个计算节点以由多个所述计算节点执行各自的任务。
根据上述本发明的分布式调度方法,对批次的任务开销情况统计并对整体任务进行分布式预分配,分割批次总任务量到节点任务集合,实现了计算资源的分配控制和开销测算,然后对计算节点发布执行调度指令,从而解决了资源浪费情况。此外,通过上述本发明的分布式调度方法,实现了分布式架构中多节点间合理的资源开销分配,大小计算任务在总量范围内分配了合理的资源开销,并合理利用了原先空闲的资源,大幅减少了因任务的时间长短不一造成的等待情况。
其中,所述步骤S4中,将所述执行任务集合中的任务可以均衡分配到所述大数据平台的多个计算节点以由多个所述计算节点执行各自的任务。
优选地,所述步骤S4中,对系统节点的组件资源池以外的可分配资源进行测算,并根据所述可分配资源分配所述执行任务集合中的任务。具体而言,例如,系统后台运行有监控进程,以预定的时间间隔(例如5s的时间间隔)查询资源运行情况,以获得基础资源开销量,
所述可分配资源通过如下方法进行测算:
可分配资源=总资源量-基础资源开销量。
进一步地,根据所述可分配资源,将内存和处理器计算资源的开销情况分开来进行考虑分配。通过上述队列技术,即根据所述可分配资源分配所述执行任务集合中的任务,能够时刻保持并发队列的满负荷状态还可进一步优化增强实际效果。
现有的调度程序,结合了大数据平台的资源池进行计算任务的分配管理,通过6个参数定义资源范围:容器起始内存、容器增量内存、容器上限内存、容器起始cpu核数、容器增量cpu核数、容器cpu核数上线。实际使用发现,起始内存容量和cpu核数太低不够启动大计算任务;但提升起始基线,将使小计算任务产生资源浪费影响并发;同时上限值设定较低大任务的会分配不足减慢计算速度,设定较高会迅速被大计算任务占用,影响并发。
而根据上述本发明实施例的分布式调度方法,将所有资源视为一个大池,不采用组件参数限制启动任务的资源范围,通过操作系统CGROUP进行进程资源的隔离,通过分配资源开销算法,自定义分配计算任务,大小任务的资源分配都得到满足,减小了资源分配颗粒度,并发效果实测更佳。另外,根据本发明上述实施例的分布式调度方法,还可以包括如下步骤:
步骤S5,在所述步骤S1至所述步骤S4中,生成任务日志文件和告警日志文件。由此,提供了任务跟踪和分析功能,能够通过任务跟踪快速定位异常情况。
具体而言,通过操作系统层的文本操作指令cat、grep等组合,能在2秒内迅速排查一批调度生成的数百个日志文件中的运行失败的任务,并能迅速获取故障错误的关键异常信息,输出错误日志,从而在一批调度的运行任务时间及运行任务总数内,生成了多少条运行告警,成功和失败了多少个任务都有直观的输出(有些运行告警不影响故障执行成功);非常便于对调度程序运行结果的跟进。
而常规调度程序基于图形化,每个调度结果的内容需要层层点击后查询,且不能分辨告警和执行失败的区别,不便于了解整体运行是否正常;且常规调度程序的故障定位跟进时间都在5-30分钟级别,超过15个故障任务的大范围异常要到1小时以上才完成全部排查。
因此该分布式调度方法的故障定位时间比常规调度的故障排查时间大幅缩减了99.3%-99.89%。
此外,根据本发明的分布式调度方法,分布式调度和故障分析定位能在秒级完成,因此所有计算任务只需各存放一份最新的日志文件,小时级生成5个故障汇总的报告日志;日志文件数量一天只需生成1000个以内,缩减了93%,日志数据量也不随时间增加而提升。由此可知,根据本发明的分布式调度方法大幅缩减了历史日志垃圾文件的数量,同时可以确保任意时间点所有任务都运行正常,大幅减少了维护的精力和投入成本。
下面集合图2描述根据本发明的分布式调度装置100。
如图2所示,根据本发明的分布式调度装置100包括:初始任务集合生成模块101、分层排列模块102、执行任务集合生成模块103、以及分配模块104。
初始任务集合生成模块101,用于确定需要调度的计算任务的范围,生成初始任务集合。
分层排列模块102用于对所有初始任务集合中的任务的上游引用对象的任务进行层层统计,并按上下游顺序进行排列。
执行任务集合生成模块103用于对每个任务的内存和处理器开销进行估算,通过资源开销评估算法计算各自分值,并按照分值进行排序以生成执行任务集合。
分配模块104用于将所述执行任务集合中的所述任务分配到所述大数据平台的多个计算节点从而由多个所述计算节点执行各自的任务。
下面,集合附图3描述根据本发明一具体实施例的分布式调度装置100’。
如图3所示,本实施例的分布式调度装置包括初始调度任务集合模块101’、分层模块102’、计算模块1031、以及优化模块1032、以及分配模块104’。
其中,初始任务集合模块101’具有如下功能,即:在计算任务发布时,负责将新增任务或更新任务进行代码解析,解析依赖关系,确定新增任务应该放在调度集合的哪一层任务中。
此后,分层模块102’在初始任务集合模块101’的基础上,对于初始调度任务进行分层,生成分层调度集合。
接着,计算模块1031分别对每一层的调度任务进行开销估算,优化模块1032根据计算模块1031的计算结果进行排列,得到执行任务集合。
此后,分配模块104’将执行任务集合中的任务分配给相应的节点。
图4示出了可以用于实现本公开的处理方法的示例性电子设备。
该电子设备1000包括执行存储在存储器1004中的指令的至少一个处理器1002。这些指令可以是例如用于实现被描述为由上述一个或多个模块执行的功能的指令或用于实现上述方法中的一个或多个步骤的指令。处理器1002可以通过系统总线访问存储器1004。除了存储可执行指令,存储器1004还可存储训练数据等。处理器1002可以为中央处理器(CPU)或图形处理器GPU等各种具有计算能力的器件。该CPU可以为X86或ARM处理器;GPU可单独地直接集成到主板上,或者内置于主板的北桥芯片中,也可以内置于中央处理器(CPU)上。
电子设备1000还包括可由处理器1002通过系统总线访问的数据存储1008。数据存储1008可包括可执行指令、多图像训练数据等。电子设备1000还包括允许外部设备与电子设备1000进行通信的输入接口1010。例如,输入接口1010可被用于从外部计算机设备、从用户等处接收指令。电子设备1000也可包括使电子设备1000和一个或多个外部设备相接口的输出接口1012。例如,电子设备1000可以通过输出接口1012显示图像等。考虑了通过输入接口1010和输出接口1012与电子设备1000通信的外部设备可被包括在提供实质上任何类型的用户可与之交互的用户界面的环境中。用户界面类型的示例包括图形用户界面、自然用户界面等。例如,图形用户界面可接受来自用户采用诸如键盘、鼠标、遥控器等之类的(诸)输入设备的输入,以及在诸如显示器之类的输出设备上提供输出。此外,自然语言界面可使得用户能够以无需受到诸如键盘、鼠标、遥控器等之类的输入设备强加的约束的方式来与电子设备1000交互。相反,自然用户界面可依赖于语音识别、触摸和指示笔识别、屏幕上和屏幕附近的手势识别、空中手势、头部和眼睛跟踪、语音和语音、视觉、触摸、手势、以及机器智能等。
可以利用被设计用于进行在此所述的功能的通用处理器、数字信号处理器(DSP)、ASIC、场可编程门阵列信号(FPGA)或其他可编程逻辑器件(PLD)、离散门或晶体管逻辑、离散的硬件组件或者其任意组合而实现或进行所述的各个例示的逻辑块、模块和电路。通用处理器可以是微处理器,但是作为替换,该处理器可以是任何商业上可获得的处理器、控制器、微控制器或状态机。处理器还可以实现为计算设备的组合,例如DSP和微处理器的组合,多个微处理器、与DSP核协作的一个或多个微处理器或任何其他这样的配置。
集合本公开描述的方法或算法的步骤可以直接嵌入在硬件中、处理器执行的软件模块中或者这两种的组合中。软件模块可以存在于任何形式的有形存储介质中。可以使用的存储介质的一些例子包括随机存取存储器(RAM)、只读存储器(ROM)、快闪存储器、EPROM存储器、EEPROM存储器、寄存器、硬碟、可移动碟、CD-ROM等。存储介质可以耦接到处理器以便该处理器可以从该存储介质读取信息以及向该存储介质写信息。在替换方式中,存储介质可以与处理器是整体的。软件模块可以是单个指令或者许多指令,并且可以分布在几个不同的代码段上、不同的程序之间以及跨过多个存储介质。
在此公开的方法包括用于实现所述的方法的一个或多个动作。方法和/或动作可以彼此互换而不脱离权利要求的范围。换句话说,除非指定了动作的具体顺序,否则可以修改具体动作的顺序和/或使用而不脱离权利要求的范围。
所述的功能可以按硬件、软件、固件或其任意组合而实现。如果以软件实现,功能可以作为一个或多个指令存储在切实的计算机可读介质上。计算机可读介质包括计算机可读存储介质。计算机可读存储介质可以是能被计算机访问的任何可用存储介质。作为示例而非限定,这样的计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或能被用来承载或存储指令或数据结构形式的期望程序代码且能被计算机访问的任何其他介质。另外,所传播的信号不被包括在计算机可读存储介质的范围内。计算机可读介质还包括通信介质,其包括促成计算机程序从一地向另一地转移的任何介质。连接例如可以是通信介质。例如,如果软件使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或诸如红外线、无线电、以及微波之类的无线技术来从web网站、服务器、或其它远程源传输,则该同轴电缆、光纤电缆、双绞线、DSL、或诸如红外线、无线电、以及微波之类的无线技术被包括在通信介质的定义中。上述的组合应当也被包括在计算机可读介质的范围内。替换地或另选地,此处描述的功能可以至少部分由一个或多个硬件逻辑组件来执行。例如,可使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(FPGA)、程序专用的集成电路(ASIC)、程序专用的标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等。
因此,计算机程序产品可以进行在此给出的操作。例如,这样的计算机程序产品可以是具有有形存储(和/或编码)在其上的指令的计算机可读的有形介质,该指令可由一个或多个处理器执行以进行在此所述的操作。计算机程序产品可以包括包装的材料。
软件或指令也可以通过传输介质而传输。例如,可以使用诸如同轴电缆、光纤光缆、双绞线、数字订户线(DSL)或诸如红外、无线电或微波的无线技术的传输介质从网站、服务器或者其他远程源传输软件。
此外,用于进行在此所述的方法和技术的模块和/或其他适当的手段可以在适当时由用户终端和/或基站下载和/或其他方式获得。例如,这样的设备可以耦接到服务器以促进用于进行在此所述的方法的手段的传送。或者,在此所述的各种方法可以经由存储部件(例如RAM、ROM、诸如CD或软碟等的物理存储介质)提供,以便用户终端和/或基站可以在耦接到该设备或者向该设备提供存储部件时获得各种方法。此外,可以利用用于将在此所述的方法和技术提供给设备的任何其他适当的技术。
另外,电子设备1000尽管图中被示出为单个系统,但可以理解,电子设备1000也可以是分布式系统,还可以布置为云设施(包括公有云或私有云)。因此,例如,若干设备可以通过网络连接进行通信并且可共同执行被描述为由电子设备1000执行的任务。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (11)
1.一种分布式调度方法,用于对大数据平台中的任务进行调度,其特征在于,
所述大数据平台中的分层任务包括:
数据采集任务,从业务系统采集数据,得到数据集;
数据清理计算任务,对于所述数据集计算其中需要清理的数据;
明细数据计算任务,以对所述数据集中的明细数据进行计算;
应用数据计算任务,以对所述数据集中的应用数据进行计算,
所述分布式调度方法包括如下步骤:
步骤S1,确定需要调度的计算任务的范围,生成初始任务集合;
步骤S2,分析写入所述初始任务集合中的计算任务的结构化查询语言语句,将引用的数据表和视图对象的名称进行标注,并将其应用对象进行汇总,以将所有初始任务集合中的任务的上游引用对象的任务进行层层统计,并按上下游顺序进行排列;
步骤S3,对每个任务的内存和处理器开销进行估算,通过资源开销评估算法计算各自分值,并按照分值进行排序以生成执行任务集合,所述步骤S3包括:
步骤S31:输出所有计算任务的执行计划日志;
步骤S32:解析所输出的执行计划日志中的资源开销信息,将每个应用数据计算任务的开销分类,
统计日志内容中的单个计算任务的处理器资源开销x,
统计日志内容中的单个计算任务在数据平台每个计算节点的内存开销量,进行算数相加得到内存开销量y,
统计日志内容中的单个任务在分布式文件系统的扫描总字节数,进行算数相加得到存储资源扫描量z,
此后,依照下述三元二次计算公式计算各个应用数据计算任务的资源开销:
其中,系数n为分布式系统运行节点总数,x为处理器资源开销,y为内存开销量,z为存储资源扫描量;
步骤S33,对同一批分层的计算任务按资源开销f(x,y,z)进行倒序排列,分配方法以任务总数为被除数,计算节点数(n-1)为除数,余数记录为变量c,
如果任务总数小于等于(n-1),则将任务名顺序分配至每个节点的执行任务集合,
如果任务总数大于(n-1),则将排序队列末尾的c个任务分给第(n-1)号执行任务集合,剩余倒序队列的任务按顺序循环分配到(n-1)个执行任务集合;
步骤S4,将所述执行任务集合中的所述任务,分配到所述大数据平台的多个计算节点以由多个所述计算节点执行各自的任务。
2.根据权利要求1所述的分布式调度方法,其特征在于,还包括如下步骤:
步骤S5,在所述步骤S1至所述步骤S4中,生成计算任务日志文件和告警日志文件。
3.根据权利要求1所述的分布式调度方法,其特征在于,所述步骤S1中,当存在新增任务发布时,则重新确认所述需要调度的计算任务的范围,更新所述初始任务集合。
4.根据权利要求1所述的分布式调度方法,其特征在于,所述步骤S3中,所述资源开销评估算法依照木桶原理计算各自分值。
5.根据权利要求1所述的分布式调度方法,其特征在于,所述步骤S4中,将所述执行任务集合中的任务均衡分配到所述大数据平台的多个计算节点以由多个所述计算节点执行各自的任务。
6.根据权利要求1所述的分布式调度方法,其特征在于,所述步骤S4中,对系统节点的组件资源池以外的可分配资源进行测算,并根据所述可分配资源分配所述执行任务集合中的任务。
7.根据权利要求6所述的分布式调度方法,其特征在于,系统后台运行有监控进程,以预定的时间间隔查询资源运行情况,以获得基础资源开销量,并基于下述算式计算所述可分配资源:
可分配资源=总资源量-基础资源开销量。
8.根据权利要求6所述的分布式调度方法,其特征在于,根据所述可分配资源,将内存和处理器计算资源的开销情况分开来进行考虑分配。
9.一种分布式调度装置,其特征在于,包括:
初始任务集合生成模块,以确定需要调度的计算任务的范围,生成初始任务集合;
分层排列模块,分析写入所述初始任务集合中的计算任务的结构化查询语言语句,将引用的数据表和视图对象的名称进行标注,并将其应用对象进行汇总,以对所有初始任务集合中的任务的上游引用对象的任务进行层层统计,并按上下游顺序进行排列;
执行任务集合生成模块,以对每个任务的内存和处理器开销进行估算,通过资源开销评估算法计算各自分值,并按照分值进行排序以生成执行任务集合,所述执行任务集合生成模块具体用于:
输出所有计算任务的执行计划日志;
解析所输出的执行计划日志中的资源开销信息,将每个应用数据计算任务的开销分类,
统计日志内容中的单个计算任务的处理器资源开销x,
统计日志内容中的单个计算任务在数据平台每个计算节点的内存开销量,进行算数相加得到内存开销量y,
统计日志内容中的单个任务在分布式文件系统的扫描总字节数,进行算数相加得到存储资源扫描量z,
此后,依照下述三元二次计算公式计算各个应用数据计算任务的资源开销:
其中,系数n为分布式系统运行节点总数,x为处理器资源开销,y为内存开销量,z为存储资源扫描量;
对同一批分层的计算任务按资源开销f(x,y,z)进行倒序排列,分配方法以任务总数为被除数,计算节点数(n-1)为除数,余数记录为变量c,
如果任务总数小于等于(n-1),则将任务名顺序分配至每个节点的执行任务集合,
如果任务总数大于(n-1),则将排序队列末尾的c个任务分给第(n-1)号执行任务集合,剩余倒序队列的任务按顺序循环分配到(n-1)个执行任务集合;
分配模块,以将所述执行任务集合中的所述任务分配到大数据平台的多个计算节点从而由多个所述计算节点执行各自的任务。
10.一种用于大数据分布式调度的电子设备,包括:
一个或多个处理器;
一个或多个存储器,其中存储了计算机可读代码,所述计算机可读代码当由所述一个或多个处理器执行时进行如权利要求1-8中任一所述的分布式调度方法。
11.一种非暂时性计算机存储介质,其特征在于,其中存储了计算机可读代码,所述计算机可读代码当由一个或多个处理器执行时进行如权利要求1-8中任一所述的分布式调度方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910486627 | 2019-06-05 | ||
CN2019104866275 | 2019-06-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110245023A CN110245023A (zh) | 2019-09-17 |
CN110245023B true CN110245023B (zh) | 2020-09-25 |
Family
ID=67889821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910564952.9A Active CN110245023B (zh) | 2019-06-05 | 2019-06-27 | 分布式调度方法及装置、电子设备以及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110245023B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110620818B (zh) * | 2019-09-18 | 2022-04-05 | 东软集团股份有限公司 | 一种实现节点分配的方法、装置及相关设备 |
CN110780997B (zh) * | 2019-09-27 | 2022-07-08 | 苏州浪潮智能科技有限公司 | 一种消除硬盘预测数据采集端负载毛刺的方法和装置 |
CN112749034A (zh) * | 2019-10-31 | 2021-05-04 | 北京沃东天骏信息技术有限公司 | 一种数据异常处理方法、装置、存储介质及电子设备 |
CN110908986B (zh) * | 2019-11-08 | 2020-10-30 | 欧冶云商股份有限公司 | 计算任务的分层方法、分布式调度方法、装置及电子设备 |
CN110825526B (zh) * | 2019-11-08 | 2020-10-30 | 欧冶云商股份有限公司 | 基于er关系的分布式调度方法及装置、设备以及存储介质 |
CN110928685B (zh) * | 2019-11-20 | 2023-09-05 | 圆通速递有限公司 | 一种智能协同计算系统和方法 |
CN110991883B (zh) * | 2019-12-03 | 2022-05-20 | 中国民用航空总局第二研究所 | 一种基于航班风险前置的运行控制系统及方法 |
CN111651460A (zh) * | 2020-06-11 | 2020-09-11 | 上海德易车信息科技有限公司 | 一种数据治理方法、装置、电子设备及可读存储介质 |
CN113032093B (zh) * | 2021-03-05 | 2024-01-09 | 北京百度网讯科技有限公司 | 分布式计算方法、装置及平台 |
CN113434270B (zh) * | 2021-06-15 | 2023-06-23 | 北京百度网讯科技有限公司 | 数据资源调度方法、装置、电子设备及存储介质 |
CN113535400A (zh) * | 2021-07-19 | 2021-10-22 | 闻泰通讯股份有限公司 | 并行计算资源分配方法与装置、存储介质、终端设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106919449B (zh) * | 2017-03-21 | 2020-11-20 | 联想(北京)有限公司 | 一种计算任务的调度控制方法及电子设备 |
US10802880B2 (en) * | 2017-09-19 | 2020-10-13 | Huawei Technologies Co., Ltd. | System and method for distributed resource requirement and allocation |
-
2019
- 2019-06-27 CN CN201910564952.9A patent/CN110245023B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110245023A (zh) | 2019-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110245023B (zh) | 分布式调度方法及装置、电子设备以及计算机存储介质 | |
Boutin et al. | Apollo: Scalable and coordinated scheduling for {Cloud-Scale} computing | |
Khalifa et al. | The six pillars for building big data analytics ecosystems | |
JP2022160544A (ja) | 計算機システム及び方法 | |
US20230169351A1 (en) | Distributed training method based on end-to-end adaption, and device | |
Li et al. | Supporting scalable analytics with latency constraints | |
CN106354729B (zh) | 一种图数据处理方法、装置和系统 | |
CN110825526B (zh) | 基于er关系的分布式调度方法及装置、设备以及存储介质 | |
Yang et al. | Intermediate data caching optimization for multi-stage and parallel big data frameworks | |
Sun et al. | Building a fault tolerant framework with deadline guarantee in big data stream computing environments | |
CN115373835A (zh) | Flink集群的任务资源调整方法、装置及电子设备 | |
AU2021244852B2 (en) | Offloading statistics collection | |
CN110782122A (zh) | 数据处理方法、装置及电子设备 | |
Ardagna et al. | Predicting the performance of big data applications on the cloud | |
Bergui et al. | A survey on bandwidth-aware geo-distributed frameworks for big-data analytics | |
CN111752945A (zh) | 一种基于容器和层次模型的时序数据库数据交互方法和系统 | |
Packiaraj et al. | Hypar-fca: a distributed framework based on hybrid partitioning for fca | |
CN113760638A (zh) | 一种基于kubernetes集群的日志服务方法和装置 | |
Khan | Hadoop performance modeling and job optimization for big data analytics | |
CN113722141B (zh) | 数据任务的延迟原因确定方法、装置、电子设备及介质 | |
Will et al. | Ruya: Memory-aware iterative optimization of cluster configurations for big data processing | |
Banicescu et al. | Towards the robustness of dynamic loop scheduling on large-scale heterogeneous distributed systems | |
CN115065597A (zh) | 一种容器资源配置方法、装置、介质和设备 | |
CN113886111A (zh) | 一种基于工作流的数据分析模型计算引擎系统及运行方法 | |
Wang et al. | Mitigating bottlenecks in wide area data analytics via machine learning |
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 |