CN108519908A - 一种任务动态管理方法和装置 - Google Patents
一种任务动态管理方法和装置 Download PDFInfo
- Publication number
- CN108519908A CN108519908A CN201810158916.8A CN201810158916A CN108519908A CN 108519908 A CN108519908 A CN 108519908A CN 201810158916 A CN201810158916 A CN 201810158916A CN 108519908 A CN108519908 A CN 108519908A
- Authority
- CN
- China
- Prior art keywords
- metadata
- task
- monitor
- rel
- level node
- 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
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/486—Scheduler internals
Abstract
本发明公开了一种任务动态管理方法和装置。该方法在客户端侧执行,包括:接收用户提交的元数据操作信息;根据所述元数据操作信息,在实时监听器中操作元数据,并将操作后的所述元数据缓存在实时监听器中;其中,所述实时监听器以分布式协调服务zookeeper搭建,所述元数据为树形结构,所述树形结构的一级节点为流数据节点,二级节点为任务节点。该方法在任务控制器执行,包括:以Storm常驻任务的方式,预先占用中央处理器CPU资源;监听实时监听器中缓存的元数据;所述实时监听器以zookeeper搭建;如果所述实时监听器中缓存的元数据发生变化,则根据发送变化的所述元数据,更新已缓存的任务逻辑。通过本发明可以缩短任务生效时间,降低资源消耗。
Description
技术领域
本发明涉及大数据技术领域,特别是涉及一种任务动态管理方法和装置。
背景技术
随着大数据技术的应用,处理的时效性越来越重要。例如:在安全城市建设上,使用实时处理技术实时监控热力管道、桥梁道路等状态,对异常情况作出实时告警。又如:在电子商务上,实时分析用户的商品浏览记录,推荐可能喜好的相关商品或最受青睐的商品。诸如此类,实时处理分析技术在建设智慧城市、智能服务,提高生产效率等方面起到了积极的推动作用。
在大数据处理场景中,数据的时效性也越来越重要,对数据进行实时处理,能够使业务人员作出更加及时和准确的判断。但是,当前的实时处理技术存在任务启动耗时大、多任务并发资源消耗大等问题。
当前,Storm是主要的面向大数据的实时处理框架之一,其支撑了众多的实时处理业务。目前,基于Storm实时计算框架进行业务实时处理时有三个问题,一是任务启动时间长,在启动实时任务时,需要在分布式环境中初始化CPU(Central Processing Unit,中央处理器)服务资源,同时需要将处理任务的代码分发到分布式节点上,该过程长达几十秒甚至达到分钟级,严重影响了实时业务的时效性;二是在任务处理规则不断变化时,需要不断重启Storm任务,从而加剧了启动时间长这一问题对实时任务的影响。三是每个任务需要分配单独的CPU资源,在多个任务并行执行时,需要占用大量CPU资源,而且多个任务多次读取同一份数据,占用了大量网络资源。
发明内容
本发明要解决的技术问题是一种任务动态管理方法和装置,用以解决现有的实时处理技术存在任务生效时间长、多任务并发资源消耗大的问题。
为了解决上述技术问题,本发明是通过以下技术方案来解决的:
本发明提供了一种任务动态管理方法,在客户端侧执行,包括:接收用户提交的元数据操作信息;根据所述元数据操作信息,在实时监听器中操作元数据,并将操作后的所述元数据缓存在实时监听器中;其中,所述实时监听器以分布式协调服务zookeeper搭建,所述元数据为树形结构,所述树形结构的一级节点为流数据节点,二级节点为任务节点。
其中,根据所述元数据操作信息,操作缓存在实时监听器中的元数据,包括:根据请求对一级节点操作的元数据操作信息,确定流数据操作类型;如果所述流数据操作类型为添加,则根据所述元数据操作信息生成以JS对象标记Json格式描述的流数据描述信息,在所述元数据中添加所述流数据对应的一级节点,并将所述流数据描述信息写入所述一级节点;如果所述流数据操作类型为删除,则在所述实时监听器缓存的元数据中,删除所述流数据对应的一级节点。
其中,根据所述元数据操作信息,操作缓存在实时监听器中的元数据,包括:解析请求对二级节点操作的元数据操作信息,生成以Json格式描述的任务描述信息;其中,所述请求对二级节点操作的元数据操作信息以结构化查询语言SQL描述;根据所述任务描述信息,确定所述任务的操作类型;如果所述任务的操作类型为添加,则在所述实时监听器缓存的元数据中,添加所述任务对应的二级节点,并将所述任务描述信息写入所述二级节点;如果所述任务的操作类型为更新,则在所述实时监听器缓存的元数据中,将所述任务描述信息写入所述任务对应的二级节点;如果所述任务的操作类型为删除,则在所述实时监听器缓存的元数据中,删除所述任务对应的二级节点。
本发明提供了一种任务动态管理方法,在任务控制器执行,包括:以Storm常驻任务的方式,预先占用中央处理器CPU资源;监听实时监听器中缓存的元数据;所述实时监听器以zookeeper搭建;如果所述实时监听器中缓存的元数据发生变化,则根据发送变化的所述元数据,更新已缓存的任务逻辑。
其中,根据发送变化的所述元数据,更新已缓存的任务逻辑,包括:如果所述元数据中添加了一级节点,则从所述实时监听器读取所述一级节点的流数据描述信息并缓存;其中,所述流数据描述信息以Json格式描述;如果所述元数据中删除了一级节点,则删除所述一级节点的流数据描述信息以及所述一级节点下的二级节点所对应的任务逻辑。
其中,根据发送变化的所述元数据,更新已缓存的任务逻辑,包括:如果所述元数据中添加了二级节点,则从所述实时监控器读取所述二级节点的任务描述信息,根据所述任务描述信息解析出任务逻辑并缓存;其中,所述任务描述信息以Json格式描述;如果所述元数据中更新了二级节点,则从所述实时监控器读取所述二级节点的任务描述信息,根据所述任务描述信息生成任务逻辑,并更新已缓存的任务逻辑;如果所述元数据中删除了二级节点,则删除所述二级节点对应的任务逻辑。
本发明提供了一种任务动态管理装置,设置在客户端侧,包括:接收单元,用于接收用户提交的元数据操作信息;操作单元,用于根据所述元数据操作信息,在实时监听器中操作元数据,并将操作后的所述元数据缓存在实时监听器中;其中,所述实时监听器以分布式协调服务zookeeper搭建,所述元数据为树形结构,所述树形结构的一级节点为流数据节点,二级节点为任务节点。
其中,所述操作单元,进一步用于:根据请求对一级节点操作的元数据操作信息,确定流数据操作类型;如果所述流数据操作类型为添加,则根据所述元数据操作信息生成以JS对象标记Json格式描述的流数据描述信息,在所述元数据中添加所述流数据对应的一级节点,并将所述流数据描述信息写入所述一级节点;如果所述流数据操作类型为删除,则在所述实时监听器缓存的元数据中,删除所述流数据对应的一级节点;解析请求对二级节点操作的元数据操作信息,生成以Json格式描述的任务描述信息;其中,所述请求对二级节点操作的元数据操作信息以结构化查询语言SQL描述;根据所述任务描述信息,确定所述任务的操作类型;如果所述任务的操作类型为添加,则在所述实时监听器缓存的元数据中,添加所述任务对应的二级节点,并将所述任务描述信息写入所述二级节点;如果所述任务的操作类型为更新,则在所述实时监听器缓存的元数据中,将所述任务描述信息写入所述任务对应的二级节点;如果所述任务的操作类型为删除,则在所述实时监听器缓存的元数据中,删除所述任务对应的二级节点。
本发明提供了一种任务动态管理装置,设置在任务控制器,包括:配置单元,用于以Storm常驻任务的方式,预先占用中央处理器CPU资源;监听单元,用于监听实时监听器中缓存的元数据;所述实时监听器以zookeeper搭建;更新单元,用于如果所述实时监听器中缓存的元数据发生变化,则根据发送变化的所述元数据,更新已缓存的任务逻辑。
其中,所述更新单元,进一步用于:如果所述元数据中添加了一级节点,则从所述实时监听器读取所述一级节点的流数据描述信息并缓存;其中,所述流数据描述信息以Json格式描述;如果所述元数据中删除了一级节点,则删除所述一级节点的流数据描述信息以及所述一级节点下的二级节点所对应的任务逻辑;如果所述元数据中添加了二级节点,则从所述实时监控器读取所述二级节点的任务描述信息,根据所述任务描述信息解析出任务逻辑并缓存;其中,所述任务描述信息以Json格式描述;如果所述元数据中更新了二级节点,则从所述实时监控器读取所述二级节点的任务描述信息,根据所述任务描述信息生成任务逻辑,并更新已缓存的任务逻辑;如果所述元数据中删除了二级节点,则删除所述二级节点对应的任务逻辑。
本发明有益效果如下:
本发明在实时处理业务场景中,可以动态添加、更新、删除用户处理任务,据此可以预先分配任务资源,在秒级的延时内,使用户下发的任务生效,有效降低实时处理任务从下发到生效的时间间隔,本发明能够动态添加、更新、删除任务逻辑,对任务进行合并,避免并发任务占用大量CPU资源的情况发送。
附图说明
图1是根据本发明第一实施例的在客户端执行的任务动态管理方法的流程图;
图2是根据本发明第二实施例的在任务控制器执行的任务动态管理方法的流程图;
图3是根据本发明第三实施例的任务动态管理系统的示意图;
图4是根据本发明第三实施例的元数据的存储示意图;
图5是根据本发明第四实施例的设置在客户端侧的任务动态管理装置的结构图;
图6是根据本发明第五实施例的设置在任务控制器的任务动态管理装置的结构图。
具体实施方式
以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
实施例一
本实施例提供一种在客户端执行的任务动态管理方法。如图1所示,为根据本发明第一实施例的在客户端执行的任务动态管理方法的流程图。
步骤S110,接收用户提交的元数据操作信息。
元数据操作信息用于请求对元数据进行操作,并将操作后的元数据缓存在实时监听器中。该操作至少包括添加、更新和删除。
实时监听器以zookeeper(分布式协调服务)搭建。zookeeper具有缓存信息的功能,在本实施例中,zookeeper用于缓存元数据。
元数据为树形结构,树形结构的一级节点为流数据节点,二级节点为任务节点。进一步地,该树形结构的根节点为注册节点,根节点下的一级节点为流数据节点,一级节点下的二级节点为任务节点。
具体的,元数据操作信息可以请求对一级节点和二级节点的操作。
步骤S120,根据所述元数据操作信息,在实时监听器中操作元数据,并将操作后的所述元数据缓存在实时监听器中。
根据请求对一级节点操作的元数据操作信息,确定流数据操作类型;如果所述流数据操作类型为添加,则根据所述元数据操作信息生成以Json(JavaScript ObjectNotation,JS对象标记)格式描述的流数据描述信息,在所述元数据中添加所述流数据对应的一级节点,并将所述流数据描述信息写入所述一级节点;如果所述流数据操作类型为删除,则在所述实时监听器缓存的元数据中,删除所述流数据对应的一级节点。
根据请求对二级节点操作的元数据操作信息,解析请求对二级节点操作的元数据操作信息,生成以Json格式描述的任务描述信息;其中,请求对二级节点操作的元数据操作信息以SQL(Structured Query Language,结构化查询语言)描述;根据所述任务描述信息,确定所述任务的操作类型;如果所述任务的操作类型为添加,则在所述实时监听器缓存的元数据中,添加所述任务对应的二级节点,并将所述任务描述信息写入所述二级节点;如果所述任务的操作类型为更新,则在所述实时监听器缓存的元数据中,将所述任务描述信息写入所述任务对应的二级节点;如果所述任务的操作类型为删除,则在所述实时监听器缓存的元数据中,删除所述任务对应的二级节点。
上述的请求对一级节点操作的元数据操作信息也可以是SQL语言描述的信息,这样就需要对该SQL语言描述的元数据操作信息进行解析,生成以Json格式描述的流数据描述信息,通过该流数据描述信息确定流数据操作类型。
实施例二
本实施例提供一种在任务控制器执行的任务动态管理方法。图2是根据本发明第二实施例的在任务控制器执行的任务动态管理方法的流程图。
步骤S210,以Storm常驻任务的方式,预先占用CPU资源。
步骤S220,监听实时监听器中缓存的元数据。
步骤S230,判断所述实时监听器中缓存的元数据是否发生变化;如果是,则执行步骤S240;如果否,则跳转到步骤S220。
如果所述实时监听器中缓存的元数据没有发生变化,则继续监听。
元数据的变化对应上述对元数据的操作,至少包括:添加、更新和删除。
步骤S240,如果所述实时监听器中缓存的元数据发生变化,则根据发送变化的所述元数据,更新已缓存的任务逻辑。
任务逻辑,包括但不限于:任务的资源分配信息、状态信息和配置信息。
在本实施例中,更新已缓存的任务逻辑,具体包括:
如果所述元数据中添加了一级节点,则从所述实时监听器读取所述一级节点的流数据描述信息并缓存;其中,所述流数据描述信息以Json格式描述;
如果所述元数据中删除了一级节点,则删除所述一级节点的流数据描述信息以及所述一级节点下的二级节点所对应的任务逻辑;
如果所述元数据中添加了二级节点,则从所述实时监听器读取所述二级节点的任务描述信息,根据所述任务描述信息解析出任务逻辑并缓存;其中,所述任务描述信息以Json格式描述;
如果所述元数据中更新了二级节点,则从所述实时监听器读取所述二级节点的任务描述信息,根据所述任务描述信息生成任务逻辑,并更新已缓存的任务逻辑,实现对已缓存的任务逻辑的更新;
如果所述元数据中删除了二级节点,则删除所述二级节点对应的任务逻辑。
本发明实施例一和实施例二提供了一种在实时处理业务场景中动态添加、更新、删除任务的方法;使用了描述流数据和任务信息的特定语法格式Json;构造了包含流数据和任务树形结构元数据及其存储模式;使用本实施例动态添加、更新、删除任务的技术可以有效的降低用户任务下发到任务生效的时间延迟,缩短任务从下发到生效的时间间隔,从而提高了实时处理的效率,而且能够支持多个任务合并执行,降低了CPU、网络资源的使用,降低多任务并发情况下的资源消耗,提高实时处理的效率。
实施例三
本实施例提供一种任务动态管理系统。如图3所示,为根据本发明实施例三的任务动态管理系统的示意图。
任务动态管理系统,包括:客户端310、实时监听器320和任务控制器330。
客户端310,用于接收用户提交的元数据操作信息。
实时监听器320,用于缓存元数据并接受任务控制器330对元数据变化的监听。
任务控制器330,用于监听实时监听器320缓存的元数据,缓存任务逻辑,基于任务逻辑执行任务。
针对客户端310,具体而言:
客户端310包括SQL解析单元311,该SQL解析单元311用于解析以SQL语言描述的元数据操作信息。
本发明定义了支持聚合、模糊计算,与、或、非等逻辑运算的实时任务描述方法,即Json描述方法。Json语法采用类SQL(以Create Stream作为数据输入和输出,表示对流数据的操作)的形式,提供count、sum、max、min、in、like、not like、and、or等常用的数据分析功能,能够像使用关系型数据库一样来对结构化流数据进行分析。
流数据描述信息和任务描述信息都采用Json格式描述。
流数据描述信息,例如是:
其中,stream1为流数据的流名称,fields中描述该流数据中列名称及其对应的数据类型。流名称和列名称在任务描述信息中可以被引用,数据类型限制此列数据所能使用的表达式。列名称用来描述流数据,用于SQL语句解析。
任务描述信息,例如是:
其中,task1为任务的任务名称,fields中描述该任务的操作。name为对应流数据描述信息中的列名称;operation为在此列上的操作,为null时不输出此列;values在匹配类操作时提供目标值。operation定义的操作为SQL中常用数据分析函数,如:count、sum、max、min、in、like、not like、and和or。目标值与该字段类型及其操作有关,例如:int类型数据的in操作下,″values″:″123,234,345,456″。
具体的,针对添加操作来说,用户首先使用客户端310API(ApplicationProgramming Interface,应用程序编程接口)在实时监听器320缓存的元数据中注册(添加)流数据,在元数据中添加对应的一级节点,然后以SQL语言的形式提交任务(添加任务),运用ANTLR(Another Tool for Language Recognition,一个开源语法分析器)对任务的SQL语法分析,进而生成抽象语法树,再通过树分析器对该抽象语法树进行遍历,结合流数据描述信息中列名称及其数据类型,生成对应的任务描述信息,并将任务描述信息写入对应的二级节点。该任务描述信息以Json格式描述。
针对实时监听器320,具体而言:
实时监听器320包括操作接口321、元数据缓存单元322和任务监听接口323。其中,操作接口321用于连接客户端310;元数据缓存单元322用于缓存元数据;任务监听接口323用于连接任务控制器330。
实时监听器320以zookeeper实现。
本发明中元数据采用zookeeper存储,元数据包括了流数据描述信息和任务描述信息,使用树形结构存储,如图4所示。
在zookeeper中,根节点是服务在zookeeper中的注册节点,其位置不限。其子节点为用户所注册的流数据节点,存储流数据描述信息,具体的,节点名以流名称表示,节点内容即为对应的流数据描述信息,描述方式为Json。流数据节点的子节点为其运行的任务节点,存储任务描述信息,具体的,任务节点以任务名称表示,节点内容为任务描述信息,描述方式为Json。其中,一个流数据节点可以有零个或多个任务子节点。
元数据的变动触发任务控制器330(任务管理单元331)注册在zookeeper上的任务监听接口323(watcher),使任务管理单元331能够自动获取流数据描述信息和任务描述信息,根据任务描述信息生成任务逻辑。进一步地,任务的添加、更新和删除会触发watcher,任务管理模块根据任务描述信息中对应的任务名称,在任务逻辑缓存单元332中,对任务对应的任务逻辑进行添加、更新或删除操作。
针对任务控制器330,具体而言:
Storm为开源框架,具备分布式执行能力,提供实时任务编程接口。在本发明中,任务控制器330以Storm常驻任务的方式存在,依次可以预先占用Storm集群中的CPU资源。
任务控制器330包括任务管理单元331、任务逻辑缓存单元332和任务执行单元333。其中,任务管理单元331用于监听实时监听器320中缓存的元数据的变化,更新任务逻辑缓存单元332中缓存的任务逻辑;任务执行单元333用于执行任务。
任务管理单元331实时监听zookeeper,及时获知元数据的变化,针对任务的变化,解析为对应的任务逻辑,缓存到任务逻辑缓存单元332中。
任务执行单元333执行任务逻辑时,先从任务逻辑缓存单元332中获取任务逻辑,可以将多个任务逻辑组成一组执行逻辑并执行。
本实施例实现了一套支持任务动态添加、更新和删除的架构,能够监听到任务的添加、更新和删除变化,并在线应用到运行程序中。
本实施例定义了支持聚合、模糊计算,与、或、非等逻辑运算的实时任务描述方法,使用更加灵活。
本实施例定义了实时任务存储的数据结构以及流数据结构。
传统实时处理方法在添加任务时,需要重启整个任务,不适用于任务频繁变化的场景,也增加了任务生效时间。本实施例使用任务动态添加技术,监测用户下发的任务描述,自动将任务描述转化成处理业务逻辑,并添加到正在运行的实时处理业务中,在降低数据处理延迟的同时,能够提高实时处理效率,也大大降低了任务下发到任务生效的时间延迟。
实施例四
本实施例提供一种设置在客户端侧的任务动态管理装置。如图5所示,为根据本发明第四实施例的设置在客户端侧任务动态管理装置的结构图。
该设置在客户端侧的任务动态管理装置,包括:
接收单元510,用于接收用户提交的元数据操作信息。
操作单元520,用于根据所述元数据操作信息,在实时监听器中操作元数据,并将操作后的所述元数据缓存在实时监听器中。
其中,所述实时监听器以分布式协调服务zookeeper搭建,所述元数据为树形结构,所述树形结构的一级节点为流数据节点,二级节点为任务节点。
可选地,所述操作单元520,进一步用于:根据请求对一级节点操作的元数据操作信息,确定流数据操作类型;如果所述流数据操作类型为添加,则根据所述元数据操作信息生成以JS对象标记Json格式描述的流数据描述信息,在所述元数据中添加所述流数据对应的一级节点,并将所述流数据描述信息写入所述一级节点;如果所述流数据操作类型为删除,则在所述实时监听器缓存的元数据中,删除所述流数据对应的一级节点。
可选地,所述操作单元520,进一步用于:解析请求对二级节点操作的元数据操作信息,生成以Json格式描述的任务描述信息;其中,请求对二级节点操作的元数据操作信息以结构化查询语言SQL描述;根据所述任务描述信息,确定所述任务的操作类型;如果所述任务的操作类型为添加,则在所述实时监听器缓存的元数据中,添加所述任务对应的二级节点,并将所述任务描述信息写入所述二级节点;如果所述任务的操作类型为更新,则在所述实时监听器缓存的元数据中,将所述任务描述信息写入所述任务对应的二级节点;如果所述任务的操作类型为删除,则在所述实时监听器缓存的元数据中,删除所述任务对应的二级节点。
本实施例所述的装置的功能已经在图1和图3所示的实施例中进行了描述,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
实施例五
本实施例提供一种设置在任务控制器的任务动态管理装置。图6为根据本发明第五实施例的设置在任务控制器的任务动态管理装置的结构图。
设置在任务控制器的任务动态管理装置,包括:
配置单元610,用于以Storm常驻任务的方式,预先占用中央处理器CPU资源。
监听单元620,用于监听实时监听器中缓存的元数据;所述实时监听器以zookeeper搭建。
更新单元630,用于如果所述实时监听器中缓存的元数据发生变化,则根据发送变化的所述元数据,更新已缓存的任务逻辑。
可选地,所述更新模块630,进一步用于:
如果所述元数据中添加了一级节点,则从所述实时监听器读取所述一级节点的流数据描述信息并缓存;其中,所述流数据描述信息以Json格式描述;
如果所述元数据中删除了一级节点,则删除所述一级节点的流数据描述信息以及所述一级节点下的二级节点所对应的任务逻辑;
如果所述元数据中添加了二级节点,则从所述实时监听器读取所述二级节点的任务描述信息,根据所述任务描述信息解析出任务逻辑并缓存;其中,所述任务描述信息以Json格式描述;
如果所述元数据中更新了二级节点,则从所述实时监听器读取所述二级节点的任务描述信息,根据所述任务描述信息生成任务逻辑,并更新已缓存的任务逻辑;
如果所述元数据中删除了二级节点,则删除所述二级节点对应的任务逻辑。
本实施例的配置单元610、监听单元620、更新单元630的功能可以集成在上述的任务管理单元331中。
本实施例所述的装置的功能已经在图2和图3所示的实施例中进行了描述,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。
Claims (10)
1.一种任务动态管理方法,其特征在于,在客户端侧执行,包括:
接收用户提交的元数据操作信息;
根据所述元数据操作信息,在实时监听器中操作元数据,并将操作后的所述元数据缓存在实时监听器中;
其中,所述实时监听器以分布式协调服务zookeeper搭建,所述元数据为树形结构,所述树形结构的一级节点为流数据节点,二级节点为任务节点。
2.如权利要求1所述的方法,其特征在于,根据所述元数据操作信息,操作缓存在实时监听器中的元数据,包括:
根据请求对一级节点操作的元数据操作信息,确定流数据操作类型;
如果所述流数据操作类型为添加,则根据所述元数据操作信息生成以JS对象标记Json格式描述的流数据描述信息,在所述元数据中添加所述流数据对应的一级节点,并将所述流数据描述信息写入所述一级节点;
如果所述流数据操作类型为删除,则在所述实时监听器缓存的元数据中,删除所述流数据对应的一级节点。
3.如权利要求1所述的方法,其特征在于,根据所述元数据操作信息,操作缓存在实时监听器中的元数据,包括:
解析请求对二级节点操作的元数据操作信息,生成以Json格式描述的任务描述信息;其中,所述请求对二级节点操作的元数据操作信息以结构化查询语言SQL描述;
根据所述任务描述信息,确定所述任务的操作类型;
如果所述任务的操作类型为添加,则在所述实时监听器缓存的元数据中,添加所述任务对应的二级节点,并将所述任务描述信息写入所述二级节点;
如果所述任务的操作类型为更新,则在所述实时监听器缓存的元数据中,将所述任务描述信息写入所述任务对应的二级节点;
如果所述任务的操作类型为删除,则在所述实时监听器缓存的元数据中,删除所述任务对应的二级节点。
4.一种任务动态管理方法,其特征在于,在任务控制器执行,包括:
以Storm常驻任务的方式,预先占用中央处理器CPU资源;
监听实时监听器中缓存的元数据;所述实时监听器以zookeeper搭建;
如果所述实时监听器中缓存的元数据发生变化,则根据发送变化的所述元数据,更新已缓存的任务逻辑。
5.如权利要求4所述的方法,其特征在于,根据发送变化的所述元数据,更新已缓存的任务逻辑,包括:
如果所述元数据中添加了一级节点,则从所述实时监听器读取所述一级节点的流数据描述信息并缓存;其中,所述流数据描述信息以Json格式描述;
如果所述元数据中删除了一级节点,则删除所述一级节点的流数据描述信息以及所述一级节点下的二级节点所对应的任务逻辑。
6.如权利要求4所述的方法,其特征在于,根据发送变化的所述元数据,更新已缓存的任务逻辑,包括:
如果所述元数据中添加了二级节点,则从所述实时监控器读取所述二级节点的任务描述信息,根据所述任务描述信息解析出任务逻辑并缓存;其中,所述任务描述信息以Json格式描述;
如果所述元数据中更新了二级节点,则从所述实时监控器读取所述二级节点的任务描述信息,根据所述任务描述信息生成任务逻辑,并更新已缓存的任务逻辑;
如果所述元数据中删除了二级节点,则删除所述二级节点对应的任务逻辑。
7.一种任务动态管理装置,其特征在于,设置在客户端侧,包括:
接收单元,用于接收用户提交的元数据操作信息;
操作单元,用于根据所述元数据操作信息,在实时监听器中操作元数据,并将操作后的所述元数据缓存在实时监听器中;
其中,所述实时监听器以分布式协调服务zookeeper搭建,所述元数据为树形结构,所述树形结构的一级节点为流数据节点,二级节点为任务节点。
8.如权利要求7所述的装置,其特征在于,所述操作单元,进一步用于:
根据请求对一级节点操作的元数据操作信息,确定流数据操作类型;
如果所述流数据操作类型为添加,则根据所述元数据操作信息生成以JS对象标记Json格式描述的流数据描述信息,在所述元数据中添加所述流数据对应的一级节点,并将所述流数据描述信息写入所述一级节点;
如果所述流数据操作类型为删除,则在所述实时监听器缓存的元数据中,删除所述流数据对应的一级节点;
解析请求对二级节点操作的元数据操作信息,生成以Json格式描述的任务描述信息;其中,所述请求对二级节点操作的元数据操作信息以结构化查询语言SQL描述;
根据所述任务描述信息,确定所述任务的操作类型;
如果所述任务的操作类型为添加,则在所述实时监听器缓存的元数据中,添加所述任务对应的二级节点,并将所述任务描述信息写入所述二级节点;
如果所述任务的操作类型为更新,则在所述实时监听器缓存的元数据中,将所述任务描述信息写入所述任务对应的二级节点;
如果所述任务的操作类型为删除,则在所述实时监听器缓存的元数据中,删除所述任务对应的二级节点。
9.一种任务动态管理装置,其特征在于,设置在任务控制器,包括:
配置单元,用于以Storm常驻任务的方式,预先占用中央处理器CPU资源;
监听单元,用于监听实时监听器中缓存的元数据;所述实时监听器以zookeeper搭建;
更新单元,用于如果所述实时监听器中缓存的元数据发生变化,则根据发送变化的所述元数据,更新已缓存的任务逻辑。
10.如权利要求9所示的装置,其特征在于,所述更新单元,进一步用于:
如果所述元数据中添加了一级节点,则从所述实时监听器读取所述一级节点的流数据描述信息并缓存;其中,所述流数据描述信息以Json格式描述;
如果所述元数据中删除了一级节点,则删除所述一级节点的流数据描述信息以及所述一级节点下的二级节点所对应的任务逻辑;
如果所述元数据中添加了二级节点,则从所述实时监控器读取所述二级节点的任务描述信息,根据所述任务描述信息解析出任务逻辑并缓存;其中,所述任务描述信息以Json格式描述;
如果所述元数据中更新了二级节点,则从所述实时监控器读取所述二级节点的任务描述信息,根据所述任务描述信息生成任务逻辑,并更新已缓存的任务逻辑;
如果所述元数据中删除了二级节点,则删除所述二级节点对应的任务逻辑。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810158916.8A CN108519908A (zh) | 2018-02-24 | 2018-02-24 | 一种任务动态管理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810158916.8A CN108519908A (zh) | 2018-02-24 | 2018-02-24 | 一种任务动态管理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108519908A true CN108519908A (zh) | 2018-09-11 |
Family
ID=63433304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810158916.8A Pending CN108519908A (zh) | 2018-02-24 | 2018-02-24 | 一种任务动态管理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108519908A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134737A (zh) * | 2019-05-20 | 2019-08-16 | 中国铁道科学研究院集团有限公司 | 数据变化监听方法及装置、电子设备和计算机可读存储介质 |
CN111090665A (zh) * | 2019-11-15 | 2020-05-01 | 广东数果科技有限公司 | 一种数据任务调度方法及调度系统 |
CN111277621A (zh) * | 2018-12-05 | 2020-06-12 | 中国移动通信集团河南有限公司 | 一种缓存动态管理方法及系统 |
CN111984380A (zh) * | 2020-08-21 | 2020-11-24 | 北京金山云网络技术有限公司 | 流计算服务系统及其控制方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697168A (zh) * | 2009-10-22 | 2010-04-21 | 中国科学技术大学 | 一种分布式文件系统动态元数据管理方法及系统 |
US20140207940A1 (en) * | 2013-01-23 | 2014-07-24 | Facebook, Inc. | Method and system for using a recursive event listener on a node in hierarchical data structure |
CN104683374A (zh) * | 2013-11-28 | 2015-06-03 | 北京华云网际科技有限公司 | 一种分布式存储的缓存更新方法及分布式存储系统 |
CN105760511A (zh) * | 2016-02-24 | 2016-07-13 | 南京信息职业技术学院 | 一种基于storm的大数据自适应拓扑处理方法 |
CN106375342A (zh) * | 2016-10-21 | 2017-02-01 | 用友网络科技股份有限公司 | 一种基于zookeeper技术的系统集群方法及系统 |
CN106843930A (zh) * | 2016-12-23 | 2017-06-13 | 江苏途致信息科技有限公司 | 基于zookeeper的流式动态配置更新架构及方法 |
-
2018
- 2018-02-24 CN CN201810158916.8A patent/CN108519908A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697168A (zh) * | 2009-10-22 | 2010-04-21 | 中国科学技术大学 | 一种分布式文件系统动态元数据管理方法及系统 |
US20140207940A1 (en) * | 2013-01-23 | 2014-07-24 | Facebook, Inc. | Method and system for using a recursive event listener on a node in hierarchical data structure |
CN104683374A (zh) * | 2013-11-28 | 2015-06-03 | 北京华云网际科技有限公司 | 一种分布式存储的缓存更新方法及分布式存储系统 |
CN105760511A (zh) * | 2016-02-24 | 2016-07-13 | 南京信息职业技术学院 | 一种基于storm的大数据自适应拓扑处理方法 |
CN106375342A (zh) * | 2016-10-21 | 2017-02-01 | 用友网络科技股份有限公司 | 一种基于zookeeper技术的系统集群方法及系统 |
CN106843930A (zh) * | 2016-12-23 | 2017-06-13 | 江苏途致信息科技有限公司 | 基于zookeeper的流式动态配置更新架构及方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111277621A (zh) * | 2018-12-05 | 2020-06-12 | 中国移动通信集团河南有限公司 | 一种缓存动态管理方法及系统 |
CN110134737A (zh) * | 2019-05-20 | 2019-08-16 | 中国铁道科学研究院集团有限公司 | 数据变化监听方法及装置、电子设备和计算机可读存储介质 |
CN110134737B (zh) * | 2019-05-20 | 2021-02-26 | 中国铁道科学研究院集团有限公司 | 数据变化监听方法及装置、电子设备和计算机可读存储介质 |
CN111090665A (zh) * | 2019-11-15 | 2020-05-01 | 广东数果科技有限公司 | 一种数据任务调度方法及调度系统 |
CN111984380A (zh) * | 2020-08-21 | 2020-11-24 | 北京金山云网络技术有限公司 | 流计算服务系统及其控制方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10977083B2 (en) | Cost optimized dynamic resource allocation in a cloud infrastructure | |
Tantalaki et al. | A review on big data real-time stream processing and its scheduling techniques | |
US11669528B2 (en) | Joining multiple events in data streaming analytics systems | |
CN108519908A (zh) | 一种任务动态管理方法和装置 | |
CN107766572A (zh) | 基于经济领域数据的分布式提取及可视化分析方法和系统 | |
Li et al. | SparkBench: a spark benchmarking suite characterizing large-scale in-memory data analytics | |
US8037096B2 (en) | Memory efficient data processing | |
EP3201771A1 (en) | Apparatus and method for scheduling distributed workflow tasks | |
US9990403B2 (en) | System and a method for reasoning and running continuous queries over data streams | |
US10360394B2 (en) | System and method for creating, tracking, and maintaining big data use cases | |
CN112527848B (zh) | 基于多数据源的报表数据查询方法、装置、系统及存储介质 | |
CN109522341A (zh) | 实现基于sql的流式数据处理引擎的方法、装置、设备 | |
CN115373835A (zh) | Flink集群的任务资源调整方法、装置及电子设备 | |
WO2018045610A1 (zh) | 用于执行分布式计算任务的方法和装置 | |
WO2018142592A1 (ja) | 情報処理システム及び情報処理方法 | |
CN112052082A (zh) | 任务属性优化方法、装置、服务器及存储介质 | |
CN114662932A (zh) | 一种节点分级的工作流类定时任务调度方法 | |
US20060059258A1 (en) | Multi-layered measurement model for data collection and method for data collection using same | |
KR102170624B1 (ko) | 데이터 분석 시스템에서의 메모리 할당 | |
US11810022B2 (en) | Contact center call volume prediction | |
CA3119490A1 (en) | Contact center call volume prediction | |
CN112231093A (zh) | 基于代码模板和协程池的数据采集方法、系统及电子设备 | |
JPH10240591A (ja) | Sqlプロシジャ実行時の計算機負荷分散方法 | |
CN116955427B (zh) | 一种基于Flink框架的实时多规则动态表达式数据处理方法以及装置 | |
CN115033457B (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 | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20230328 |
|
AD01 | Patent right deemed abandoned |