CN111381940B - 分布式数据处理方法及装置 - Google Patents
分布式数据处理方法及装置 Download PDFInfo
- Publication number
- CN111381940B CN111381940B CN202010471369.6A CN202010471369A CN111381940B CN 111381940 B CN111381940 B CN 111381940B CN 202010471369 A CN202010471369 A CN 202010471369A CN 111381940 B CN111381940 B CN 111381940B
- Authority
- CN
- China
- Prior art keywords
- data
- data analysis
- distributed
- analysis service
- distributed computing
- 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/465—Distributed object oriented systems
-
- 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
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例提供一种分布式数据处理方法及装置,将具有不同数据分析需求的多个用户的数据分析服务集成配置到分布式计算引擎程序中,然后根据分析服务数据包在集群服务器中配置分布式调度程序,并调用分布式调度程序监听消息中间件传输的包括多个待执行的数据分析服务的消息内容。由此,可以根据消息内容生成分布式数据执行计划,并对分布式数据执行计划进行分布式调度计算,得到分布式计算结果。如此,后续无需分别提交数据分析服务即可自动执行一次性提交的所有数据分析服务,无需数据分析人员人工干预,降低业务复杂度,从而提高数据分析效率,减少数据分析服务执行出错的情况。
Description
技术领域
本申请涉及分布式计算技术领域,具体而言,涉及一种分布式数据处理方法及装置。
背景技术
目前,数据分析服务越来越受到企业的重视,尤其是结合了大数据之后,数据分析在企业日常的运营中显得至关重要。
传统数据分析领域中,数据分析服务的环节较多,导致各个产品和服务之间的数据分析结果无法自动流转,需要数据分析人员人工干预,一旦企业业务规模扩大,业务复杂度加深,人工分析流转数据的方式就显得效率十分低下并且极其容易出错。
发明内容
基于现有设计的不足,本申请提供一种分布式数据处理方法及装置,通过将具有不同数据分析需求的多个用户的数据分析服务集成配置到分布式计算引擎程序中,使得后续无需分别提交数据分析服务即可自动执行一次性提交的所有数据分析服务,无需数据分析人员人工干预,降低业务复杂度,从而提高数据分析效率,减少数据分析服务执行出错的情况。
根据本申请实施例的第一方面,提供一种分布式数据处理方法,应用于与分布式计算集群通信连接的集群服务器,所述方法包括:
将具有不同数据分析需求的多个用户的数据分析服务集成配置到分布式计算引擎程序中,得到分析服务数据包,其中,不同的数据分析服务在所述分析服务数据包中以不同的class文件进行区分;
根据所述分析服务数据包在所述集群服务器中配置分布式调度程序,并调用所述分布式调度程序监听消息中间件传输的包括多个待执行的数据分析服务的消息内容;
根据所述消息内容生成分布式数据执行计划,并对所述分布式数据执行计划进行分布式调度计算,得到分布式计算结果。
在第一方面的一种可能的实施方式中,所述将具有不同数据分析需求的多个用户的数据分析服务集成配置到分布式计算引擎程序中,得到分析服务数据包的步骤,包括:
将每个数据分析服务定义为所述分布式计算引擎中的一个接口服务,并为每个接口服务配置对应的计算逻辑,以及配置每个接口服务的计算结果返回的矩阵数据表;
通过所述分布式计算引擎根据每个矩阵数据表将每个接口服务进行集成配置,得到分析服务数据包。
在第一方面的一种可能的实施方式中,所述根据所述消息内容生成分布式数据执行计划的步骤,包括:
在监听到所述消息中间件传输的消息内容时,将该消息内容和对应的传输时间戳保存到预设数据库中,并设置该消息内容的执行状态为未执行状态;
每隔预设时间间隔扫描所述预设数据库,在扫描到所述预设数据库中存在执行状态为未执行状态的消息内容,且不存在执行状态为正在执行状态的执行程序时,按照执行状态为未执行状态的消息内容的传输时间戳的顺序对每个消息内容进行排序,生成消息内容排序列表;
按照所述消息内容排序列表中每个消息内容的顺序分别生成每个消息内容的分布式数据执行计划;
当任意一个消息内容对应的分布式数据执行计划执行完毕时,设置该消息内容的执行状态为已执行状态。
在第一方面的一种可能的实施方式中,所述对所述分布式数据执行计划进行分布式调度计算,得到分布式计算结果的步骤,包括:
解析所述分布式数据执行计划的计划信息,所述计划信息包括数据分析服务列表、分析服务类型和所述数据分析服务列表中每个数据分析服务对应的任务计划标识;
根据所述计划信息启动第一线程和第二线程,其中,所述第一线程用于启动所述分析服务类型所对应的目标分布式计算引擎程序,并获取所述目标分布式计算引擎程序的返回状态码,所述第二线程用于获取所述目标分布式计算引擎程序的日志信息;
当启动所述分析服务类型所对应的目标分布式计算引擎程序后,将所述数据分析服务列表传入到所述目标分布式计算引擎程序中;
从预先定义的数据源表中加载所述任务计划标识所对应的待计算数据,并通过所述目标分布式计算引擎程序执行传入的所述数据分析服务列表的数据分析服务,对所述待计算数据进行分布式计算调度,得到分布式计算结果。
在第一方面的一种可能的实施方式中,所述通过所述目标分布式计算引擎程序执行传入的所述数据分析服务列表的数据分析服务,对所述待计算数据进行分布式计算调度,得到分布式计算结果的步骤,包括:
当所述分析服务类型为回溯分析服务类型时,通过所述目标分布式计算引擎程序查找所述数据分析服务列表中是否存在依赖于其它数据分析服务的目标数据分析服务,其中,所述其它数据分析服务不存在于所述数据分析服务列表中;
当所述数据分析服务列表中存在依赖于其它数据分析服务的目标数据分析服务时,则将所述其它数据分析服务添加到所述数据分析服务列表中;
根据预先定义的所述消息内容排序列表中每个消息内容的顺序,对所述所述数据分析服务列表进行排序,并按照排序结果执行所述数据分析服务列表中的每个数据分析服务,分别将每个数据分析服务所对应的待计算数据调度到所述分布式计算集群中的各个计算节点执行对应的分布式计算任务,得到所述分布式计算结果。
在第一方面的一种可能的实施方式中,所述通过所述目标分布式计算引擎程序执行传入的所述数据分析服务列表的数据分析服务,对所述待计算数据进行分布式计算调度,得到分布式计算结果的步骤,包括:
当所述分析服务类型为撞缓存服务类型时,通过所述目标分布式计算引擎程序遍历所述数据分析服务列表中需要撞缓存的每个数据分析服务;
根据所述数据分析服务从预先定义的缓存表中获取属于所述数据分析服务的与所述待计算数据关联匹配的撞缓存数据,将所有数据分析服务对应的撞缓存数据作为所述分布式计算结果。
在第一方面的一种可能的实施方式中,所述通过所述目标分布式计算引擎程序执行传入的所述数据分析服务列表的数据分析服务,对所述待计算数据进行分布式计算调度,得到分布式计算结果的步骤,包括:
当所述分析服务类型为脚本打分服务类型时,通过所述目标分布式计算引擎程序获取所述数据分析服务列表中每个数据分析服务对应的打分脚本和该打分脚本依赖的所有外部文件;
遍历所述待计算数据,调用该打分脚本和该打分脚本依赖的所有外部文件对所述待计算数据进行计算,得到分布式计算结果。
根据本申请实施例的第二方面,提供一种分布式数据处理装置,应用于与分布式计算集群通信连接的集群服务器,所述装置包括:
集成配置模块,用于将具有不同数据分析需求的多个用户的数据分析服务集成配置到分布式计算引擎程序中,得到分析服务数据包,其中,不同的数据分析服务在所述分析服务数据包中以不同的class文件进行区分;
监听模块,用于根据所述分析服务数据包在所述集群服务器中配置分布式调度程序,并调用所述分布式调度程序监听消息中间件传输的包括多个待执行的数据分析服务的消息内容;
调度计算模块,用于根据所述消息内容生成分布式数据执行计划,并对所述分布式数据执行计划进行分布式调度计算,得到分布式计算结果。
基于上述任一方面,本申请将具有不同数据分析需求的多个用户的数据分析服务集成配置到分布式计算引擎程序中,然后根据分析服务数据包在集群服务器中配置分布式调度程序,并调用分布式调度程序监听消息中间件传输的包括多个待执行的数据分析服务的消息内容。由此,可以根据消息内容生成分布式数据执行计划,并对分布式数据执行计划进行分布式调度计算,得到分布式计算结果。如此,后续无需分别提交数据分析服务即可自动执行一次性提交的所有数据分析服务,无需数据分析人员人工干预,降低业务复杂度,从而提高数据分析效率,减少数据分析服务执行出错的情况。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的分布式数据处理***的应用场景示意图;
图2示出了本申请实施例所提供的分布式数据处理方法的流程示意图;
图3示出了本申请实施例所提供的分布式数据处理装置的功能模块示意图;
图4示出了本申请实施例所提供的用于执行上述的分布式数据处理方法的服务器的组件结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请实施例的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其它操作,也可以从流程图中移除一个或多个操作。
图1示出了本申请实施例所提供的分布式数据处理***10的应用场景示意图。本实施例中,分布式数据处理***10可以包括服务器100以及与服务器100通信连接的用户终端200。
用户终端200可以包括但不限于智能手机、平板计算机、膝上型计算机、个人电脑、工作站等,在此不作详细限定。
在一种可能的实施方式中,服务器100可以是单个服务器,也可以是一个服务器组。服务器组可以是集中式的,也可以是分布式的(例如,服务器100可以是分布式***)。
可以理解,在其它可能的实施方式中,该分布式数据处理***10也可以仅包括图1所示组成部分的其中一部分或者还可以包括其它的组成部分。
图2示出了本申请实施例提供的分布式数据处理方法的流程示意图,本实施例中,该分布式数据处理方法可以由图1中所示的服务器100执行。应当理解,在其它实施例中,本实施例的分布式数据处理方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。该分布式数据处理方法的详细步骤介绍如下。
步骤S110,将具有不同数据分析需求的多个用户的数据分析服务集成配置到分布式计算引擎程序中,得到分析服务数据包。
步骤S120,根据分析服务数据包在集群服务器中配置分布式调度程序,并调用分布式调度程序监听消息中间件传输的包括多个待执行的数据分析服务的消息内容。
步骤S130,根据消息内容生成分布式数据执行计划,并对分布式数据执行计划进行分布式调度计算,得到分布式计算结果。
分布式计算引擎程序可以是Spark计算引擎程序,不同的数据分析服务在分析服务数据包中可以以不同的class文件进行区分,class文件也称为Java class文件,可以为Java程序提供独立于底层平台的二进制形式的服务。
经本申请发明人研究发现,在传统数据分析方案中,对于不同的企业而言,一些数据分析服务通常都是独立存在的,例如一个数据分析服务可能对应一套hive脚本,或一个数据分析服务对应一套java程序、Spark程序等。然而,如果这些数据分析服务之间存在关联计算等操作,则需要数据分析服务人员手动执行大量的关联操作,随着业务规模的扩大,零散的数据分析服务越来越多,对于后续维护和升级而言都将会变得越来越困难。
针对上述问题,本实施例中,将具有不同数据分析需求的多个用户的数据分析服务进行开发和改造,从而集成配置到分布式计算引擎程序中,得到分析服务数据包,例如可以都以Spark的形式对各个数据分析服务进行开发或改造,从而可以得到Spark计算引擎程序中的分析服务数据包。其中,该分析服务数据包可以以jar包的形式配置于Spark计算引擎程序中。
这样,可以根据分析服务数据包在集群服务器中配置分布式调度程序,从而可以调用分布式调度程序监听消息中间件传输的包括多个待执行的数据分析服务的消息内容。例如,数据分析人员可以一次性提交所有数据分析服务,并通过消息中间件(例如kafka消息中间件等)传输到分布式调度程序中。由此,即可根据消息内容生成分布式数据执行计划,并对分布式数据执行计划进行分布式调度计算,得到分布式计算结果。
基于上述步骤,本实施例将具有不同数据分析需求的多个用户的数据分析服务集成配置到分布式计算引擎程序中,然后根据分析服务数据包在集群服务器中配置分布式调度程序,并调用分布式调度程序监听消息中间件传输的包括多个待执行的数据分析服务的消息内容。由此,可以根据消息内容生成分布式数据执行计划,并对分布式数据执行计划进行分布式调度计算,得到分布式计算结果。如此,后续无需分别提交数据分析服务即可自动执行一次性提交的所有数据分析服务,无需数据分析人员人工干预,降低业务复杂度,从而提高数据分析效率,减少数据分析服务执行出错的情况。
在一种可能的实施方式中,针对步骤S110,可以进一步通过以下子步骤S111和子步骤S112实现,示例性描述如下。
子步骤S111,将每个数据分析服务定义为分布式计算引擎中的一个接口服务,并为每个接口服务配置对应的计算逻辑,以及配置每个接口服务的计算结果返回的矩阵数据表。
子步骤S112,通过分布式计算引擎根据每个矩阵数据表将每个接口服务进行集成配置,得到分析服务数据包。
本实施例中,每个接口服务都配置有独立的计算逻辑,从而可以在后续进行数据分析时基于该计算逻辑完成相关的数据计算,并且数据计算结果都会返回到矩阵数据表DataFrame中,由此可以便于后续分布式计算殷勤重用这些矩阵数据表DataFrame进行相关的关联计算,例如某些接口服务之间的依赖关系计算等。
由此,通过分布式计算引擎根据每个矩阵数据表将每个接口服务进行集成配置,得到分析服务数据包,以便于后续在进行数据分析时无需分别提交数据分析服务即可基于统一的分析服务数据包自动执行一次性提交的所有数据分析服务,无需数据分析人员人工干预不同数据分析服务之前的关联计算操作,提高数据分析服务的执行效率。
在一种可能的实施方式中,针对步骤S130,可以进一步通过以下子步骤S131-子步骤S134实现,示例性描述如下。
子步骤S131,在监听到消息中间件传输的消息内容时,将该消息内容和对应的传输时间戳保存到预设数据库中,并设置该消息内容的执行状态为未执行状态。
例如,在监听到消息中间件kafka中传输的消息内容A时,将该消息内容A、该消息内容A的传输时间戳XX.XX.XX保存到Mysql数据库,同时,设置该消息内容A的执行状态为0(0:未执行状态,-1:正在执行状态,1:已执行状态)。
子步骤S132,每隔预设时间间隔扫描预设数据库,在扫描到预设数据库中存在执行状态为未执行状态的消息内容,且不存在执行状态为正在执行状态的执行程序时,按照执行状态为未执行状态的消息内容的传输时间戳的顺序对每个消息内容进行排序,生成消息内容排序列表。
例如,可以每隔1分钟扫描一次上述的Mysql数据库,若扫描到存在执行状态为0的消息内容A,且不存在执行状态为-1的执行程序,则会发起对消息内容A的数据分析服务的调度。同时,修改该条消息内容A的状态为-1。如果有多条消息内容,则可以根据消息内容的传输时间戳的顺序,获取传输时间戳最小的一条消息内容,以此开始数据分析服务的调度。
子步骤S133,按照消息内容排序列表中每个消息内容的顺序分别生成每个消息内容的分布式数据执行计划。
例如,假设消息内容排序列表的顺序为消息内容1、消息内容2、消息内容3、消息内容4,那么则可以按照消息内容1、消息内容2、消息内容3、消息内容4分别生成消息内容1、消息内容2、消息内容3、消息内容4的分布式数据执行计划。
子步骤S134,当任意一个消息内容对应的分布式数据执行计划执行完毕时,设置该消息内容的执行状态为已执行状态。
例如,以上述示例为例,当消息内容1对应的分布式数据执行计划执行完毕时,那么则可以修改Mysql数据库中消息内容1对应的执行状态为1,然后等待执行消息内容1对应的分布式数据执行计划。
在一种可能的实施方式中,仍旧针对步骤S130,在对分布式数据执行计划进行分布式调度计算,得到分布式计算结果的过程中,可以进一步通过以下子步骤S135-子步骤S138实现,示例性描述如下。
子步骤S135,解析分布式数据执行计划的计划信息。
例如,计划信息可以包括数据分析服务列表service_list、分析服务类型service_type和数据分析服务列表service_list中每个数据分析服务service_name对应的任务计划标识task_id。
子步骤S136,根据计划信息启动第一线程和第二线程。
例如,第一线程可用于启动分析服务类型service_type所对应的目标分布式计算引擎程序,并获取目标分布式计算引擎程序的返回状态码,第二线程用于获取目标分布式计算引擎程序的日志信息。
其中,返回状态码可以是指目标分布式计算引擎程序在启动后返回的状态码,具体可用于表示目标分布式计算引擎程序是否启动成功,以及在启动过程中的状态情况。此外,目标分布式计算引擎程序的日志信息可以用于表示目标分布式计算引擎程序在启动过程中的状态行为,例如出错状态行为等。
子步骤S137,当启动分析服务类型所对应的目标分布式计算引擎程序后,将数据分析服务列表传入到目标分布式计算引擎程序中。
子步骤S138,从预先定义的数据源表中加载任务计划标识所对应的待计算数据,并通过目标分布式计算引擎程序执行传入的数据分析服务列表的数据分析服务,对待计算数据进行分布式计算调度,得到分布式计算结果。
例如,在一种可能的实施方式中,若service_type=recall,也就是说,当分析服务类型为回溯分析服务类型时,则可以从定义好的数据源表中加载任务计划标识=task_id的源数据,将service_list传入回溯的目标分布式计算引擎程序。又例如,若service_type=cache,也就是说,当分析服务类型为撞缓存服务类型时,则从定义好的数据源表中加载任务号=task_id的源数据,将service_list传入撞缓存的目标分布式计算引擎程序。再例如,若service_type= script,也就是说,当分析服务类型为脚本打分服务类型时,则则从定义好的数据源表中加载任务号=task_id的源数据,将service_list传入脚本打分的目标分布式计算引擎程序。
在上述过程中,可以开启第一线程和第二线程,第一线程用于启动回溯的目标分布式计算引擎程序、或者撞缓存的目标分布式计算引擎程序,或者脚本打分的目标分布式计算引擎程序,以及获取回溯的目标分布式计算引擎程序、或者撞缓存的目标分布式计算引擎程序,或者脚本打分的目标分布式计算引擎程序的返回状态码,第二线程获取回溯的目标分布式计算引擎程序、或者撞缓存的目标分布式计算引擎程序,或者脚本打分的目标分布式计算引擎程序的日志信息。
进一步地,在一种可能的实施方式中,当分析服务类型为回溯分析服务类型时,可以通过目标分布式计算引擎程序查找数据分析服务列表中是否存在依赖于其它数据分析服务的目标数据分析服务,其中,其它数据分析服务不存在于数据分析服务列表中。
当数据分析服务列表中存在依赖于其它数据分析服务的目标数据分析服务时,则将其它数据分析服务添加到数据分析服务列表中。然后,根据预先定义的消息内容排序列表中每个消息内容的顺序,对数据分析服务列表进行排序,并按照排序结果执行数据分析服务列表中的每个数据分析服务,分别将每个数据分析服务所对应的待计算数据调度到分布式计算集群中的各个计算节点执行对应的分布式计算任务,得到分布式计算结果。
例如,当数据分析服务列表中存在数据分析服务A依赖于数据分析服务B,且数据分析服务列表中不包含数据分析服务B时,则会将数据分析服务B添加到数据分析服务列表中。待数据分析服务列表添加完毕时,则会根据预先定义好的优先级对待数据分析服务列表进行排序,最终确定执行计划,例如:执行哪些数据分析服务、每个数据分析服务执行的顺序、每个数据分析服务的执行结果是否保留并输出。由此,可以按照优先级顺序执行每个需要执行的数据分析服务,例如从预先定义的数据源表中加载的任务计划标识所对应的待计算数据进行分布式计算后,将计算结果(其中可以包括task_id,service_name)输出到指定的数据表中。
又例如,当分析服务类型为撞缓存服务类型时,则可以通过目标分布式计算引擎程序遍历数据分析服务列表中需要撞缓存的每个数据分析服务,然后根据数据分析服务从预先定义的缓存表中获取属于数据分析服务的与待计算数据关联匹配的撞缓存数据,将所有数据分析服务对应的撞缓存数据作为分布式计算结果。
再例如,当分析服务类型为脚本打分服务类型时,可以通过目标分布式计算引擎程序获取数据分析服务列表中每个数据分析服务对应的打分脚本和该打分脚本依赖的所有外部文件。然后,遍历待计算数据,调用该打分脚本和该打分脚本依赖的所有外部文件对待计算数据进行计算,得到分布式计算结果。其中,该打分脚本依赖的所有外部文件可以是指该打分脚本在打分过程中需要调用的基础数据文件。
基于同一发明构思,请参阅图3,示出了本申请实施例提供的分布式数据处理装置110的功能模块示意图,本实施例可以根据上述方法实施例对分布式数据处理装置110进行功能模块的划分。例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。比如,在采用对应各个功能划分各个功能模块的情况下,图3示出的分布式数据处理装置110只是一种装置示意图。其中,分布式数据处理装置110可以包括集成配置模块111、监听模块112以及调度计算模块113,下面分别对该分布式数据处理装置110的各个功能模块的功能进行详细阐述。
集成配置模块111,用于将具有不同数据分析需求的多个用户的数据分析服务集成配置到分布式计算引擎程序中,得到分析服务数据包,其中,不同的数据分析服务在分析服务数据包中以不同的class文件进行区分。可以理解,该集成配置模块111可以用于执行上述步骤S110,关于该集成配置模块111的详细实现方式可以参照上述对步骤S110有关的内容。
监听模块112,用于根据分析服务数据包在集群服务器中配置分布式调度程序,并调用分布式调度程序监听消息中间件传输的包括多个待执行的数据分析服务的消息内容。可以理解,该监听模块112可以用于执行上述步骤S120,关于该监听模块112的详细实现方式可以参照上述对步骤S120有关的内容。
调度计算模块113,用于根据消息内容生成分布式数据执行计划,并对分布式数据执行计划进行分布式调度计算,得到分布式计算结果。可以理解,该调度计算模块113可以用于执行上述步骤S130,关于该调度计算模块113的详细实现方式可以参照上述对步骤S130有关的内容。
在一种可能的实施方式中,集成配置模块111,具体用于:
将每个数据分析服务定义为分布式计算引擎中的一个接口服务,并为每个接口服务配置对应的计算逻辑,以及配置每个接口服务的计算结果返回的矩阵数据表;
通过分布式计算引擎根据每个矩阵数据表将每个接口服务进行集成配置,得到分析服务数据包。
在一种可能的实施方式中,调度计算模块113,具体用于:
在监听到消息中间件传输的消息内容时,将该消息内容和对应的传输时间戳保存到预设数据库中,并设置该消息内容的执行状态为未执行状态;
每隔预设时间间隔扫描预设数据库,在扫描到预设数据库中存在执行状态为未执行状态的消息内容,且不存在执行状态为正在执行状态的执行程序时,按照执行状态为未执行状态的消息内容的传输时间戳的顺序对每个消息内容进行排序,生成消息内容排序列表;
按照消息内容排序列表中每个消息内容的顺序分别生成每个消息内容的分布式数据执行计划;
当任意一个消息内容对应的分布式数据执行计划执行完毕时,设置该消息内容的执行状态为已执行状态。
在一种可能的实施方式中,调度计算模块113,具体用于:
解析分布式数据执行计划的计划信息,计划信息包括数据分析服务列表、分析服务类型和数据分析服务列表中每个数据分析服务对应的任务计划标识;
根据计划信息启动第一线程和第二线程,其中,第一线程用于启动分析服务类型所对应的目标分布式计算引擎程序,并获取目标分布式计算引擎程序的返回状态码,第二线程用于获取目标分布式计算引擎程序的日志信息;
当启动分析服务类型所对应的目标分布式计算引擎程序后,将数据分析服务列表传入到目标分布式计算引擎程序中;
从预先定义的数据源表中加载任务计划标识所对应的待计算数据,并通过目标分布式计算引擎程序执行传入的数据分析服务列表的数据分析服务,对待计算数据进行分布式计算调度,得到分布式计算结果。
在一种可能的实施方式中,调度计算模块113,具体用于:
当分析服务类型为回溯分析服务类型时,通过目标分布式计算引擎程序查找数据分析服务列表中是否存在依赖于其它数据分析服务的目标数据分析服务,其中,其它数据分析服务不存在于数据分析服务列表中;
当数据分析服务列表中存在依赖于其它数据分析服务的目标数据分析服务时,则将其它数据分析服务添加到数据分析服务列表中;
根据预先定义的消息内容排序列表中每个消息内容的顺序,对数据分析服务列表进行排序,并按照排序结果执行数据分析服务列表中的每个数据分析服务,分别将每个数据分析服务所对应的待计算数据调度到分布式计算集群中的各个计算节点执行对应的分布式计算任务,得到分布式计算结果。
在一种可能的实施方式中,调度计算模块113,具体用于:
当分析服务类型为撞缓存服务类型时,通过目标分布式计算引擎程序遍历数据分析服务列表中需要撞缓存的每个数据分析服务;
根据数据分析服务从预先定义的缓存表中获取属于数据分析服务的与待计算数据关联匹配的撞缓存数据,将所有数据分析服务对应的撞缓存数据作为分布式计算结果。
在一种可能的实施方式中,调度计算模块113,具体用于:
当分析服务类型为脚本打分服务类型时,通过目标分布式计算引擎程序获取数据分析服务列表中每个数据分析服务对应的打分脚本和该打分脚本依赖的所有外部文件;
遍历待计算数据,调用该打分脚本和该打分脚本依赖的所有外部文件对待计算数据进行计算,得到分布式计算结果。
基于同一发明构思,请参阅图4,示出了本申请实施例提供的用于执行上述分布式数据处理方法的服务器100的结构示意框图,该服务器100可以包括分布式数据处理装置110、机器可读存储介质120和处理器130。
本实施例中,机器可读存储介质120与处理器130均位于服务器100中且二者分离设置。然而,应当理解的是,机器可读存储介质120也可以是独立于服务器100之外,且可以由处理器130通过总线接口来访问。可替换地,机器可读存储介质120也可以集成到处理器130中,例如,可以是高速缓存和/或通用寄存器。
分布式数据处理装置110可以包括存储在机器可读存储介质120的软件功能模块(例如图3中所示的集成配置模块111、监听模块112以及调度计算模块113),当处理器130执行分布式数据处理装置110中的软件功能模块时,以实现前述方法实施例提供的分布式数据处理方法。
由于本申请实施例提供的服务器100是上述服务器100执行的方法实施例的另一种实现形式,且服务器100可用于执行上述方法实施例提供的分布式数据处理方法,因此其所能获得的技术效果可参考上述方法实施例,在此不再赘述。
以上所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。通常在附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,在附图中提供的本申请的实施例的详细描述并非旨在限制本申请的保护范围,而仅仅是表示本申请的选定实施例。因此,本申请的保护范围应以权利要求的保护范围为准。此外,基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下可获得的所有其它实施例,都应属于本申请保护的范围。
Claims (6)
1.一种分布式数据处理方法,其特征在于,应用于与分布式计算集群通信连接的集群服务器,所述方法包括:
将具有不同数据分析需求的多个用户的数据分析服务集成配置到分布式计算引擎程序中,得到分析服务数据包,其中,不同的数据分析服务在所述分析服务数据包中以不同的class文件进行区分;
根据所述分析服务数据包在所述集群服务器中配置分布式调度程序,并调用所述分布式调度程序监听消息中间件传输的包括多个待执行的数据分析服务的消息内容;
根据所述消息内容生成分布式数据执行计划,并对所述分布式数据执行计划进行分布式调度计算,得到分布式计算结果,所述对所述分布式数据执行计划进行分布式调度计算,得到分布式计算结果的步骤,包括:
解析所述分布式数据执行计划的计划信息,所述计划信息包括数据分析服务列表、分析服务类型和所述数据分析服务列表中每个数据分析服务对应的任务计划标识;
根据所述计划信息启动第一线程和第二线程,其中,所述第一线程用于启动所述分析服务类型所对应的目标分布式计算引擎程序,并获取所述目标分布式计算引擎程序的返回状态码,所述第二线程用于获取所述目标分布式计算引擎程序的日志信息;
当启动所述分析服务类型所对应的目标分布式计算引擎程序后,将所述数据分析服务列表传入到所述目标分布式计算引擎程序中;
从预先定义的数据源表中加载所述任务计划标识所对应的待计算数据,并通过所述目标分布式计算引擎程序执行传入的所述数据分析服务列表的数据分析服务,对所述待计算数据进行分布式计算调度,得到分布式计算结果;
所述通过所述目标分布式计算引擎程序执行传入的所述数据分析服务列表的数据分析服务,对所述待计算数据进行分布式计算调度,得到分布式计算结果的步骤,包括:
当所述分析服务类型为回溯分析服务类型时,通过所述目标分布式计算引擎程序查找所述数据分析服务列表中是否存在依赖于其它数据分析服务的目标数据分析服务,其中,所述其它数据分析服务不存在于所述数据分析服务列表中;
当所述数据分析服务列表中存在依赖于其它数据分析服务的目标数据分析服务时,则将所述其它数据分析服务添加到所述数据分析服务列表中;
根据预先定义的消息内容排序列表中每个消息内容的顺序,对所述数据分析服务列表进行排序,并按照排序结果执行所述数据分析服务列表中的每个数据分析服务,分别将每个数据分析服务所对应的待计算数据调度到所述分布式计算集群中的各个计算节点执行对应的分布式计算任务,得到所述分布式计算结果。
2.根据权利要求1所述的分布式数据处理方法,其特征在于,所述将具有不同数据分析需求的多个用户的数据分析服务集成配置到分布式计算引擎程序中,得到分析服务数据包的步骤,包括:
将每个数据分析服务定义为所述分布式计算引擎中的一个接口服务,并为每个接口服务配置对应的计算逻辑,以及配置每个接口服务的计算结果返回的矩阵数据表;
通过所述分布式计算引擎根据每个矩阵数据表将每个接口服务进行集成配置,得到分析服务数据包。
3.根据权利要求1所述的分布式数据处理方法,其特征在于,所述根据所述消息内容生成分布式数据执行计划的步骤,包括:
在监听到所述消息中间件传输的消息内容时,将该消息内容和对应的传输时间戳保存到预设数据库中,并设置该消息内容的执行状态为未执行状态;
每隔预设时间间隔扫描所述预设数据库,在扫描到所述预设数据库中存在执行状态为未执行状态的消息内容,且不存在执行状态为正在执行状态的执行程序时,按照执行状态为未执行状态的消息内容的传输时间戳的顺序对每个消息内容进行排序,生成消息内容排序列表;
按照所述消息内容排序列表中每个消息内容的顺序分别生成每个消息内容的分布式数据执行计划;
当任意一个消息内容对应的分布式数据执行计划执行完毕时,设置该消息内容的执行状态为已执行状态。
4.根据权利要求1所述的分布式数据处理方法,其特征在于,所述通过所述目标分布式计算引擎程序执行传入的所述数据分析服务列表的数据分析服务,对所述待计算数据进行分布式计算调度,得到分布式计算结果的步骤,包括:
当所述分析服务类型为撞缓存服务类型时,通过所述目标分布式计算引擎程序遍历所述数据分析服务列表中需要撞缓存的每个数据分析服务;
根据所述数据分析服务从预先定义的缓存表中获取属于所述数据分析服务的与所述待计算数据关联匹配的撞缓存数据,将所有数据分析服务对应的撞缓存数据作为所述分布式计算结果。
5.根据权利要求1所述的分布式数据处理方法,其特征在于,所述通过所述目标分布式计算引擎程序执行传入的所述数据分析服务列表的数据分析服务,对所述待计算数据进行分布式计算调度,得到分布式计算结果的步骤,包括:
当所述分析服务类型为脚本打分服务类型时,通过所述目标分布式计算引擎程序获取所述数据分析服务列表中每个数据分析服务对应的打分脚本和该打分脚本依赖的所有外部文件;
遍历所述待计算数据,调用该打分脚本和该打分脚本依赖的所有外部文件对所述待计算数据进行计算,得到分布式计算结果。
6.一种分布式数据处理装置,其特征在于,应用于与分布式计算集群通信连接的集群服务器,所述装置包括:
集成配置模块,用于将具有不同数据分析需求的多个用户的数据分析服务集成配置到分布式计算引擎程序中,得到分析服务数据包,其中,不同的数据分析服务在所述分析服务数据包中以不同的class文件进行区分;
监听模块,用于根据所述分析服务数据包在所述集群服务器中配置分布式调度程序,并调用所述分布式调度程序监听消息中间件传输的包括多个待执行的数据分析服务的消息内容;
调度计算模块,用于根据所述消息内容生成分布式数据执行计划,并对所述分布式数据执行计划进行分布式调度计算,得到分布式计算结果,所述调度计算模块具体用于:
解析所述分布式数据执行计划的计划信息,所述计划信息包括数据分析服务列表、分析服务类型和所述数据分析服务列表中每个数据分析服务对应的任务计划标识;
根据所述计划信息启动第一线程和第二线程,其中,所述第一线程用于启动所述分析服务类型所对应的目标分布式计算引擎程序,并获取所述目标分布式计算引擎程序的返回状态码,所述第二线程用于获取所述目标分布式计算引擎程序的日志信息;
当启动所述分析服务类型所对应的目标分布式计算引擎程序后,将所述数据分析服务列表传入到所述目标分布式计算引擎程序中;
从预先定义的数据源表中加载所述任务计划标识所对应的待计算数据,并通过所述目标分布式计算引擎程序执行传入的所述数据分析服务列表的数据分析服务,对所述待计算数据进行分布式计算调度,得到分布式计算结果;
当所述分析服务类型为回溯分析服务类型时,通过所述目标分布式计算引擎程序查找所述数据分析服务列表中是否存在依赖于其它数据分析服务的目标数据分析服务,其中,所述其它数据分析服务不存在于所述数据分析服务列表中;
当所述数据分析服务列表中存在依赖于其它数据分析服务的目标数据分析服务时,则将所述其它数据分析服务添加到所述数据分析服务列表中;
根据预先定义的消息内容排序列表中每个消息内容的顺序,对所述数据分析服务列表进行排序,并按照排序结果执行所述数据分析服务列表中的每个数据分析服务,分别将每个数据分析服务所对应的待计算数据调度到所述分布式计算集群中的各个计算节点执行对应的分布式计算任务,得到所述分布式计算结果。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010471369.6A CN111381940B (zh) | 2020-05-29 | 2020-05-29 | 分布式数据处理方法及装置 |
US17/228,977 US11169847B1 (en) | 2020-05-29 | 2021-04-13 | Method and device for processing distributed data solving problem of manual intervention by data analysts |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010471369.6A CN111381940B (zh) | 2020-05-29 | 2020-05-29 | 分布式数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111381940A CN111381940A (zh) | 2020-07-07 |
CN111381940B true CN111381940B (zh) | 2020-08-25 |
Family
ID=71219192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010471369.6A Active CN111381940B (zh) | 2020-05-29 | 2020-05-29 | 分布式数据处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11169847B1 (zh) |
CN (1) | CN111381940B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360268A (zh) * | 2021-06-23 | 2021-09-07 | 成都房联云码科技有限公司 | 一种基于容器运行的弱中心化分布式调度*** |
CN113392126B (zh) * | 2021-08-17 | 2021-11-02 | 北京易鲸捷信息技术有限公司 | 基于分布式数据库的执行计划缓存及读取方法 |
CN115146217B (zh) * | 2022-09-01 | 2022-12-13 | 国网信息通信产业集团有限公司 | 一种解决综合能源***数据循环计算的方法、***及设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7818313B1 (en) * | 2005-07-18 | 2010-10-19 | Sybase, Inc. | Method for distributing processing of queries over a cluster of servers in a continuous processing system |
CN102663543A (zh) * | 2012-03-22 | 2012-09-12 | 北京英孚斯迈特信息技术有限公司 | 一种用于企业数据统一平台的调度*** |
US10229148B1 (en) * | 2014-12-01 | 2019-03-12 | Arimo, Inc. | Multi-language support for interfacing with distributed data |
CN104462579A (zh) * | 2014-12-30 | 2015-03-25 | 浪潮电子信息产业股份有限公司 | 一种大数据管理平台的作业任务管理方法 |
US10042732B2 (en) * | 2015-08-17 | 2018-08-07 | Microsoft Technology Licensing, Llc | Dynamic data collection pattern for target device |
US20200125977A1 (en) * | 2018-10-18 | 2020-04-23 | Oracle International Corporation | System and method for next object prediction for ics flow using artificial intelligence/machine learning |
CN110134729A (zh) * | 2019-05-15 | 2019-08-16 | 智者四海(北京)技术有限公司 | 数据计算分析***及方法 |
-
2020
- 2020-05-29 CN CN202010471369.6A patent/CN111381940B/zh active Active
-
2021
- 2021-04-13 US US17/228,977 patent/US11169847B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11169847B1 (en) | 2021-11-09 |
CN111381940A (zh) | 2020-07-07 |
US20210373945A1 (en) | 2021-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111381940B (zh) | 分布式数据处理方法及装置 | |
CN107105009B (zh) | 基于Kubernetes***对接工作流引擎的作业调度方法和装置 | |
CN109144829B (zh) | 故障处理方法、装置、计算机设备和存储介质 | |
CN108804215B (zh) | 一种任务处理方法、装置以及电子设备 | |
CN111400011B (zh) | 一种实时任务调度方法、***、设备及可读存储介质 | |
CN108460068B (zh) | 报表导入导出的方法、装置、存储介质及终端 | |
EP4024228A1 (en) | System and method for batch and real-time feature calculation | |
US11714683B1 (en) | Information technology and security application automation architecture | |
CN113760677A (zh) | 异常链路分析方法、装置、设备及存储介质 | |
CN112559525B (zh) | 数据检查***、方法、装置和服务器 | |
US20220044144A1 (en) | Real time model cascades and derived feature hierarchy | |
CN111752838A (zh) | 问题排查方法、装置、服务器及存储介质 | |
CN110188083B (zh) | 接口信息挖掘方法及装置 | |
CN110413496B (zh) | 一种实现电子证照运行数据组件化收集的方法 | |
CN115496470A (zh) | 全链路配置化数据处理方法、装置和电子设备 | |
CN115617768A (zh) | 日志管理方法、***、电子设备及存储介质 | |
CN114723394A (zh) | 基于人工智能的授信流程配置方法及相关设备 | |
CN115168297A (zh) | 绕行日志审计方法及装置 | |
CN113297149A (zh) | 数据处理请求的监测方法及装置 | |
CN113553098A (zh) | Flink SQL作业的提交方法、装置及计算机设备 | |
CN117389841B (zh) | 加速器资源监控方法、装置、集群设备及存储介质 | |
CN117290016B (zh) | 视图的页面配置方法及装置 | |
CN115061892A (zh) | 一种日志生成方法、设备和计算机可读存储介质 | |
CN116243913A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN117119078A (zh) | 基于Kubernetes集群互联互通调度框架的隐私任务调度方法及装置 |
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 |