技术领域
[0001] 本发明涉及数据处理领域,尤其涉及一种大数据开发与运行方法及系统。
相关背景技术
[0002] 目前,各公司、单位通常基于开源或商业的大数据基础平台进行大数据应用开发,这些开源或商业的大数据基础平台通常对Hadoop、Spark体系平台进行了定制、封装和集成。在此基础上进行大数据开发时,通常在本地完成程序的开发和编译,随后上传到上述平台运行。此种方式中的所有运行、调度等工作都需要自写代码完成,其大致流程如图1所示,首先,开发人员在本地计算机进行大数据应用开发,并编译成在大数据平台运行的目标文件;操作人员将目标文件上传到大数据平台,并使用命令行提交到大数据平台运行;运行成功结束或失败后,操作人员检查运行结果、日志。如运行结果与预想的不一致,则开发人员还需要再修改、编译代码。然后再重复上述过程。
[0003] 现有大数据平台是通常只是大数据运行Hadoop、Spark框架和组件的堆砌,相关通常直接基于上述底层的组件进行开发和运行,在诸多方面具有不足,大致有以下几种缺点:
[0004] 1、大数据应用门槛高
[0005] 大数据运行Hadoop、Spark框架包含程序组件有上百个之多,开发人员、运维人员学习这些框架的曲线非常陡峭。另外,人才市场也缺少具有这些技能的开发人员与运维人员。基于以上原因,企业要在现有大数据平台上开展大数据应用,门槛非常高。
[0006] 2、生产效率低下
[0007] 从上面描述的生产过程可知,在现有大数据平台上开展大数据应用的几个步骤是完全割裂的。在实际的工作中往往需要反复执行上述步骤,割裂的步骤导致低下的生产效率。
[0008] 3、生产成本高
[0009] 开展大数据应用的高门槛、生产效率的低下,导致企业或单位开展大数据应用的成本极高,严重阻碍了大数据行业的发展。
具体实施方式
[0043] 以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
[0044] 实施例一
[0045] 如图2所示,本实施例提供了一种大数据开发与运行方法,其包括:
[0046] S1:扩展大数据计算处理流程,形成大数据处理流程的集成环境;
[0047] S2:基于所述集成环境,获取用户定制的大数据处理流程;
[0048] S3:上传所述定制的大数据处理流程,调度运行所述上传的大数据处理流程,并显示运行结果。
[0049] 如图3所示,进行大数据计算处理的通用流程会经过数据采集、存储、处理和分享四个步骤,其中的数据采集是从外部的业务系统抽取、收集业务数据的过程,采集数据进入大数据平台后可以进行持久化存储,也可以不存储而直接进行数据处理;数据存储是将外部的业务数据持久化存储到磁盘中,大数据平台通常会使用分布式的方式存储这些数据,数据量不大的时候也可能采用关系数据库来保存这些数据;数据处理是指用户编写基于大数据平台的数据计算程序或脚本进行数据的处理,要处理数据通常有两种来源,其一为在数据采集阶段采集的数据,直接进行数据处理,其二为读取已经持久化存储的数据进行数据处理;数据分享是指用户根据需要将处理结果数据或持久化存储的数据输出到业务系统、数据库。
[0050] 本实施例中针对大数据计算处理流程的扩展以上述通用流程为基础,将采集部分、存储部分、处理部分及分享处理部分都进行扩展,通过在通用流程的基础上进行扩展,将每个节点都扩展成可定制、可扩展的流程项,对大数据运行Hadoop、Spark框架和组件进行封装,达到了降低大数据处理应用开发的门槛,平缓学习曲线、提高生产效率及降低生产成本的目的。
[0051] 实施例二
[0052] 基于实施例一提供的大数据开发与运行方法,其中针对大数据计算处理流程的扩展包括数据采集的扩展、数据存储的扩展、数据处理的扩展和数据输出的扩展,其具体扩展流程如图4所示。
[0053] 针对数据采集的扩展,在采集的方式上,扩展为历史数据采集和即时发生的业务数据采集,历史数据指的是非交易数据,通常该部分数据为离线方式;实时数据指的是即时发生的业务数据,该部分数据产生以后,同时发送给交易处理程序和本发明的大数据开发与运行系统,本发明的大数据开发与运行系统可以支持离线的历史数据采集和实时数据采集。在采集的数据类型上,扩展为结构化数据、半结构化数据和非结构化数据。结构化数据指传统的关系型数据,其表现通常为行列结构;半结构化数据指有一定模式的文本文件,如程序的运行日志等;非结构化数据指格式为二进制的数据,如音频、视频、图片等。
[0054] 数据处理部分扩展为支持SQL处理、通用算法组件和支持利用用户开发的处理程序的处理,即支持用户开发的处理组件。对应的大数据开发与运行系统包含SQL处理组件,支持用户直接使用SQL语句处理超过10TB的关系型数据;通用算法组件则是本系统对通用的算法(如方差、分类、聚类)进行封装,供用户调用;此外,如果用户已经开发了基于开源或商业发行版Hadoop、Spark的分布式数据处理程序,本系统支持将其加入到流程中进行统一调度运行。
[0055] 数据分享的扩展可支持数据的批量输出、实时输出和支持外部高并发访问。批量输出是本系统对数据进行处理后,一次性地或周期性地输出处理结果数据。此外,本系统还支持数据处理结果的实时输出,以及支持外部业务系统高并发访问本系统的运算结果。
[0056] 通过上述扩展,使得用户利用本方法可以仅仅通过定制流程、配置流程节点的方式就可以进行大数据的计算处理工作。大大降低了大数据处理应用开发的门槛,平缓了学习曲线。
[0057] 在上述扩展流程的基础上,通过获取用户定制的自己所需的大数据处理流程,并将其定制的大数据处理流程上传至大数据集群进行调度运行,在运行过程中始终监控应用的运行情况,并将运行结果及时回馈给用户。一旦运行结束(无论成功或失败),用户可以及时得到运行的结果信息,用户可以根据运行结果,与其期望运行结果进行对比,如果所述运行结果与其期望运行结果不同,则重新定制新的大数据处理流程,再次获取用户重新定制的新的大数据处理流程,进行新一轮的后续处理。
[0058] 如图5所示,上述过程也可理解为,在上述扩展流程的基础上,用户,即开发、运维人员定制自己所需的大数据处理流程,并提交给大数据集群进行调度运行,在运行过程中始终监控应用的运行情况,并及时回馈给用户。一旦运行结束(无论成功或失败),用户可以及时得到运行的结果信息,用户可以检查运行结果,如果该运行结果与其期望的结果不同,则可以重新定制新的流程,再次进行定制流程->提交->运行->检查运行结果的完整流程。
[0059] 实施例三
[0060] 本实施例提供了一种大数据开发与运行系统,其包括:
[0061] 处理流程集成模块,用于集成扩展后的大数据计算处理流程;
[0062] 获取模块,用于获取用户定制的大数据处理流程;
[0063] 上传模块,用于将定制的大数据处理流程上传至大数据集群;
[0064] 调度运行模块,用于运行上传至大数据集群的大数据处理流程,获得运行结果;
[0065] 显示模块,用于显示所述运行结果。
[0066] 其中的处理流程集成模块包括:用于采集非交易数据的历史数据采集模块、用于实时采集即时发生的业务数据的实时数据采集模块、用于存储采集的所述历史数据和业务数据的存储模块、用于处理采集的历史数据和业务数据的处理模块及用于输出所述处理后的数据的分享模块。
[0067] 其中的历史数据采集模块和实时数据采集模块均包括结构化数据采集单元、半结构化数据采集单元和非结构化数据采集单元。结构化数据指传统的关系型数据,其表现通常为行列结构;半结构化数据指有一定模式的文本文件,如程序的运行日志等;非结构化数据指格式为二进制的数据,如音频、视频、图片等。其中的存储模块包括关系型数据存储单元和非关系型数据存储单元,所述关系型数据存储单元负责对上述的结构化数据进行存储,所述非关系型数据存储单元负责对上述的半结构化数据和非结构化数据进行存储。其中的处理模块包括SQL处理单元、通用算法处理单元及开源处理单元;所述SQL处理单元支持用户直接使用SQL语句处理超过10TB的关系型数据;通用算法处理单元则是对通用的算法,如方差、分类和聚类进行封装,供用户调用。其中的分享模块包括批量输出单元、实时输出单元和高并发访问接口。批量输出单元可针对本系统处理后的数据进行批量输出,即对数据进行一次性地或周期性地输出处理结果数据;该实时输出单元可针对本系统处理后的数据进行实时输出;该系统还支持外部业务系统利用所述高并发访问接口高并发访问本系统的运算结果。
[0068] 在以上述扩展后的流程模块为基础的同时,该系统还封装了大数据处理流程定制的集成环境,用户使用该集成环境,以定制流程的方式进行大数据应用开发和设置。开发、运维人员使用流程定制的方式完成大数据应用开发后,可将应用提交运行,系统会自动对提交的应用调度运行,即把大数据应用程序上传到大数据集群,利用大数据集群提供的运行功能来启动该应用,在运行过程中,该系统始终监控应用的运行情况,并及时回馈给用户,一旦运行结束(无论成功或失败),用户可以及时得到运行的结果信息,如果运行结果信息与预想的不一致,用户再改进应用程序,重新定制新的大数据处理流程,再次获取用户重新定制的新的大数据处理流程,进行新一轮的后续处理。
[0069] 通过上述一站式的流程,用户可以连续进行开发运行相关工作,而不需要在每一个步骤都切换工作环境。在这种情况下,本系统与业界的现有技术和工作相比提高了工作效率,通过以上各特性,本系统可以达到降低大数据应用门槛、提高生产效率、降低生产成本的目标。
[0070] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。