CN107682432B - 基于Spark的数据处理系统和方法 - Google Patents

基于Spark的数据处理系统和方法 Download PDF

Info

Publication number
CN107682432B
CN107682432B CN201710897600.6A CN201710897600A CN107682432B CN 107682432 B CN107682432 B CN 107682432B CN 201710897600 A CN201710897600 A CN 201710897600A CN 107682432 B CN107682432 B CN 107682432B
Authority
CN
China
Prior art keywords
message
calculation result
parameter
data
file system
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
Application number
CN201710897600.6A
Other languages
English (en)
Other versions
CN107682432A (zh
Inventor
黄世清
程志良
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201710897600.6A priority Critical patent/CN107682432B/zh
Publication of CN107682432A publication Critical patent/CN107682432A/zh
Application granted granted Critical
Publication of CN107682432B publication Critical patent/CN107682432B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请实施例公开了基于Spark的数据处理系统和方法。该系统的一具体实施方式包括:消息中间件,客户端,部署在服务端的参数数据组件和数据报告组件;参数数据组件,用于将获取的参数数据发送到HDFS文件系统;客户端,用于利用消息中间件从HDFS文件系统获取参数数据,根据参数数据启动Spark计算任务,生成计算结果,并将计算结果发送到HDFS文件系统;数据报告组件,用于利用消息中间件从HDFS文件系统获取计算结果,并保存计算结果。该实施方式中的系统通过消息中间件、客户端、参数数据组件和数据报告组件之间的协作实现数据的处理,减少了系统维护的工作量。

Description

基于Spark的数据处理系统和方法
技术领域
本申请涉及计算机技术领域,具体涉及互联网技术领域,尤其涉及基于Spark的数据处理系统和方法。
背景技术
Spark是UC Berkeley AMP lab(加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce通用并行框架。它发展迅速,仅用了五年时间,就成为Apache基金的顶级项目。并且Spark凭借其内存计算的优势,已经逐渐有取代Hadoop霸主地位的趋势。
作为数据计算处理工具,Spark计算引擎的表现无疑是非常出色的,但是在数据处理的过程中,其需要与Apache lens提供的统一数据分析接口相结合,而Apache lens通常需要将各种数据分析工具结合起来,进行统一管理、使用和维护,这使得Spark的计算需要花费过多的系统资源及人力、时间成本。
发明内容
本申请实施例的目的在于提出一种改进的基于Spark的数据处理系统和方法,来解决以上背景技术部分提到的技术问题。
第一方面,本申请实施例提供了一种基于Spark的数据处理系统,该系统包括:消息中间件,客户端,部署在服务端的参数数据组件和数据报告组件;参数数据组件,用于将获取的参数数据发送到HDFS文件系统;客户端,用于利用消息中间件从HDFS文件系统获取参数数据,根据参数数据启动Spark计算任务,生成计算结果,并将计算结果发送到HDFS文件系统;数据报告组件,用于利用消息中间件从HDFS文件系统获取计算结果,并保存计算结果。
在一些实施例中,消息中间件包括参数消息队列和计算结果消息队列;参数数据组件还用于生成参数消息,并将参数消息发布到参数消息队列,其中,参数消息包括存储在HDFS文件系统中的参数数据的存储位置;客户端还用于生成计算结果消息,并将计算结果消息发布到计算结果消息队列,其中,计算结果消息包括计算结果的存储位置。
在一些实施例中,客户端用于监听参数消息队列,以获取并解析监听到的参数消息;数据报告组件用于监听计算结果消息队列,以获取并解析计算结果消息。
在一些实施例中,参数消息还包括如下中的至少一种:参数消息的唯一编码;参数消息的消息类型;参数消息的发布时间。
在一些实施例中,计算结果消息还包括如下中的至少一种:计算结果消息的唯一编码;计算结果消息的消息类型;计算结果消息的发布时间;计算结果的成功状态。
第二方面,本申请提供了一种基于Spark的数据处理方法,该方法包括:利用消息中间件获取服务端存储在HDFS文件系统中的参数数据;根据参数数据启动Spark计算任务,生成计算结果;将计算结果存储到HDFS文件系统,以使服务端利用消息中间件获取并保存计算结果。
在一些实施例中,消息中间件包括参数消息队列和计算结果消息队列;利用消息中间件获取服务端存储在HDFS文件系统中的参数数据,包括:监听参数消息队列,以从参数消息队列获取服务端发布的参数消息,其中,参数消息包括存储在HDFS文件系统中的参数数据的存储位置;解析参数消息,以获取参数数据的存储位置;从HDFS文件系统获取参数数据。
在一些实施例中,将计算结果存储到HDFS文件系统,以使服务端利用消息中间件获取并保存计算结果,包括:将计算结果存储到HDFS文件系统;生成计算结果消息,将计算结果消息发布到计算结果消息队列,其中,计算结果消息包括计算结果的存储位置;响应于服务端在计算结果消息队列监听到计算结果消息,将该计算结果消息发送到服务端,以使服务端获取并保存计算结果。
在一些实施例中,参数消息还包括如下中的至少一种:参数消息的唯一编码;参数消息的消息类型;参数消息的发布时间。
在一些实施例中,计算结果消息还包括如下中的至少一种:计算结果消息的唯一编码;计算结果消息的消息类型;计算结果消息的发布时间;计算结果的成功状态。
本申请实施例提供的基于Spark的数据处理系统和方法,其中部署在服务端的参数数据组件可以将获取的参数数据发送到HDFS文件系统,客户端可以利用消息中间件从HDFS文件系统中获取参数数据,并根据参数数据启动Spark计算任务,生成计算结果,并将计算结果发送到HDFS文件系统,部署在服务端的数据报告组件可以利用消息中间件从HDFS文件系统获取计算结果,并保存计算结果,可见基于Spark的数据处理系统中的消息中间件、客户端、参数数据组件和数据报告组件之间可以实现相互合作,而非对该系统进行同一维护,减少了该系统维护的工作量,节约了系统资源及人力、时间成本。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出了根据本申请的基于Saprk的数据处理系统的一实施例的结构示意图;
图2示出了根据本申请的基于Saprk的数据处理系统的另一实施例的结构示意图;
图3示出了根据本申请的基于Saprk的数据处理方法的一实施例的流程;
图4示出了根据本申请的基于Saprk的数据处理方法的另一实施例的流程;
图5是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
请参考图1,其示出了根据本申请的基于Spark的数据处理系统的一实施例的结构示意图。如图1所示,本实施例中的基于Spark的数据处理系统100可以包括客户端101、消息中间件102、参数数据组件103和数据报告组件104。
在本实施例中,上述参数数据组件103和数据报告组件104可以部署在服务端105,如图1所示。并且服务端105可以与上述客户端101进行通信,具体地,服务端105可以通过消息中间件102与客户端101进行通信。可以理解的是,消息中间件102可以与服务端105部署在同一服务器上,此时客户端101所在的服务器与服务端105所在的服务器可以通过有线连接方式或者无线连接方式进行通信;或者,上述消息中间件102与服务端105还可以部署在不同的服务器上,此时客户端101所在的服务器与消息中间件102所在的服务器可以通过有线连接方式或者无线连接方式进行通信,且消息中间件102所在的服务器与服务端105所在的服务器可以通过有线连接方式或者无线连接方式进行通信,从而使得客户端101可以通过消息中间件102与服务端105进行通信。
在本实施例中,上述参数数据组件103可以用于将获取的参数数据发送到HDFS文件系统106(Hadoop Distributed File System,Hadoop分布式文件系统)。参数数据组件103可以利用API(Application Programming Interface,应用程序编程接口)采集参数数据,该参数数据可以影响Spark计算任务,而后参数数据组件103可以将采集到的参数数据存储到HDFS文件系统106,如图1所示。由于HDFS文件系统存储文件具有特定的要求,因此在参数数据组件103将参数数据存储到HDFS文件系统106之前,参数数据组件103可以将参数数据配置成文本文件,而后将文本文件存储到上述HDFS文件系统106。上述客户端101可以利用消息中间件102从上述HDFS文件系统106获取参数数据。上述客户端101可以部署在Spark环境中的服务器上,并且spark中可以预先加载了所要计算的基础数据和相关的辅助数据等,当客户端101获取参数数据后,客户端101可以启动Spark计算任务,使得Spark可以根据参数数据对其上加载的基础数据和相关的辅助数据等进行计算,并生成计算结果。上述客户端103还可以将生成的计算结果存储到HDFS文件系统106中,可以理解的是,客户端101可以首先将计算结果配置成文本文件,而后将配置后的计算结果存储到HDFS文件系统106中。部署在服务端105的数据报告组件104可以利用消息中间件102从HDFS文件系统106获取Spark计算任务的计算结果,而后可以将获取的计算结果保存在本地或保存在部署在其它服务器上的数据库中。可见,上述客户端101、消息中间件102、服务端105等之间可以通过相互合作完成系统的任务调度和数据处理。
本本申请的上述实施例提供的基于Spark的数据处理系统100,参数数据组件103可以将参数数据存储到HDFS文件系统106中,客户端101可以利用消息中间件102从HDFS文件系统106获取参数数据,启动Spark计算任务,并将计算结果存储到HDFS文件系统106,从而使得数据报告组件104可以利用消息中间件102从HDFS文件系统106获取计算结果,从而实现通过系统100中各组件的相互合作完成客户端101与服务端105的交互,不需对系统100进行统一维护,减少系统100的维护工作量,节约了系统资源以及人力、时间成本。
继续参考图2,其示出了根据本申请的基于Spark的数据处理系统的另一实施例的结构示意图。如图2所示,本实施例中的基于Spark的数据处理系统200可以包括客户端201、消息中间件202、部署在服务端205的参数数据组件203和数据报告组件204,其中,消息中间件202可以包括参数消息队列2021和计算结果消息队列2022。
在本实施例中,上述参数数据组件203可以将获取的参数数据存储到HDFS文件系统206,以便于客户端201可以利用消息中间件202从HDFS文件系统206获取参数数据。具体地,参数数据组件203在将参数数据存储到HDFS文件系统206时,还可以相应地生成参数消息,该参数消息可以包括存储在HDFS文件系统206中的参数数据的存储位置。上述消息中间件202可以传递参数消息,从而使得客户端201可以根据参数数据的存储位置获取参数数据。客户端201在获取参数数据后可以根据该参数数据启动Spark计算任务,生成计算结果,并将生成的计算结果存储到HDFS文件系统206。上述数据报告组件204可以利用消息中间件202从HDFS文件系统206获取Spark计算任务的计算结果。具体地,客户端201在生成Spark计算任务的计算结果时,还可以相应地生成计算结果消息,该计算结果消息可以包括存储在HDFS文件系统206中的计算结果的存储位置。上述消息中间件202可以传递该计算结果消息,从而使得数据报告组件204可以根据计算结果的存储位置获取计算结果。
需要说明的是,上述消息中间件202可以包括参数消息队列2021和计算结果消息队列2022,如图2所示。上述参数数据组件203可以将生成的参数消息发送到上述参数消息队列2021,客户端201可以监听该参数消息队列2021,从而使得客户端201在监听到参数消息时可以从参数消息队列2021获取该参数消息。上述客户端201可以将生成的计算结果消息发送到计算结果消息队列2022,上述数据报告组件204可以监听计算结果消息队列2022,从而使得数据报告组件204在监听到计算结果消息时可以从计算结果消息队列2022获取该计算结果消息。
在本实施例的一些可选的实现方式中,上述参数消息除了包括参数数据的从存储位置之外,还可以包括该参数消息的唯一编码、该参数消息的消息类型、该参数消息的发布时间中的至少一种。可以理解的是,参数消息的唯一编码可以标识用于不同Spark计算任务的参数数据。参数消息的类型通常可以默认为通知消息,参数消息的类型可以用于该参数消息的扩展。参数消息的发布时间可以为该参数消息具体地发布时间。
在本实施例的一些可选的实现方式中,上述计算结果消息除了包括计算结果的存储位置之外,还可以包括该计算结果消息的唯一编码、该计算结果消息的消息类型、该计算结果消息的发布时间、该计算结果消息的成功状态。可以理解的是,计算结果消息的唯一编码可以用于标识不同Spark计算任务的计算结果,因此同一Spark计算任务中的参数消息的唯一编码和计算结果消息的唯一编码可以相同。同一Spark计算任务中的参数消息的消息类型和计算结果消息的消息类型可以相同,例如,对于同一Spark计算任务,参数消息的消息类型和计算结果消息的消息类型可以均为通知消息。计算结果消息的发布时间可以为该计算结果消息的发出时间。计算结果的成功状态可以表示Spark计算任务是否成功,其可以包括成功和失败两个状态。
通常,HDFS文件系统206中可以包括多个目录,不同文件可以存储在不同的目录下。如图2所示,HDFS文件系统206可以包括参数目录和结果报告目录,其中,参数目录可以用于存储参数数据组件203发送的参数数据,结果报告目录可以用于存储客户端201发送的计算结果。因此,在上述参数数据组件203在将参数数据配置成文本文件后,可以将该文本文件存储到HDFS文件系统206中的参数目录下,客户端201可以从参数目录下获取参数数据的文本文件。客户端201在将Spark计算任务的计算结果配置成文本文件后,可以将该文本文件存储到HDFS文件系统206中的结果报告目录,数据报告组件204可以从结果报告目录下获取计算结果的文本文件。
在本实施例的一些可选的实现方式中,上述参数数据组件203可以包括参数推送模块和参数管理模块,如图2所示。其中,参数推送模块可以负责调用参数管理模块获取参数数据,并将所获取的参数数据配置成文本文件。进一步地,参数推送模块还可以将配置的文本文件上传到HDFS文件系统206的参数目录下,并将参数消息推送到参数消息队列2021。参数管理模块可以负责采集参数数据。上述数据报告组件204可以包括报告解析模块和报告管理模块,如图2所示。其中,报告解析模块可以监听计算结果消息队列2022,并在监听到计算结果消息时根据该计算结果消息从HDFS文件系统206中的结果报告目录下获取计算结果。进一步地,报告解析模块还可以调用报告管理模块对获取的计算结果进行数据解析等处理,报告管理模块可以为计算结果的后续处理提供接口。
本申请的上述实施例提供的基于Spark的数据处理系统200,参数数据组件203可以通过参数消息队列2021与客户端201进行消息交互,从而使得客户端201可以从HDFS文件系统206获取参数数据,客户单201还可以通过计算结果消息队列2022与数据报告组件204进行消息交互,从而使得数据报告组件204可以从HDFS文件系统206获取计算结果,可见,客户端201与服务端205可以利用参数消息队列2021、计算结果消息队列2022、参数数据组件203和数据报告组件204之间的合作,完成Spark计算任务,不需对系统200进行统一维护,减少系统的维护工作量,节约了系统资源以及人力、时间成本。
接下来请参考图3,其示出了根据本申请的基于Spark的数据处理方法的一实施例的流程。本实施例中的基于Spark的数据处理方法300可以运行在如图1或图2所示的基于Spark的数据处理系统上。如图3所示,本实施例的基于Spark的数据处理方法300可以包括如下的步骤:
步骤301,利用消息中间件获取服务端存储在HDFS文件系统中的参数数据。
在本实施例中,基于Spark的数据处理方法运行于其上的电子设备(例如图1或图2中的客户端所在的服务器)可以通过有线连接方式或者无线连接方式从HDFS文件系统获取参数数据。需要说明的是,服务端在获取参数数据后可以预先将参数数据存储在HDFS文件系统中,上述电子设备与服务端可以通过消息中间件进行消息传递,从而使得电子设备可以从HDFS文件系统获取存储的参数数据。
通常,上述消息中间件可以与服务端部署在同一服务器中,此时上述电子设备可以利用消息中间件通过有线连接方式或无线连接方式直接与服务端建立通信联系。或者,上述消息中间件还可以与服务端部署在不同的服务器中,此时上述电子设备可以过有线连接方式或无线连接方式与消息中间件所在的服务器建立通信连接,上述服务端所在的服务器可以过有线连接方式或无线连接方式与上述消息中间件所在的服务器建立通信联系,从而使得电子设备可以通过消息中间件与服务端进行通信。
步骤302,根据参数数据启动Spark计算任务,生成计算结果。
在本实施例,基于步骤301获取的参数数据,上述电子设备可以启动Spark计算任务,Spark可以根据上述参数数据进行数据计算,并相应地生成计算结果。通常,在启动Spark计算任务之前,上述电子设备可以将Spark计算任务所要计算的基础数据和相关的辅助数据加载到Spark中。当Spark计算任务启动时,根据参数数据Spark可以对加载在其上的基础数据和相关辅助数据进行计算,进而生成计算结果。
步骤303,将计算结果存储到HDFS文件系统,以使服务端利用消息中间件获取并保存计算结果。
在本实施例中,基于步骤302生成的Spark计算任务的计算结果,上述电子设备可以将该计算结果存储到HDFS文件系统。服务端可以通过有线连接方式或者无线连接方式从HDFS文件系统获取Spark计算任务的计算结果。需要说明的是,上述服务端可以利用消息中间件与上述电子设备进行消息传递,以便于服务端可以从HDFS文件系统中获取计算结果。服务端在获取计算结果后,可以将其保存在其所在服务器的内存或者其它服务器上部署的数据库中。
本申请的上述实施例提供的基于Spark的数据处理方法300,通过利用消息中间件获取服务端存储在HDFS文件系统中的参数数据,而后根据参数数据启动Spark计算任务,并生成计算结果,最后将计算结果存储在HDFS文件系统中,服务端可以利用消息中间件从HDFS文件系统中获取并保存计算结果,可见服务端可以与该方法运行在其上的电子设备进行实时通信,从而使得Spark可以进行实时计算,并且利用该方法进行Spark计算可以使得研发人员仅需要关注计算逻辑,而无需耗费过多的系统资源及人力、时间成本进行运营维护。
请参考图4,其示出了根据本申请的基于Spark的数据处理方法的另一实施例的流程。如图所示,本实施例的基于Spark的数据处理方法400可以包括如下步骤:
步骤401,监听参数消息队列,以从参数消息队列获取服务端发布的参数消息。
在本实施例中,消息中间件可以包括参数消息队列和计算结果消息队列,该消息中间件与服务端可以部署在同一服务器或不同服务器中。上述服务端在获取参数数据后可以将参数数据存储到HDFS文件系统,并相应地生成参数消息,而后向消息中间件中的参数消息队列发布该参数消息,该参数消息可以包括参数数据在HDFS文件系统中的存储位置。基于Spark的数据处理方法运行于其上的电子设备(例如图1或图2中的客户端所在的服务器)可以通过有线连接方式或者无线连接方式监听上述参数消息队列,并在参数消息队列接收到服务端发布的参数消息的情况下,上述电子设备可以获取该参数消息。
在本实施例的一些可选的实现方式中,上述服务端可以部署有参数数据组件,该参数数据组件可以负责参数数据的处理。具体地,参数数据组件可以包括参数推送模块和参数管理模块,参数推送模块可以负责调用参数管理模块获取参数数据,将所获取的参数数据配置成文本文件,而后可以将配置成的文本文件上传到HDFS文件系统中,并将生成的参数消息推送到参数消息队列。
在本实施例的一些可选的实现方式中,上述HDFS文件系统可以包括多个目录,不同文件可以存储在不同的目录下。这里,HDFS文件系统可以包括参数目录,该参数目录可以存储服务端发送的参数数据。因此,上述服务端在将参数数据配置成文本文件后,可以将该文本文件存储到HDFS文件系统中的参数目录下。
步骤402,解析参数消息,以获取参数数据的存储位置。
在本实施例中,基于步骤401获取的参数消息,上述电子设备可以解析所获取的参数消息,从而使得该电子设备可以获取参数数据存储的位置。
在本实施例的一些可选的实现方式中,上述参数消息还可以包括如下中的至少一种:该数消息的唯一编码,该参数消息的消息类型,该参数消息的发布时间。
步骤403,从HDFS文件系统获取参数数据。
在本实施中,基于步骤402获取的参数数据在HDFS文件系统的存储位置,上述电子设备可以根据参数数据的存储位置从HDFS文件系统对应的目录下获取该参数数据,以便于电子设备可以利用该参数数据启动Spark计算任务。
步骤404,根据参数数据启动Spark计算任务,生成计算结果。
在本实施例中,上述电子设备在获取参数数据后,可以根据该参数数据启动Spark计算任务,以使Spark可以对预先加载其上的基础数据和相关的辅助数据等进行计算,进而生成该次计算任务的计算结果。
步骤405,将计算结果存储到HDFS文件系统。
在本实施例中,基于步骤404生成的计算结果,上述电子设备可以将其存储到HDFS文件系统。可选的,HDFS文件系统还可以包括结果报告目录,上述电子设备可以将生成的计算结果存储到HDFS文件系统的结果报告目录下。
步骤406,生成计算结果消息,将计算结果消息发布到计算结果消息队列。
在本实施例中,上述电子设备在存储生成的计算结果时,还可以相应地生成计算结果消息,而后将生成的计算结果消息发布到消息中间件中的计算结果消息队列。其中,计算结果消息可以包括计算结果在HDFS文件系统中的存储位置。
在本实施例的一些可选的实现方式中,上述计算结果消息还可以包括如下中的至少一种:该计算结果消息的唯一编码,计算结果消息的消息类型,该计算结果消息的发布时间,该计算结果的成功状态。
步骤407,响应于服务端在计算结果消息队列监听到计算结果消息,将该计算结果消息发送到服务端,以使服务端获取并保存计算结果。
在本实施例中,服务端可以负责监听消息中间列中的计算结果消息队列,并在监听到计算结果消息队列接收到计算结果消息时将监听到的计算结果消息发送到服务端。服务端可以解析该计算结果消息获取计算结果在HDFS文件系统的存储位置,并根据该计算结果的存储位置获取并保存该计算结果消息。
在本实施例的一些可选的实现方式中,上述服务端还部署有数据报告组件,该数据报告组件可以用于处理计算结果。数据报告组件可以包括报告解析模块和报告管理模块,其中,报告解析模块可以用于监听计算结果消息队列,并在监听到服务端向计算结果消息队列发布计算结果消息时,把报告解析模块可以获取并解析该该计算结果消息,得到计算结果的存储位置,并获取计算结果。报告解析模块还可以调用报告管理模块对获取的计算结果进行数据处理,报告管理模块可以为计算结果的后续处理提供接口。
在本实施例的一些可选的实现方式中,上述HDFS文件系统还可以包括结果报告目录,该结果报告目录可以用于存储上述电子设备发送的计算结果。因此,上述服务器在将计算结果配置成文本文件后可以将其存储到HDFS文件系统的结果报告目录下。上述数据报告组件在解析所获取的计算结果消息后,可以根据解析的计算结果消息从结果报告目录下获取计算结果。
本申请的上述实施例提供的基于Spark的数据处理方法400,通过利用参数消息队列获取服务端存储在HDFS文件系统中的参数数据,而后根据参数数据启动Spark计算任务,并生成计算结果,最后将计算结果存储在HDFS文件系统中,服务端可以利用计算结果消息队列从HDFS文件系统中获取计算结果,可见服务端与该方法运行在其上的电子设备可以利用参数消息队列和计算结果消息队列进行实时通信,从而使得Spark可以进行实时计算,并且利用该方法进行Spark计算无需耗费过多的系统资源及人力、时间成本。
下面参考图5,其示出了适于用来实现本申请实施例的终端设备/服务器的计算机系统500的结构示意图。图5示出的终端设备/服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的系统中所包含的;也可以是单独存在,而未装配入该系统中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该系统执行时,使得该系统:利用消息中间件获取服务端存储在HDFS文件系统中的参数数据;根据参数数据启动Spark计算任务,生成计算结果;将计算结果存储到HDFS文件系统,以使服务端利用消息中间件获取并保存计算结果。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (12)

1.一种基于Spark的数据处理系统,其特征在于,包括:
消息中间件,客户端,部署在服务端的参数数据组件和数据报告组件,其中,所述消息中间件、参数数据组件和数据报告组件相互合作,以使所述客户端和服务端交互;
所述参数数据组件,用于将获取的参数数据发送到HDFS文件系统;
所述客户端,用于利用所述消息中间件从所述HDFS文件系统获取所述参数数据,根据所述参数数据启动Spark计算任务,生成计算结果,并将所述计算结果发送到所述HDFS文件系统;
所述数据报告组件,用于利用所述消息中间件从所述HDFS文件系统获取所述计算结果,并保存所述计算结果。
2.根据权利要求1所述的系统,其特征在于,所述消息中间件包括参数消息队列和计算结果消息队列;
所述参数数据组件还用于生成参数消息,并将所述参数消息发布到所述参数消息队列,其中,所述参数消息包括存储在HDFS文件系统中的所述参数数据的存储位置;
所述客户端还用于生成计算结果消息,并将所述计算结果消息发布到所述计算结果消息队列,其中,所述计算结果消息包括所述计算结果的存储位置。
3.根据权利要求2所述的系统,其特征在于,所述客户端用于监听所述参数消息队列,以获取并解析监听到的所述参数消息;
所述数据报告组件用于监听所述计算结果消息队列,以获取并解析所述计算结果消息。
4.根据权利要求1所述的系统,其特征在于,所述参数消息还包括如下中的至少一种:
所述参数消息的唯一编码;
所述参数消息的消息类型;
所述参数消息的发布时间。
5.根据权利要求1所述的系统,其特征在于,所述计算结果消息还包括如下中的至少一种:
所述计算结果消息的唯一编码;
所述计算结果消息的消息类型;
所述计算结果消息的发布时间;
所述计算结果的成功状态。
6.一种基于Spark的数据处理方法,其特征在于,包括:
利用消息中间件获取服务端中参数数据组件存储在HDFS文件系统中的参数数据;
根据所述参数数据启动Spark计算任务,生成计算结果;
将所述计算结果存储到所述HDFS文件系统,以使所述服务端利用所述消息中间件获取并保存所述计算结果到所述服务端的数据报告组件。
7.根据权利要求6所述的方法,其特征在于,所述消息中间件包括参数消息队列和计算结果消息队列;
所述利用消息中间件获取服务端存储在HDFS文件系统中的参数数据,包括:
监听所述参数消息队列,以从所述参数消息队列获取所述服务端发布的参数消息,其中,所述参数消息包括存储在HDFS文件系统中的参数数据的存储位置;
解析所述参数消息,以获取所述参数数据的存储位置;
从所述HDFS文件系统获取所述参数数据。
8.根据权利要求7所述的方法,其特征在于,所述将所述计算结果存储到所述HDFS文件系统,以使所述服务端利用所述消息中间件获取并保存所述计算结果,包括:
将所述计算结果存储到所述HDFS文件系统;
生成计算结果消息,将所述计算结果消息发布到所述计算结果消息队列,其中,所述计算结果消息包括所述计算结果的存储位置;
响应于所述服务端在所述计算结果消息队列监听到所述计算结果消息,将该所述计算结果消息发送到所述服务端,以使所述服务端获取并保存所述计算结果。
9.根据权利要求6所述的方法,其特征在于,所述参数消息还包括如下中的至少一种:
所述参数消息的唯一编码;
所述参数消息的消息类型;
所述参数消息的发布时间。
10.根据权利要求6所述的方法,其特征在于,所述计算结果消息还包括如下中的至少一种:
所述计算结果消息的唯一编码;
所述计算结果消息的消息类型;
所述计算结果消息的发布时间;
所述计算结果的成功状态。
11.一种服务器,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求6-10中任一所述的方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求6-10中任一所述的方法。
CN201710897600.6A 2017-09-28 2017-09-28 基于Spark的数据处理系统和方法 Active CN107682432B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710897600.6A CN107682432B (zh) 2017-09-28 2017-09-28 基于Spark的数据处理系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710897600.6A CN107682432B (zh) 2017-09-28 2017-09-28 基于Spark的数据处理系统和方法

Publications (2)

Publication Number Publication Date
CN107682432A CN107682432A (zh) 2018-02-09
CN107682432B true CN107682432B (zh) 2020-12-22

Family

ID=61138336

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710897600.6A Active CN107682432B (zh) 2017-09-28 2017-09-28 基于Spark的数据处理系统和方法

Country Status (1)

Country Link
CN (1) CN107682432B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108449216A (zh) * 2018-04-09 2018-08-24 中科微至智能制造科技江苏有限公司 一种基于Spark技术的物流分拣数据统计方法
CN113821513A (zh) * 2021-09-18 2021-12-21 阿里巴巴(中国)有限公司 数据处理方法、设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10902464B2 (en) * 2013-08-27 2021-01-26 Verizon Media Inc. Spark satellite clusters to HADOOP data stores
CN106371366A (zh) * 2016-09-22 2017-02-01 南京中新赛克科技有限责任公司 基于arm架构的大数据采集与分析平台

Also Published As

Publication number Publication date
CN107682432A (zh) 2018-02-09

Similar Documents

Publication Publication Date Title
CN109145023B (zh) 用于处理数据的方法和装置
CN112860451A (zh) 一种基于SaaS的多租户数据处理方法和装置
CN108833510B (zh) 消息处理方法和装置
CN111190888A (zh) 一种管理图数据库集群的方法和装置
US11934287B2 (en) Method, electronic device and computer program product for processing data
CN110806931A (zh) 分布式服务的调用链路跟踪实现方法、装置及电子设备
CN110888639A (zh) 一种业务代码编译打包方法和装置
CN107682432B (zh) 基于Spark的数据处理系统和方法
CN109873731B (zh) 测试方法、装置和系统
CN110737655B (zh) 用于上报数据的方法和装置
CN111831503B (zh) 一种基于监控代理的监控方法和监控代理装置
CN110059064B (zh) 日志文件处理方法、装置和计算机可读存储介质
CN113296828B (zh) 一种发布应用的方法、服务器和系统
CN109218338B (zh) 信息处理系统、方法和装置
CN112579447A (zh) 一种浏览器测试方法和装置
CN112558933A (zh) 组件渲染方法、装置、可读介质及电子设备
CN109144864B (zh) 用于测试窗口的方法及装置
CN112948138A (zh) 一种处理消息的方法和装置
CN113141403B (zh) 一种日志传输方法和装置
CN113114612B (zh) 分布式系统调用链的确定方法和装置
CN116560918A (zh) 一种压力测试方法、装置、设备及介质
CN112559001B (zh) 更新应用的方法和装置
CN113094268A (zh) 测试方法、装置、设备、介质和程序产品
CN113132447A (zh) 反向代理的方法和系统
CN110633182A (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
GR01 Patent grant
GR01 Patent grant