CN109840138A - 一种企业管理数据分析处理系统及其方法 - Google Patents
一种企业管理数据分析处理系统及其方法 Download PDFInfo
- Publication number
- CN109840138A CN109840138A CN201711218525.2A CN201711218525A CN109840138A CN 109840138 A CN109840138 A CN 109840138A CN 201711218525 A CN201711218525 A CN 201711218525A CN 109840138 A CN109840138 A CN 109840138A
- Authority
- CN
- China
- Prior art keywords
- task
- priority
- module
- scheduling
- data analysis
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及企业管理技术领域,特别涉及一种企业管理数据分析处理系统,还特别涉及一种企业管理数据分析处理方法;本发明包括待调度任务生成模块、待调度任务存储模块、任务调度模块和任务处理模块;在本发明中,由于在企业管理数据分析处理系统的底层利用Hadoop系统来进行数据分析,而在企业管理数据分析处理系统的上层则以任务调度模块来实现对任务的统筹管理,以及提供更为人性化的、更为方便的交互管理模式,从而既可以利用Hadoop系统进行数据分析而避免了繁杂的对关系型数据库的分表、拆表、合并等操作,简化了数据分析流程,又提供了更为方便地对任务进行调度、管理的系统。
Description
技术领域
本发明涉及企业管理技术领域,特别涉及一种企业管理数据分析处理系统,还特别涉及一种企业管理数据分析处理方法。
背景技术
近几年,由于数据在互联网领域的持续增长,各公司都面临海量数据的处理需求。部门内的数据分析主要为公司各部门运维服务,数据分析主要基于各部门的服务器(Server)产生的日志来进行分析,如apache日志、nginx日志等,目的是基于这些日志对用户访问、数据流量在时间维度、产品线维度、域名维度等有明确的量化数据,从而为公司服务器运维管理、流量分配、预估等提供建议。
例如对某产品线的nginx日志进行收集,收集到日志后,需要对日志进行清洗,例如,按照每5分钟进行初步合并,并统计所有未来需要的字段数据,可能包含的有点击量、下载数据字节。同时需要按照多个维度进行统计,如按照产品线、域名,按照产品线、服务器ip等维度进行统计,该阶段涉及的数据量很大。
最终用户可以基于这些数据拿到某天详细的数据访问量曲线图,或者是某天、某小时的点击或带宽。也可以得到不同维度的下载速度数据等等。
现有技术的基于关系型数据库进行数据分析的过程,通常包括以下环节:日志收集、日志数据获取和初步处理、数据拆分入库、子表数据合并、数据库外聚合、数据展现等环节。
具体地,数据分析服务器在接收到从日志中获取的待分析数据后,先使用数据检查脚本程序对数据进行检查及格式化处理,然后做初步处理(如5分钟清洗处理,这个环节会将每行日志合并到每个所在的5分钟中(每小时包含12个5分钟,5分钟一个分析点)),然后在此基础上再使用其他异构脚本程序做其他的中间分析,这中间需要涉及到对关系型数据库的分表、拆表及合并,同时还需要考虑关系型数据库在千万级数据量下的处理速度,从而采用对于数据库集群的均衡方案,并从不同服务器上的数据库中拉取数据再使用其他的完成指定需求的脚本程序进行聚合。经过复杂的多层处理环节,最终统计出数据,并展示数据。
然而,随着网站规模及用户量的持续增长,数据量激增,现有技术的数据分析过程中通过复杂的分表、拆表、合并得出具体的分析结果,其技术实现流程复杂,需要专门的维护人员进行维护。而且,如果需要增加新的业务分析需求,则需要增加新的分析脚本,不利于扩展。
综上所述,现有技术的数据分析方法,因其需要对关系型数据库进行复杂的分表、拆表、合并等操作,实现流程复杂且不易维护;并且,现有技术的数据分析方法不利于扩展新的业务分析需求。
发明内容
为了克服上述所述的不足,本发明的目的是提供一种企业管理数据分析处理系统,从而简化数据分析流程,便于维护;还提供一种企业管理数据分析处理方法。
本发明解决其技术问题的技术方案是:
一种企业管理数据分析处理系统,包括:待调度任务生成模块,用于根据预先定义的任务参数将收集的数据生成待调度的任务;待调度任务存储模块,用于存储所述待调度任务生成模块生成的待调度的任务;任务调度模块和任务处理模块,所述任务调度模块从所述待调度任务存储模块加载待调度的任务,并根据加载的任务的任务类型调用相应的任务处理模块;所述任务处理模块根据所述任务中的分析需求生成相应的类结构化查询语言HiveSQL语句向基于分布式计算Hadoop的数据仓库服务器发送;在接收到所述服务器返回的数据后完成对所述任务的数据分析。
作为本发明的一种改进,所述任务调度模块具体包括:主任务调度组件和从任务调度组件;所述主任务调度组件用于从所述待调度任务存储模块加载待调度的任务,并根据加载的任务的任务类型调用相应的任务处理模块;所述从任务调度组件用于在所述主任务调度组件退出运行或者无法正常运行后,从所述待调度任务存储模块加载待调度的任务,并根据加载的任务的任务类型调用相应的任务处理模块。
作为本发明的进一步改进,还包括优先级队列模块,其中:所述任务调度模块还用于加载待调度的任务到调度栈后,将所述调度栈中任务执行时间到达的任务封装到优先级对象中,将所述优先级对象发送到优先级队列模块;所述优先级队列模块用于接收到优先级对象后,将该优先级对象的优先级与所述优先级队列模块中其它优先级对象的优先级进行比较,根据比较结果对该优先级对象进行排序;所述任务调度模块还用于从所述优先级队列模块中获取优先级最高的优先级对象,并根据获取的优先级对象中的任务的任务类型调用相应的任务处理模块进行数据分析。
作为本发明的更进一步改进,所述优先级队列模块具体包括:主优先级队列单元和从优先级队列单元;以及所述主任务调度组件还用于加载待调度的任务到调度栈后,将所述调度栈中任务执行时间到达的任务封装到优先级对象中,并将所述优先级对象发送到所述主优先级队列单元;所述主优先级队列单元用于接收到优先级对象后,将该优先级对象的优先级与所述主优先级队列单元中其它优先级对象的优先级进行比较,根据比较结果对该优先级对象进行排序;所述主任务调度组件还用于从所述主优先级队列单元中获取优先级最高的优先级对象,并根据获取的优先级对象中的任务的任务类型调用相应的任务处理模块进行数据分析;所述从优先级队列单元用于定时保持其数据与所述主优先级队列单元中的数据的一致。
作为本发明的更进一步改进,所述从任务调度组件还用于在所述主任务调度组件退出运行或者无法正常运行后,加载待调度的任务到调度栈,将所述调度栈中任务执行时间到达的任务封装到优先级对象中,并将所述优先级对象发送到所述从优先级队列单元;并从所述从优先级队列单元中获取优先级最高的优先级对象,并根据获取的优先级对象中的任务的任务类型调用相应的任务处理模块进行数据分析;所述从优先级队列单元还用于接收到优先级对象后,将该优先级对象的优先级与所述从优先级队列单元中其它优先级对象的优先级进行比较,根据比较结果对该优先级对象进行排序。
作为本发明的更进一步改进,还包括:任务管理模块,用于接收定义的任务参数,并将所述任务参数发送给所述待调度任务生成模块。
一种企业管理数据分析处理方法,包括:待调度任务生成模块根据预先定义的任务参数将收集的数据生成待调度的任务后存储到待调度任务存储模块;任务调度模块从所述待调度任务存储模块加载待调度的任务,并根据加载的任务的任务类型调用相应的任务处理模块;所述任务处理模块根据所述任务中的分析需求生成相应的类结构化查询语言HiveSQL语句向基于分布式计算Hadoop的数据仓库服务器发送;在接收到所述服务器返回的数据后完成对所述任务的数据分析。
作为本发明的一种改进,在所述根据加载的任务的任务类型调用相应的任务处理模块之前,还包括:所述任务处理模块将加载的任务封装到任务处理线程中;以及所述调用相应的任务处理模块具体为:所述任务处理线程在运行过程中根据所述任务的任务类型调用相应的任务处理模块。
作为本发明的进一步改进,所述任务调度模块从所述待调度任务存储模块加载待调度的任务具体为:所述任务调度模块将待调度的任务加载到调度栈;以及在所述任务调度模块将加载的任务封装到任务处理线程之前,还包括:所述任务调度模块监测所述调度栈中各待调度的任务的任务执行时间;从调度栈中取出任务执行时间到达的任务。
作为本发明的更进一步改进,在所述从调度栈中取出任务执行时间到达的任务之后,还包括:所述任务调度模块将从所述调度栈中取出的任务转换为任务实例,并将转换的任务实例封装为优先级对象,该优先级对象的优先级是根据该任务的任务属性确定的;所述任务调度模块将所述优先级对象发送到优先级队列模块;所述优先级队列模块在接收到优先级对象后,根据该优先级对象的优先级与所述优先级队列模块中其它优先级对象的优先级进行比较,根据比较结果自动对该优先级对象进行排序;所述任务调度模块从所述优先级队列模块中获取优先级最高的优先级对象;并初始化一个任务处理线程,将获取的优先级对象中的任务实例传至该任务处理线程中;以及,所述调用相应的任务处理模块具体为:该任务处理线程调用与所述任务实例中的任务的任务类型相应的任务处理模块。
在本发明中,由于在企业管理数据分析处理系统的底层利用Hadoop系统(如HiveServer中安装的基于Hadoop的组件Hive)来进行数据分析,而在企业管理数据分析处理系统的上层则以任务调度模块来实现对任务的统筹管理,以及提供更为人性化的、更为方便的交互管理模式,从而既可以利用Hadoop系统进行数据分析而避免了繁杂的对关系型数据库的分表、拆表、合并等操作,简化了数据分析流程,又提供了更为方便地对任务进行调度、管理的系统。
附图说明
为了易于说明,本发明由下述的较佳实施例及附图作以详细描述。
图1为本发明实施例的系统结构示意图;
图2为本发明实施例的方法流程图;
图3为本发明实施例的JobProcessor线程在运行过程中任务处理模块所进行的处理的流程图;
图4为本发明实施例的任务调度模块和优先级队列模块中的一种具体内部结构示意图。
具体实施方式
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1、图2、图3、图4所示,本发明使用的“模块”、“系统”等术语旨在包括与计算机相关的实体,例如但不限于硬件、固件、软硬件组合、软件或者执行中的软件。例如,模块可以是,但并不仅限于:处理器上运行的进程、处理器、对象、可执行程序、执行的线程、程序和/或计算机。举例来说,计算设备上运行的应用程序和此计算设备都可以是模块。一个或多个模块可以位于执行中的一个进程和/或线程内,一个模块也可以位于一台计算机上和/或分布于两台或更多台计算机之间。
本发明的发明人考虑到利用Hadoop(分布式计算)系统来进行数据分析。Hadoop是目前最流行最成熟的海量级数据处理系统,具有极高的稳定性、扩展性、健壮性。其中,HDFS(Hadoop Distributed File System,分布式文件系统)组件可以保证数据的冗余存储,并且易于扩展。MapReduce(映射化简)组件利用易于扩展的TaskTracker(任务跟踪者)来增强对海量数据的分析能力,理论上讲分析能力可以无限扩展,特别适合离线数据的分析。可以支持海量数据的存储及分析。Hive技术使用Hive SQL(类SQL)方式来提交分析需求,其在内部可以将Hive SQL(Structured Query Language,结构化查询语言)转换成为一个或几个MR(MapReduce的简称)任务并按一定顺序提交到组件Jobtracer。类SQL的方式可以提供方便的数据集成、特殊查询以及建立在Hadoop文件上的大规模数据分析,使得分析人员无需再去写复杂的MR任务就可以完成分析需求。
但是直接使用Hadoop提供的客户端API(Application Program Interface,应用程序接口)开发任务,需要复杂的开发工作,不利于任务提交;同时Hadoop没有提供对任务进行统一的调度,对实现新增需求不具有扩展性,对于需求处理中任务相关的监控、优先级处理、结果数据统一处理等同样缺少支持。
基于上述分析,本发明实施例提供的技术方案中,在底层以Hadoop组件(HDFS\MapReduce\Hive)为基础,构建了一种企业管理数据分析处理系统。如图1所示,本发明实施例的企业管理数据分析处理系统中包括:待调度任务生成模块101、待调度任务存储模块102、任务调度模块103、任务处理模块104。
本发明实施例的企业管理数据分析处理系统进行数据分析的方法流程,如图2所示,包括如下步骤:
S201:待调度任务生成模块101根据用户定义的任务参数生成待调度的任务,并将生成的待调度的任务存储到待调度任务存储模块102中。
具体地,各服务器在收集了数据后发送给待调度任务生成模块101。待调度任务生成模块101根据用户预先定义的任务参数,将收集的数据生成待调度的任务。其中,用户定义的任务参数中包含存储路径,待调度任务生成模块101根据存储路径将生成的待调度的任务存储到待调度任务存储模块102中。
待调度任务存储模块102具体可以是用以存储待调度任务生成模块101所生成的待调度的任务的数据库,该数据库可以存储在专用于存储待调度的任务的服务器中。一般而言,待调度任务存储模块102中存储的待调度的任务,其任务类型都为计划任务类型,即待调度任务存储模块102中存储的待调度的任务都为计划任务。
S202:任务调度模块103从待调度任务存储模块102中加载待调度任务。
任务调度模块103从待调度任务存储模块102中获取待调度任务。
较佳地,任务调度模块103从待调度任务存储模块102中加载待调度的任务到调度栈;并定时监测调度栈中各待调度的任务的任务执行时间,从调度栈中取出任务执行时间到达的任务进行调度、处理;即任务调度模块103在确定调度栈中某个待调度的任务的任务执行时间到达后,从调度栈中取出该任务,对其进行调度、处理;具体过程为:任务调度模块103通过任务转换器,将该任务转换为一个具有时间特性的任务实例(jobtrace)。任务调度模块103还根据该任务的任务属性,比如任务类型、名称、运行时间,所有者等,确定该任务的优先级。事实上,对于不同的任务属性预先设置了相应的优先级,也就是说,任务属性与优先级的对应关系被预先设置,任务调度模块103根据预先设置的对应关系,确定该任务的优先级,并根据确定的优先级,将jobtrace封装为优先级对象,该优先级对象为一个可比较优先级的对象,即该优先级对象的一个属性为优先级属性;可以据此优先级属性对优先级对象进行优先级的比较。任务调度模块103还为该优先级对象生成一个唯一的对象标识(uuid标识)。上述的优先级对象实现自java中Comparable接口,其中包装了jobtrace对象,并有uuid标识及优先级属性。
进一步,本发明实施例的企业管理数据分析处理系统中还可包括优先级队列模块105。任务调度模块103将该优先级对象发送到优先级队列模块105。优先级队列模块105在接收到优先级对象后,将该优先级对象的优先级与优先级队列模块105中其它优先级对象的优先级进行比较,根据比较结果自动对该优先级对象按照优先级进行排序操作。具体地,优先级队列模块105可以根据该对象的方法:
public int compareTo(Object o){}
实现优先级对象的优先级排序。
S203:任务调度模块103将获取的任务封装到任务处理(JobProcessor)线程中。
较佳地,任务调度模块103从优先级队列模块105中获取优先级最高的优先级对象,并根据获取的优先级对象中的任务的任务类型调用相应的任务处理模块104进行数据分析:任务调度模块103中的任务获取(JobTaker)线程,从优先级队列模块105中获取优先级最高的优先级对象,并初始化一个JobProcessor线程,将获取的优先级对象中的任务实例jobtrace传至该JobProcessor线程中,该JobProcessor线程调用任务处理模块104,从而将任务携带于JobProcessor线程中。
较佳地,任务处理模块104可以是多个,多个任务处理模块104可以并行处理多个任务。并且,不同的任务处理模块104可以对应不同的任务类型。各任务处理模块直接对应不同的业务模型。在数据分析平台中,任务类型可分为load(数据加载)类型、transform(数据转换)类型、acquire(数据获取)类型等,各模型可以负责一种类型,用户可以灵活组合几种任务模型完成分析需求。在任务处理阶段,系统会根据任务所属的任务类型自动将任务发至对应的任务处理模块来处理,从而保障任务的正确处理。
JobProcessor线程在运行过程中,根据封装(携带)在其内的任务的任务类型,确定对应的任务处理模块104,并调用该任务处理模块104完成该待调度任务的处理过程。
此外,任务调度模块103还可在判断出JobProcessor线程中的任务的任务类型为顺序任务类型后,任务调度模块103获取跟随该任务的其它任务。具体地,任务调度模块103可以直接从待调度任务存储模块102中获取跟随该任务的其它任务。任务调度模块103针对跟随该任务的每个其它任务,分别初始化一个JobProcessor线程进行携带,由各JobProcessor线程分别调用相应的任务处理模块进行数据分析、任务处理。
具体地,任务调度模块103对于获取的跟随该任务的其它任务中、与该任务为同一层级的任务(本文简称并行任务),采用并行执行策略:任务调度模块103并行初始化若干个JobProcessor线程,各并行初始化的JobProcessor线程分别携带各并行任务,由各并行初始化后的JobProcessor线程分别调用相应的任务处理模块104进行数据分析、任务处理。
任务调度模块103对于获取的跟随该任务的其它任务中、为该任务下一层级的任务(本文简称下层级任务),采用层级序列执行策略:任务调度模块103在任务处理模块104处理完毕该任务后,再初始化携带下层级任务的JobProcessor线程,由该JobProcessor线程调用相应的任务处理模块104进行数据分析、任务处理。
S204:任务处理模块104负责处理JobProcessor线程中的任务,对该任务进行数据分析。
具体地,任务处理模块104接收到任务调度模块103发送的JobProcessor线程后,运行该JobProcessor线程。JobProcessor线程向Hive Server(服务器)发送相应的Hive SQL请求,任务处理模块104获得Hive Server返回数据,从而完成对该任务的数据分析处理;任务处理模块104对返回的数据进行处理,比如进行记录、统计、显示等。其中,Hive Server为基于Hadoop的数据仓库服务器。
JobProcessor线程在运行过程中,任务处理模块104所进行的具体处理流程,如图3所示,包括如下步骤:
S301:JobProcessor线程根据其携带的任务中的分析需求,生成相应的Hive SQL语句。
S302:JobProcessor线程调用任务处理模块104中的任务执行(Job Executor)线程,并将Hive SQL语句发送给Job Executor线程。
任务处理模块104中包括有任务执行(Job Executor)线程、连接(Connector)线程和结果处理(Result Processor)线程。
S303:Job Executor线程发送连接请求给Connector线程。
S304:Connector线程在接收到Job Executor线程发送的连接请求后,采用JDBC(JavaData Base Connectivity,java数据库连接)连接技术与Hive Server建立连接。
S305:连接建立后,Connector线程向Job Executor线程返回可用连接。
S306:Job Executor线程根据返回的可用连接向Hive Server发送Hive SQL请求。
S307:如果Job Executor线程接收到Hive Server返回的数据后,将返回的数据发送给Result Processor线程进行处理。
Hive Server接收到Job Executor线程发送的执行Hive SQL的请求后,进行相应的数据分析操作,如将Hive SQL转换成为一个或几个MR任务并按一定顺序提交到MapReduce,并接收MAPREDUCE返回的数据,并将MapReduce返回的数据向Job Executor线程返回。由于Hive Server根据接收的Hive SQL请求进行数据分析,返回结果数据为本领域技术人员所熟知的技术此处不再赘述。
由于Hive Server中安装有基于Hadoop的组件Hive。Hive使用类SQL方式来提交分析需求,其在内部可以将Hive SQL转换成为一个或几个MR任务并按一定顺序提交到MapReduce。类SQL的方式使得分析人员无需再去写复杂的MR任务就可以完成分析需求。而MapReduce可以根据分析需求进行数据分析,返回结果数据;从而,数据分析过程中避免了繁杂的对关系型数据库的分表、拆表、合并等操作,简化了数据分析流程,便于开发人员对系统的维护。
Result Processor线程对Hive Server返回的数据进行处理,例如进行数据记录、显示、提供下载。Hive Server返回数据均是各任务最终的结果,目前为了支持数据冗余存储及良好扩展,任务数据直接存储在HDFS上。用户可以根据任务Id通过系统提供的下载接口下载数据。
S308:如果Job Executor线程在设定时间段内没有接收到Hive Server返回的数据,向Connector线程返回执行失败结果;Connector线程向Job Executor线程返回不同的可用连接。
如果Job Executor线程在向Hive Server发送Hive SQL请求后,在设定时间段内没有接收到Hive Server返回的数据,则表明任务执行失败;Job Executor线程向Connector线程返回执行失败结果;Connector线程根据Job Executor线程发送的执行失败结果重新连接另外的Hive Server,在与另外的Hive Server连接成功后,向Job Executor线程返回该另外的Hive Server的连接,即不同于上次的可用连接。
进一步,本发明实施例提供的企业管理数据分析处理系统中还包括有:服务器监控恢复模块(图中未标)。
如果上述的Connector线程在与Hive Server建立连接的过程中,连接失败,则将连接失败结果发送给服务器监控恢复模块;
如果上述的Job Executor线程在向Hive Server发送Hive SQL请求后,在设定时间内没有接收到Hive Server返回的数据,则表明任务执行失败,JobExecutor线程将任务失败结果发送给服务器监控恢复模块。
服务器监控恢复模块对接收的各种失败结果,如连接失败结果或任务失败结果,进行严重性判断;若判断为严重的失败结果,则将与该失败结果相关的Hive Server的失败次数加1;当Hive Server的失败次数达到设置的最大计数值(MaxCount),则重启该HiveServer。并且,Job Executor线程再次请求Connector线程,返回其它不同的可用连接。
对于待调度任务存储模块102中的计划任务,可以采用上述S201-S204的步骤进行处理,而对于任务类型为非计划任务类型的任务,如点击类的任务,在用户点击该任务后,任务调度模块103即调度该任务执行。任务调度模块103调度该任务执行的步骤包括:任务调度模块103将该任务封装到JobProcessor线程中,将JobProcessor线程发送给相应的任务处理模块104进行任务处理。
较佳地,如果在用户点击该任务后,任务调度模块103确定当前正在运行的总任务数(即通过JobProcessor线程发送给任务处理模块104的任务的总数)低于限额,则正常执行该任务:将该任务封装到JobProcessor线程中,将JobProcessor线程发送给相应的任务处理模块104进行任务处理。
否则,任务调度模块103建议用户稍后再试。
为进一步保证任务调度的可靠性,较佳地,如图4所示,上述的任务调度模块103中可以包括主任务调度组件401和从任务调度组件402。
在通常的情况下,由主任务调度组件401从所述待调度任务存储模块加载待调度的任务,并根据加载的任务的任务类型调用相应的任务处理模块进行数据分析、任务处理;
如果主任务调度组件401出现意外而退出运行或者无法正常运行,则从任务调度组件402负责完成上述主任务调度组件完成的任务,即在主任务调度组件退出运行或者无法正常运行时,由从任务调度组件402从所述待调度任务存储模块加载待调度的任务,并根据加载的任务的任务类型调用相应的任务处理模块进行数据分析、任务处理;
进一步,上述的优先级队列模块105中可以包括主优先级队列单元403和从优先级队列单元404。
在通常的情况下,主任务调度组件401从所述待调度任务存储模块加载待调度的任务到调度栈后,将调度栈中任务执行时间到达的任务封装到优先级对象中,并将优先级对象发送到主优先级队列单元403;主优先级队列单元403接收到优先级对象后,将该优先级对象的优先级与主优先级队列单元403中其它优先级对象的优先级进行比较,根据比较结果自动对该优先级对象按照优先级进行排序。从优先级队列单元则定时保持其数据与主优先级队列单元中的数据的一致性。主任务调度组件401从主优先级队列单元403中获取优先级最高的优先级对象,根据获取的优先级对象中的任务的任务类型调用相应的任务处理模块进行数据分析:主任务调度组件401初始化一个JobProcessor线程,将获取的优先级对象携带于该JobProcessor线程,由该JobProcessor线程调用相应的任务处理模块进行数据分析、任务处理。
如果主任务调度组件401出现意外而退出运行或者无法正常运行,则从任务调度组件402从所述待调度任务存储模块加载待调度的任务到调度栈后,将调度栈中任务执行时间到达的任务封装到优先级对象中,并将优先级对象发送到从优先级队列单元404;从优先级队列单元404接收到优先级对象后,将该优先级对象的优先级与从优先级队列单元404中其它优先级对象的优先级进行比较,根据比较结果自动对该优先级对象按照优先级进行排序。从任务调度组件402从从优先级队列单元404中获取优先级最高的优先级对象,并初始化一个JobProcessor线程,将获取的优先级对象携带于该JobProcessor线程,由该JobProcessor线程调用相应的任务处理模块进行数据分析、任务处理。
即通常情况下,由主任务调度组件完成上述步骤S202-S204中任务处理模块104进行的操作,此处不再重复赘述。而在步骤S202中,主任务调度组件将优先级对象发送到优先级队列模块105具体为:主任务调度组件将优先级对象发送到优先级队列模块105中的主优先级队列单元,而主优先级队列单元在接收到优先级对象后,根据该优先级对象的优先级与优先级队列单元中其它优先级对象的优先级进行比较,根据比较结果自动对该优先级对象按照优先级在主优先级队列中进行排序操作。从优先级队列单元则定时保持其数据与主优先级队列单元中的数据的一致性。在步骤S203中,主任务调度组件从优先级队列模块105中获取最高优先级的优先级对象具体为:主任务调度组件从优先级队列模块105的主优先级队列单元中获取最高优先级的优先级对象。
如果主任务调度组件出现意外而退出运行或者无法正常运行,则从任务调度组件负责完成上述主任务调度组件完成的任务,即在主任务调度组件退出运行或者无法正常运行时,由从任务调度组件从所述待调度任务存储模块加载待调度的任务,并根据加载的任务的任务类型调用相应的任务处理模块进行数据分析、任务处理;也就是由从任务调度组件完成上述步骤S202-S204中任务处理模块104进行的操作。
更优地,任务调度模块103中还可以包括通用任务调度组件405。如果主任务调度组件和从任务调度组件都出现意外而退出运行或者无法正常运行,则通用任务调度组件405负责完成上述主任务调度组件完成的任务,即完成上述步骤S202-S204中任务处理模块104进行的操作。
如果主优先级队列单元出现意外而退出运行或者无法正常运行,则主任务调度组件、或从任务调度组件、或通用任务调度组件在将优先级对象发送到优先级队列模块105时,具体为:将优先级对象发送到优先级队列模块105中的从优先级队列单元,而从优先级队列单元在接收到优先级对象后,根据该优先级对象的优先级与优先级队列单元中其它优先级对象的优先级进行比较,根据比较结果自动对该优先级对象按照优先级在从优先级队列中进行排序操作。主任务调度组件、或从任务调度组件、或通用任务调度组件从优先级队列模块105中获取最高优先级的优先级对象时,则具体为:从优先级队列模块105的从优先级队列单元中获取最高优先级的优先级对象。
在实际应用中,可以是主任务调度组件和主优先级队列单元安装在一个服务器中,从任务调度组件和从优先级队列单元安装在另一个服务器中;或者,主任务调度组件和主优先级队列单元、从任务调度组件和从优先级队列单元都安装在一个服务器中,具体实施方案可视负载情况而定。
进一步,本发明实施例提供的企业管理数据分析处理系统还可包括:任务管理模块、模板管理模块、任务监控模块、报表服务模块、Category(分类)管理模块、基础分析服务管理模块、函数库管理模块、Restful API模块、账号管理模块、任务测试及审核模块。
任务管理模块,用以提供计划任务与非计划任务的管理功能,用户通过任务管理模块可以进行任务计划的创建、修改、删除等。即任务管理模块接收用户定义的任务参数。该模块是系统前端最重要模块,包含了任务建立、计划绑定、任务启动、停止等操作。用户通过该模块建立的计划、任务等会保存入数据库。对于一个计划任务,任务与用户选定的某个计划建立联系。在用户启动某个计划任务后,任务管理模块通过RPC(Remote Procedure Call,远程过程调用)将用户定义的任务参数提交到待调度任务生成模块101,待调度任务生成模块101会将任务和计划绑定,根据用户定义的任务参数生成待调度的任务并进行存储。
模板管理模块为用户提供自定义任务模板及管理功能。
任务监控模块,用以监控Hadoop MapReduce集群及各任务处理模块104中任务执行进度及完成情况,并进行实时显示。
报表服务模块,用以对Hadoop MapReduce集群运行任务情况进行统计;如将每10分钟作为一个点,统计集群上运行的任务数、map数、reduce数,运行任务耗费的IO资源等等。
Category管理模块,用以为用户提供查看存储在Hadoop HDFS集群上的数据并提供统计数据大小服务及数据下载的服务。数据分析平台为了支持对用户数据的权限管理,数据被分成不同的业务领域,每个领域称之为一个category,用户只可对拥有权限的category进行操作。
基础分析服务管理模块,用以将常用数据分析需求分别以一个个基础服务的形式进行存储,并支持灵活扩展,方便用户在创建新的任务计划时使用。
函数库管理模块,目前主要面向Hive,提供用以进行Hive分析时需要使用的UDF(User-Defined-Function,用户定义功能)、UDAF(User-Defined Aggregation Funcation,用户定义集合体功能)等函数库,供用户分析时使用;
REST(REpresentational State Transfer,表述性状态转移)API模块,其向用户开放服务接口,支持用户使用REST API向系统请求分析服务。
账号管理模块,用以管理用户使用企业管理数据分析处理系统的账号及权限验证。
任务测试及审核模块,用以将待审核任务发到企业管理数据分析处理系统进行测试运行,并根据测试结果提供测试报告。
上述企业管理数据分析处理系统中的各模块可以安装于同一服务器中,也可以安装于不同的服务器中,具体安装方案可视负载情况而定。
本发明实施例由于在企业管理数据分析处理系统的底层利用Hadoop系统(如HiveSERVER中安装的基于Hadoop的组件Hive)来进行数据分析,而在企业管理数据分析处理系统的上层则以任务调度模块来实现对任务的统筹管理,以及提供更为人性化的、更为方便的交互管理模式,从而既可以利用Hadoop系统进行数据分析而避免了繁杂的对关系型数据库的分表、拆表、合并等操作,简化了数据分析流程,又提供了更为方便地对任务进行调度、管理的系统。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种企业管理数据分析处理系统,其特征在于,包括:
待调度任务生成模块,用于根据预先定义的任务参数将收集的数据生成待调度的任务;
待调度任务存储模块,用于存储所述待调度任务生成模块生成的待调度的任务;
任务调度模块和任务处理模块,所述任务调度模块从所述待调度任务存储模块加载待调度的任务,并根据加载的任务的任务类型调用相应的任务处理模块;
所述任务处理模块根据所述任务中的分析需求生成相应的类结构化查询语言HiveSQL语句向基于分布式计算Hadoop的数据仓库服务器发送;在接收到所述服务器返回的数据后完成对所述任务的数据分析。
2.根据权利要求1所述的企业管理数据分析处理系统,其特征在于,所述任务调度模块具体包括:主任务调度组件和从任务调度组件;
所述主任务调度组件用于从所述待调度任务存储模块加载待调度的任务,并根据加载的任务的任务类型调用相应的任务处理模块;
所述从任务调度组件用于在所述主任务调度组件退出运行或者无法正常运行后,从所述待调度任务存储模块加载待调度的任务,并根据加载的任务的任务类型调用相应的任务处理模块。
3.根据权利要求2所述的企业管理数据分析处理系统,其特征在于,还包括优先级队列模块,其中:
所述任务调度模块还用于加载待调度的任务到调度栈后,将所述调度栈中任务执行时间到达的任务封装到优先级对象中,将所述优先级对象发送到优先级队列模块;
所述优先级队列模块用于接收到优先级对象后,将该优先级对象的优先级与所述优先级队列模块中其它优先级对象的优先级进行比较,根据比较结果对该优先级对象进行排序;
所述任务调度模块还用于从所述优先级队列模块中获取优先级最高的优先级对象,并根据获取的优先级对象中的任务的任务类型调用相应的任务处理模块进行数据分析。
4.根据权利要求3所述的企业管理数据分析处理系统,其特征在于,所述优先级队列模块具体包括:主优先级队列单元和从优先级队列单元;以及
所述主任务调度组件还用于加载待调度的任务到调度栈后,将所述调度栈中任务执行时间到达的任务封装到优先级对象中,并将所述优先级对象发送到所述主优先级队列单元;
所述主优先级队列单元用于接收到优先级对象后,将该优先级对象的优先级与所述主优先级队列单元中其它优先级对象的优先级进行比较,根据比较结果对该优先级对象进行排序;
所述主任务调度组件还用于从所述主优先级队列单元中获取优先级最高的优先级对象,并根据获取的优先级对象中的任务的任务类型调用相应的任务处理模块进行数据分析;
所述从优先级队列单元用于定时保持其数据与所述主优先级队列单元中的数据的一致。
5.根据权利要求4所述的企业管理数据分析处理系统,其特征在于,
所述从任务调度组件还用于在所述主任务调度组件退出运行或者无法正常运行后,加载待调度的任务到调度栈,将所述调度栈中任务执行时间到达的任务封装到优先级对象中,并将所述优先级对象发送到所述从优先级队列单元;并从所述从优先级队列单元中获取优先级最高的优先级对象,并根据获取的优先级对象中的任务的任务类型调用相应的任务处理模块进行数据分析;
所述从优先级队列单元还用于接收到优先级对象后,将该优先级对象的优先级与所述从优先级队列单元中其它优先级对象的优先级进行比较,根据比较结果对该优先级对象进行排序。
6.根据权利要求5所述的企业管理数据分析处理系统,其特征在于,还包括:
任务管理模块,用于接收定义的任务参数,并将所述任务参数发送给所述待调度任务生成模块。
7.一种企业管理数据分析处理方法,包括:
待调度任务生成模块根据预先定义的任务参数将收集的数据生成待调度的任务后存储到待调度任务存储模块;
任务调度模块从所述待调度任务存储模块加载待调度的任务,并根据加载的任务的任务类型调用相应的任务处理模块;
所述任务处理模块根据所述任务中的分析需求生成相应的类结构化查询语言HiveSQL语句向基于分布式计算Hadoop的数据仓库服务器发送;在接收到所述服务器返回的数据后完成对所述任务的数据分析。
8.根据权利要求7所述的企业管理数据分析处理方法,其特征在于,在所述根据加载的任务的任务类型调用相应的任务处理模块之前,还包括:
所述任务处理模块将加载的任务封装到任务处理线程中;以及
所述调用相应的任务处理模块具体为:所述任务处理线程在运行过程中根据所述任务的任务类型调用相应的任务处理模块。
9.根据权利要求8所述的企业管理数据分析处理方法,其特征在于,所述任务调度模块从所述待调度任务存储模块加载待调度的任务具体为:
所述任务调度模块将待调度的任务加载到调度栈;以及
在所述任务调度模块将加载的任务封装到任务处理线程之前,还包括:
所述任务调度模块监测所述调度栈中各待调度的任务的任务执行时间;从调度栈中取出任务执行时间到达的任务。
10.根据权利要求9所述的企业管理数据分析处理方法,其特征在于,在所述从调度栈中取出任务执行时间到达的任务之后,还包括:
所述任务调度模块将从所述调度栈中取出的任务转换为任务实例,并将转换的任务实例封装为优先级对象,该优先级对象的优先级是根据该任务的任务属性确定的;
所述任务调度模块将所述优先级对象发送到优先级队列模块;
所述优先级队列模块在接收到优先级对象后,根据该优先级对象的优先级与所述优先级队列模块中其它优先级对象的优先级进行比较,根据比较结果自动对该优先级对象进行排序;
所述任务调度模块从所述优先级队列模块中获取优先级最高的优先级对象;并初始化一个任务处理线程,将获取的优先级对象中的任务实例传至该任务处理线程中;以及,
所述调用相应的任务处理模块具体为:
该任务处理线程调用与所述任务实例中的任务的任务类型相应的任务处理模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711218525.2A CN109840138A (zh) | 2017-11-28 | 2017-11-28 | 一种企业管理数据分析处理系统及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711218525.2A CN109840138A (zh) | 2017-11-28 | 2017-11-28 | 一种企业管理数据分析处理系统及其方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109840138A true CN109840138A (zh) | 2019-06-04 |
Family
ID=66881372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711218525.2A Pending CN109840138A (zh) | 2017-11-28 | 2017-11-28 | 一种企业管理数据分析处理系统及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109840138A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111143398A (zh) * | 2019-12-12 | 2020-05-12 | 跬云(上海)信息科技有限公司 | 基于扩展sql函数的超大集合查询方法及装置 |
CN112565286A (zh) * | 2020-12-17 | 2021-03-26 | 金蝶软件(中国)有限公司 | 一种基于rpc访问的任务响应方法、装置、设备和存储介质 |
CN116187869A (zh) * | 2023-04-28 | 2023-05-30 | 北京合力金智科技发展有限公司 | 一种应用于政企信息化系统的用户行为分析方法及系统 |
-
2017
- 2017-11-28 CN CN201711218525.2A patent/CN109840138A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111143398A (zh) * | 2019-12-12 | 2020-05-12 | 跬云(上海)信息科技有限公司 | 基于扩展sql函数的超大集合查询方法及装置 |
CN112565286A (zh) * | 2020-12-17 | 2021-03-26 | 金蝶软件(中国)有限公司 | 一种基于rpc访问的任务响应方法、装置、设备和存储介质 |
CN116187869A (zh) * | 2023-04-28 | 2023-05-30 | 北京合力金智科技发展有限公司 | 一种应用于政企信息化系统的用户行为分析方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102880503B (zh) | 数据分析系统及数据分析方法 | |
US11403297B2 (en) | Selecting resource configurations for query execution | |
US9413604B2 (en) | Instance host configuration | |
US20190102411A1 (en) | Rule-based autonomous database cloud service framework | |
Varia | Cloud architectures | |
Candan et al. | Frontiers in information and software as services | |
US8812752B1 (en) | Connector interface for data pipeline | |
AU2014209611B2 (en) | Instance host configuration | |
Zhao et al. | Cloud data management | |
US10691712B2 (en) | System and method for merging a mainframe data file to a database table for use by a mainframe rehosting platform | |
US20060095435A1 (en) | Configuring and deploying portable application containers for improved utilization of server capacity | |
US20140207919A1 (en) | Instance configuration on remote platforms | |
EP2831774A1 (en) | Method and system for centralized issue tracking | |
CN111966692A (zh) | 针对数据仓库的数据处理方法、介质、装置和计算设备 | |
US20230052612A1 (en) | Multilayer processing engine in a data analytics system | |
AU2021244852B2 (en) | Offloading statistics collection | |
CN109840138A (zh) | 一种企业管理数据分析处理系统及其方法 | |
CN113703997A (zh) | 集成多种消息代理的双向异步通信中间件系统及实现方法 | |
CN116719622A (zh) | 业务流程的编排方法及业务流程编排系统 | |
US10534640B2 (en) | System and method for providing a native job control language execution engine in a rehosting platform | |
Shao | Towards effective and intelligent multi-tenancy SaaS | |
Moeller et al. | Toto–Benchmarking the Efficiency of a Cloud Service | |
US20230185817A1 (en) | Multi-model and clustering database system | |
CN116775420A (zh) | 基于Flink流计算的信创云平台资源展示和预警方法及系统 | |
US11727022B2 (en) | Generating a global delta in distributed databases |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190604 |