一种大数据分布式调度分析方法、系统装置及存储介质与流程

文档序号:13282225阅读:271来源:国知局
本发明涉及数据处理领域,更为具体而言,涉及一种大数据分布式调度分析方法、系统装置及存储介质。
背景技术
::随着网络及电子商务的普及,大数据的调度处理及数据分析变得越发复杂。对于实际生产中的大数据处理,由于现实数据的复杂性、多样性,必不可少的,多种技术结合(分布式平台技术hadoop、分布式数据库技术greenplum)、多种语言公用(常用如java、perl、python、bash)乃至分布式处理都是需要的。通常来说,现有的etl(extract-transform-load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程)系统主要用于构建数据仓库(dw),其最主要的关注意义在于实现传统数据处理的分离,以便规定数据处理的规范化、提高数据集成完备性,缺少对现有的大数据处理的技术支持。当前,对于大数据量的数据处理,都会遇到效率上和稳定性上的瓶颈,以及因为这些瓶颈而无法实现准实时性,存在调度能力差且处理效率低的问题。并且,由于大数据项目的多样性和规模性,存在如下技术问题:现有的etl系统并没有一种用于大数据技术的主流语言规范和函数库,没法支持使用各种语言的开发人员同时参与项目,导致大数据分析处理效率低且规范性差等难以克服的问题。技术实现要素:鉴于现有技术的上述缺陷,本发明实施方式提供了一种大数据分布式调度分析方法、系统、装置及存储介质,通过采用分布式调度方式和成熟的作业框架,可有效解决当前大数据调度能力差、处理效率低以及大数据分析处理效率低且规范性差等难以克服的问题。具体地,本发明实施方式提供了一种大数据分布式调度分析方法,其包括:调度服务端模块依次获取分布式作业服务器的使用状态信息,根据所述使用状态信息,选取符合资源空闲标准的所述作业服务器运行作业程序;大数据分析模块通过采用组件化的作业框架,对所述运行作业程序后的数据进行大数据分析处理。相应地,本发明实施方式还提供了一种大数据分布式调度分析系统,其包括:调度服务端模块,用于依次获取分布式作业服务器的使用状态信息,根据所述使用状态信息,选取符合资源空闲标准的所述作业服务器运行作业程序;大数据分析模块,用于通过采用组件化的作业框架,对所述运行作业程序后的数据进行大数据分析处理。此外,本发明实施方式还提供一种大数据分布式调度分析装置,包括存储器和处理器,其中,所述存储器用于存储一条或多条供所述处理器调用执行的计算机指令,所述处理器通过执行所述计算机指令实现如上所述的方法。此外,本发明实施方式还提供一种计算机存储介质,所述计算机存储介质存储有程序,所述程序在执行时实现如前所述的方法。通过采用本发明实施方式具有下述有益效果:通过采用分布式调度方式和成熟的作业框架,可有效提高基于大数据的作业处理性能和数据分析效率。附图说明图1是根据本发明实施方式的一种大数据分布式调度分析方法的流程示意图;图2是本发明实施方式中所述步骤s2的部分流程示意图;图3是根据本发明实施方式的一种大数据分布式调度分析系统的架构图。具体实施方式为了便于理解本发明技术方案的各个方面、特征以及优点,下面结合附图对本发明进行具体描述。应当理解,下述的各种实施方式只用于举例说明,而非用于限制本发明的保护范围。首先对根据本发明可能涉及到的名称或术语进行解释。大数据分析:是指对规模巨大的数据进行分析。常用的技术如:分布式平台apache-hadoop(以及基于hadoop的hive、pig、hbase等)、分布式数据库greenplum(比如emc-greenplum)。etl:是英文extract-transform-load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。etl一词较常用在数据仓库,但其对象并不限于数据仓库。作业:应用分析处理的单位,为某一目标结果对数据进行处理的过程。本文中可代指etl处理子过程。分布式系统:支持分布式处理的软件系统,是在由通信网络互联的多处理机体系结构上执行任务的系统。数据仓库:英文名称为datawarehouse,可简写为dw或dwh。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。实施例1:图1是根据本发明实施方式的一种大数据分布式调度分析方法的流程示意图。参照图1,具体实施例如下,所述方法包括:步骤s1,调度服务端模块依次获取分布式作业服务器的使用状态信息,根据所述使用状态信息,选取符合资源空闲标准的所述作业服务器运行作业程序。其中,多个作业服务器上部署的etl系统间通过定时更新数据库状态对自身的状态进行监控以维持稳定性。步骤s2,大数据分析模块通过采用组件化的作业框架,对所述运行作业程序后的数据进行大数据分析处理。本发明通过采用分布式调度方式和成熟的作业框架,可有效提高基于大数据的作业处理性能和数据分析效率。具体而言,在步骤s1中,各个作业达到执行条件(运行时间到达)时,总控根据各服务器(例如:server1,server2,server3等)的资源情况(cpu、内存使用率)来对作业的执行分配资源,此时作业上锁,并在指定机器上执行。当作业执行完成后,作业的执行状态变为已经执行完成。具体流程如下:流程1:服务器根据运行时间1000,判断时间已到,所以此时server1上的调度服务端模块获取server1的cpu使用状态和内存使用率,如发现cpu使用或内存使用率状态高于80%,则判断下一台机器server2,以此类推,如果集群内没有资源空闲的机器,则再等待1分钟后重新判断。step2:如果达到了运行条件且有机器有空闲资源,则获取作业语言type、找到作业程序路径并调起程序。示例:作业语言是1-shell,则在指定的机器上执行命令:shshell_executor.shjobpathjobargs。其中,shell_executor.sh是一个用来执行1-shell类型作业的脚本,具体功能:找到jobpath的程序,并将jobargs的参数传给程序,调起程序,如果程序运行成功,将返回的状态(0-成功,1-异常)传给该机器的调度服务端模块,调度服务端模块根据结果更新作业运行状态,如果是成功,则将业务日期加1.如果是失败,则作业运行状态为异常,等待人工处理,查看作业运行打出的日志,并修改数据库中的作业运行状态为0-准备。分布式运行作业的特点:在这里举一个例子以体现以上作业配置的设计师如何解决分布式运行作业的问题,以实现多机器并行处理,这也是现有的调度工具所不具有的功能。作业功能:对a系统送过来的100个文件:(filename_01.data到filename_100.data)进行数据转换处理,而转换处理涉及到大量的cpu操作,如果多台机器能够同时处理且较为简单便能实现,可大幅度提高效率。计划处理方式:将100个文件,分别用5台机器来进行转换处理。处理过程:则在数据库中配置5个作业,id分别为:101、102、103、104、105,调用程序均为java.part1.transform.t_ebs_file_location,其他参数一样,运行参数不同,比如101是filename_0*.dat,filename_1*.dat,201是filename_2*.dat,filename_3*.dat,作业运行机器不同,分别是server1、server2、server3、server4、server5。则系统调起程序(包括但不限于):java.part1.transform.t_ebs_file_location,程序根据参数对文件做关键词匹配,分别处理满足自己匹配的文件,便实现了5台机器同个程序进行并行处理。需要使用处理后文件的作业,在作业前置id写上101、102、103、104、105即可在5个作业都完成后使用处理后的文件。分布式处理单点故障的特点:在调度服务端模块中,每个server会定时1分钟在oracle的状态表tba_system_params中更新自己的状态信息,表设计和数据参考如下:hostnameparam_dateserver1201605011021server2201605011021server3201605011021…step1:每台机器每分钟定时更新自己的param_date,如果没有hostname则是新增当前机器。step2:每台机器每分钟定时会计算状态表中的param_date上次更新时间距离当前时间多久,如果超过5分钟,则判断机器已经宕机或者不可用。step3:对于宕机不可用的机器,比如server1,则将作业参数表中所有schedulerhost字段等于server1的,更改为当前顺序上第一台可用的机器,比如server2、server3中server2可用,则由server2来承担调度工作。实施例2:在本发明的另一种实施方式中,所述方法除了上述处理方式外,其中,所述方法还包括:采用双监控模式,对所述调度服务端模块的运行进程进行监控维护处理。采用双监控模式,check_monitor监控monitor,monitor也监控check_monito。同时monitor监控etl服务端进程;并会扫描版本补丁,维护etl系统版本一致性。通过采用上述双监控模块,有效地提高各server的运行稳定性,减少人工干预。实施例3:在本发明的另一种实施方式中,所述方法除了上述处理方式外,其中,所述方法还包括:所述调度服务端模块根据作业语言类别,选择对应的语言执行工具,并采用动态加载方式执行多语言调用程序。所述调度服务端模块作为核心模块,支持多语言的调度方式,通过oracle状态标志字段刷新,实现不同server状态之间、作业流状态之间、作业状态之间的相互通信;以及装载作业、调整作业关系、完成作业调度。通过支持多语言的开发人员进行协同开发,使得开发人员更加专注于业务逻辑而非特定语言。实施例4:在本发明的另一种实施方式中,所述方法除了上述处理方式外,其中,所述方法还包括:所述大数据分析模块根据不同的技术类别封装并形成函数库,根据调用所述函数库和所述组件框架,通过输入参数进行所述大数据分析处理。进而,将大数据分析中的各个流程和技术流程化、组件化,根据划分的8个流程、多种技术模块,封装底层技术形成组件库,支持多语言和作业框架。通过这种组件库和作业框架的设计,降低了技术使用门槛、简化了技术使用的难度。具体而言,数据分析中主要用到的技术有hive、greenplum、redis、spark等技术。这些技术都是可以封装并形成函数库的。比如hive技术,我们通过shell方式,将hive技术使用功能方法化,从而构成hive_exec.sh类,这时,只需要调用hive_exec.sh输入我们需要的参数即可实现大数据处理。示例:hive_exec.sh-chivesql即可实现执行hivesql并返回查询结果。所以,这里的重要意义在于,对大数据的各种技术进行封装,形成可以直接调用的函数库。在组件化的基础上,通过调用基础组件的脚本,我们将数据处理的8个流程,全部通过调用函数库实现,进一步封装成作业框架,输入参数即可完成数据分析的处理。例如:hive的unload卸数功能,我们编写hive_exec_export.sh脚本,脚本中调用hive_exec.sh查询指定tablename中的指定列数的结果,并输出到指定文件,且提供多种选择类型,所以,通过将可选的多个流程中各个技术(greenplum、hive、hbase等组件)进行封装,我们的作业框架即实现了数据分析的各个功能,只需要通过输入参数的方式,即可进行大数据分析。作业框架结合前边的调度服务端,即是技术重点1和技术重点2的结合,例如:将文件的转码操作封装为作业框架file_transform.sh脚本。图2是本发明实施方式中所述步骤s2的部分流程示意图;如图所示,对大数据进行分析处理包括如下过程:(1)export萃取:代表的是数据获取的过程,比如从数据库卸数以及其他技术(比如flume)日志采集来采集数据。(2)transform转换:数据的转换,比如对数据内容进行拆分、空值处理、补全等处理。(3)load入库:代表的是将转换后的数据加载到数据库,比如hive或者greenplum中。(4)analysis分析:代表的是数据分析的过程,通过sql语句或者算法对数据进行加工获得需求所需的数据分析结果的过程。(5)unload卸数:数据卸载的过程,将分析后存放在内存或者数据库中的数据,以文件的形式卸载到nas存储上。(6)copy数据复制:数据复制到其他组件的过程,比如将greenplum数据库中分析得到的的数据表格复制到hive数据表中。(7)send发送:数据传输的过程,比如从a系统进行数据分析后的数据通过nft发送到系统b。(8)delete数据清理:将无效或者超时的数据进行处理。进行以上流程化的特点包括:(1)整个数据分析或者数据处理的过程,均由以上流程中的各部分组成,不过不一定包含各个过程。(2)将整个数据分析的过程分为以上8个部分,可以更好的将数据处理模块化,这有利于中间数据的使用以及避免数据冗余。分为以上各个部分后,可以针对特定流程使用特定技术,而不用在整个数据分析的流程中使用单个技术,这样子可以提高开发效率。比如:数据的入库采用脚本语言shell的形式完成即可,而数据分析的过程使用java或者scala语言技术完成。图3是根据本发明实施方式的一种大数据分布式调度分析系统的架构图。如图所示,所述系统包括:调度服务端模块100,用于依次获取分布式作业服务器的使用状态信息,根据所述使用状态信息,选取符合资源空闲标准的所述作业服务器运行作业程序;大数据分析模块200,用于通过采用组件化的作业框架,对所述运行作业程序后的数据进行大数据分析处理。本发明通过采用分布式调度方式和成熟的作业框架,可有效提高基于大数据的作业处理性能和数据分析效率。另外,在本发明所述系统的物理部署方面,作业服务器分为作业服务器集群(部署etl系统和应用程序的服务器)和数据库服务器集群(指的是安装hadoop、greenplum、oracle等数据库的服务器,应用程序调用这些资源进行计算),这里,我们的系统部署在作业服务器上。各个服务器上部署的调度系统无差别,各作业之间通过oracle(rac)中的作业参数表进行交互,作业分布式调度。测试环境可采用8c32g参数库100gb存储,并可以通过mysql进行替代。在本发明的另一种实施方式中,所述系统除了上述处理方式外,所述系统还包括:监控维护模块,用于采用双监控模式,对所述调度服务端模块的运行进程进行监控维护处理。在本发明的另一种实施方式中,所述系统除了上述处理方式外,所述调度服务端模块进一步包括:多语言调用单元,用于根据作业语言类别,选择对应的语言执行工具,并采用动态加载方式执行多语言调用程序。在本发明的另一种实施方式中,所述系统除了上述处理方式外,所述大数据分析模块包括:基础组件库,用于所述根据不同的技术类别封装并形成函数库,根据调用所述函数库和所述组件框架,通过输入参数进行所述大数据分析处理。需要说明的是,上述大数据分布式调度分析系统的各个实施方式与所述大数据分布式调度分析方法的对应技术内容完全一致,为了避免重复,在此不再冗述。此外,本发明实施方式还提供一种大数据分布式调度分析装置,包括存储器和处理器,其中,所述存储器用于存储一条或多条供所述处理器调用执行的计算机指令,其特征在于,所述处理器通过执行所述计算机指令实现如前所述的方法(更具体而言,实现该方法中的各个处理、步骤或逻辑)。此外,本发明实施方式还提供一种计算机存储介质,其特征在于,所述计算机存储介质存储有程序,所述程序在执行时实现如前所述的方法(更具体而言,实现该方法中的各个处理、步骤或逻辑)。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对
背景技术
:做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。本领域技术人员应当理解,以上所公开的仅为本发明的实施方式而已,当然不能以此来限定本发明之权利范围,依本发明实施方式所作的等同变化,仍属本发明权利要求所涵盖的范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1