CN113190528B - 一种并行分布式大数据架构构建方法及系统 - Google Patents
一种并行分布式大数据架构构建方法及系统 Download PDFInfo
- Publication number
- CN113190528B CN113190528B CN202110440139.8A CN202110440139A CN113190528B CN 113190528 B CN113190528 B CN 113190528B CN 202110440139 A CN202110440139 A CN 202110440139A CN 113190528 B CN113190528 B CN 113190528B
- Authority
- CN
- China
- Prior art keywords
- serialization
- data
- kafka
- strategy
- configuration
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种并行分布式大数据架构构建方法及系统。所述并行分布式大数据架构构建方法包括生产者端的搭建及数据连接器端的搭建,所述生产者端的搭建方法包括:加载指定的序列化策略;完成生产属性配置;对预备发送数据进行avro序列化;对avro序列化后的数据进行内存填充,并形成kafka消息,发送至kafka消息队列中;数据连接器端的搭建方法包括:读取Dataframe,并完成预置的组态配置;加载指定序列化策略并执行反序列化;使用spark微批处理形式进行数据库或数据表的写入。本申请解决了国产超级计算机不能持久化存储海量数据的问题。
Description
技术领域
本发明涉及并行技术与大数据处理技术领域,具体涉及一种并行分布式大数据架构构建方法以及并行分布式大数据架构构建系统。
背景技术
国产超级计算机采用异构众核的体系架构,与大数据生态环境依赖的硬件架构不同,其具有片上计算核心集群化和分布式共享存储相结合的特点,因此,面向国产超级计算机的大数据平台构建存在极大的挑战。
国产超级计算机上难以实现持久化存储,但国产大数据仓储系统包含存储服务器、存储管理服务器、数据中转服务器、用户登录服务器等国产设备,系统通过一台万兆网络交换机实现内部互联,实现10Gbps的全连接数据交换。国产存储服务器包含了大容量的磁盘,实现超大规模的数据存储;国产元数据服务器包含高性能的SSD存储盘,提供高速的元数据访问;国产用户登录服务器为有保密需求的用户提供登录服务;国产数据中转服务器支撑用户数据的导入与导出。
目前,面向国产超算的并行分布式大数据架构的需求主要体现在两个方面:
(1)如何构建高效处理低延时的并行分布式大数据架构。
(2)国产超算具有高性能计算能力,需要将应用程序产生的海量多源异构数据实时共享到其他软件生态环境中。
综上,现有的国产超级计算机具有不能持久化存储海量数据的问题。
发明内容
本发明的目的在于提供一种并行分布式大数据架构构建方法,来克服或至少减轻现有技术的至少一个上述缺陷。
本发明的一个方面,提供一种并行分布式大数据架构构建方法,所述并行分布式大数据架构构建方法包括:
在即将运行的MPI进程中加载指定的序列化策略;
通过kafka生产者MPI进程组的各个进程完成各kafka生产者的生产属性配置;
通过所述kafka生产者MPI进程组的各个进程进行序列化策略的类型转化,对预备发送数据进行avro序列化;
基于缓存的序列化策略元信息对avro序列化后的数据进行内存填充,并形成kafka消息,发送至kafka消息队列中;
所述数据连接器端的搭建方法包括:
通过spark-sql-kafka集成模块以流方式从kafka数据源读取Dataframe,并完成预置的组态配置;
从schema registry端加载指定的kafka数据源topic键、值avro序列化策略,并执行反序列化;
使用spark微批处理形式,将反序列化后Kafak数据流批量写入GreenPlum目标数据库或数据表中。
可选地,所述在即将运行的MPI进程中加载指定的序列化策略包括:
创建kafka生产者MPI进程组和通信域;
选取MPI进程组中的一个MPI进程作为主进程,构建所述主进程与SchemaRegistry端的通信,加载指定的序列化策略;
将所述主进程中的序列化策略广播至Kafka生产者MPI进程组中的其它所有即将运行的MPI进程。
可选地,加载指定的序列化策略包括:
调用libserdes库中的serdes_schema_get函数从指定位置进行加载,若指定位置不存在所述序列化策略,则调用libserdes库中的serdes_schema_add函数将序列化策略定义添加至指定位置,所述指定位置为本地缓存或所述schema registry端。
可选地,将所述主进程中的序列化策略广播包括:
调用MPI_BCAST函数将序列化策略进行广播。
可选地,完成各kafka生产者的生产属性配置,包括:
完成服务器列表的配置;
完成消息生产批处理最小本地队列大小的配置;以及
完成消息生产本地队列最长等待时间。
可选地,进行序列化策略的类型转化包括:
调用avro-c库中的相关函数将本地缓存的序列化策略转化为avro数据序列化系统相关的avro_schema_t结构体类型。
可选地,所述执行反序列化后进一步包括:
执行所需的动作、转换、连接、分组、聚合的结构化数据操作。
可选地,将反序列化后Kafak数据流批量写入GreenPlum目标数据库或数据表中之前包括配置目标GreenPlum数据源,所述配置目标GreenPlum数据源包括:
调用GreenPlum-spark-connector集成模块,使用GreenPlum数据源,完成预置的数据库组态配置,所述数据库组态配置包括数据库JDBC URL、数据库目标schema、数据表、JDBC驱动、数据库用户名、数据库用户密码。
本申请还提供了一种并行分布式大数据架构构建系统,包括生产者端的搭建模块及数据连接器端的搭建模块,所述生产者端的搭建模块包括:
序列化策略加载单元,用于在即将运行的MPI进程中加载指定的序列化策略;
生产属性配置单元,用于通过所述kafka生产者MPI进程组的各个进程完成各kafka生产者的生产属性配置;
avro序列化单元,用于通过所述kafka生产者MPI进程组的各个进程进行序列化策略的类型转化,对预备发送数据进行avro序列化;
kafka消息生产单元,用于基于缓存的序列化策略元信息对avro序列化后的数据进行内存填充,并形成kafka消息,发送至kafka消息队列中;
所述数据连接器端的搭建模块包括:
组态配置单元,用于通过spark-sql-kafka集成模块以流方式从kafka数据源读取Dataframe,并完成预置的组态配置;
反序列化单元,用于从所述schema registry端加载指定的kafka数据源topic键、值avro序列化策略,并执行反序列化;
微批处理单元,用于使用spark微批处理形式,将反序列化后Kafak数据流批量写入GreenPlum目标数据库或数据表中。
可选地,所述序列化策略加载单元包括:
MPI进程组及通信域假设子单元,用于创建kafka生产者MPI进程组和通信域;
指定的序列化策略加载子单元,用于选取MPI进程组中的一个MPI进程作为主进程,构建所述主进程与Schema Registry端的通信,加载指定的序列化策略;
广播子单元,用于将所述主进程中的序列化策略广播至Kafka生产者MPI进程组中的其它所有即将运行的MPI进程。
有益效果
本申请的并行分布式大数据架构构建方法充分发挥国产超级计算机的高性能计算以及大数据可处理海量数据存储、流数据实时计算的优点,解决国产超级计算机不能持久化存储海量数据的问题。
附图说明
图1为本发明第一实施例的并行分布式大数据架构构建方法的生产者端流程示意图;
图2为本发明第一实施例的并行分布式大数据架构构建方法的数据连接器端流程示意图;
图3是本申请生产者端数据流处理过程图;
图4是本申请XFusionDB-Spark连接器架构示意图;
图5是本申请面向国产超级计算机的并行分布式大数据架构图。
具体实施方式
为使本申请实施的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行更加详细的描述。在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施例是本申请一部分实施例,而不是全部的实施例。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。下面结合附图对本申请的实施例进行详细说明。
在本申请的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、 “前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请保护范围的限制。
本发明公开了一种并行分布式大数据架构,所述架构包括:kafka生产者端和面向国产分布式大数据仓储的Kafka-Spark-GreenPlum数据连接器端。所述的kafka生产者端消息队列发送至数据连接器端,从而打通国产超级计算机软件生态环境与大数据生态环境。所述kafka生产者端采用libkafka多线程库实现;所述数据连接器端由大数据软件技术栈kafka、spark结构化流处理以及国产大数据仓库XFusionDB组成。所述Spark结构化流处理和kafka集成串连国产超算和国产分布式大数据仓库系统,并提供大数据分析引擎。
参考图1及图2,其示出了本发明第一实施例的并行分布式大数据架构构建的构建流程。
本申请的并行分布式大数据架构构建,包括kafka生产者端与数据连接器端。所述的kafka生产者端消息队列发送至大数据生态端,从而打通国产超级计算机软件生态环境与大数据生态环境。
在一个实施例中,首先,在超级超算环境下完成主要相关依赖库jansson、libcurl、avro-c、libserdes、librdkafka的移植。
如图1所示的并行分布式大数据架构构建方法中的生产者端的设计流程,主要包括:
在即将运行的MPI进程中加载指定的序列化策略;
通过kafka生产者MPI进程组的各个进程完成各kafka生产者的生产属性配置;
通过所述kafka生产者MPI进程组的各个进程进行序列化策略的类型转化,对预备发送数据进行avro序列化;
基于缓存的序列化策略元信息对avro序列化后的数据进行内存填充,并形成kafka消息,发送至kafka消息队列中;
如图2所示的并行分布式大数据架构构建方法中的数据连接器端的的设计流程,主要包括:
通过spark-sql-kafka集成模块以流方式从kafka数据源读取Dataframe,并完成预置的组态配置;
从schema registry端加载指定的kafka数据源topic键、值avro序列化策略,并执行反序列化;
使用spark微批处理形式,将反序列化后Kafak数据流批量写入GreenPlum目标数据库或数据表中。
通过上述步骤,本发明基于国产超级计算机与国产分布式大数据仓库引入大数据流处理技术,充分发挥国产超级计算机的高性能计算以及大数据可处理海量数据存储、流数据实时计算的优点,解决了国产超级计算机不能持久化存储海量数据的问题。
本申请第一方面考虑了数据存储的时效性,其中,kafka是以数据流为中心的架构,可以轻松处理巨大的消息流,具有高性能、持久化、多副本备份、横向扩展能力。另一方面,本申请考虑了数据存储的海量性,Greenplum是一个开源的大规模并行处理数据库服务器,专门设计用于管理大型分析数据仓库和商业智能工作负载。国产化大数据仓库XFusionDB是GreenPlum大数据仓储的硬件基座(申威)国产化(自主、可控)的封装,也是本发明用于持久化存储数据的核心模块。GreenPlum对 kafka流处理支持不够完备,而Spark是专为大规模数据处理而设计的快速通用的计算引擎,使用最先进的DAG调度器、查询优化器和物理执行引擎,为批处理和流数据实现高性能,可用来构建大型的、低延迟的数据分析应用程序,并提供大数据分析引擎。
本发明利用国产超级计算机的算力优势与大数据技术跨领域有效的结合,盘活国产超级计算机产生的数据,进而打破国产超级计算机的软件生态环境和大数据生态环境相互独立。
以下结合附图分别对生产者端及连接器端进行详细说明。
首先参考图3,在生产者端,在一个具体实施例中,在即将运行的MPI进程中加载指定的序列化策略包括:
创建kafka生产者MPI进程组和通信域;
选取MPI进程组中的一个MPI进程作为主进程,构建所述主进程与SchemaRegistry端的通信,加载指定的序列化策略;
将所述主进程中的序列化策略广播至Kafka生产者MPI进程组中的其它所有即将运行的MPI进程。
在一个具体实施例中,加载指定的序列化策略包括:
调用libserdes库中的serdes_schema_get函数从指定位置进行加载,若指定位置不存在所述序列化策略,则调用libserdes库中的serdes_schema_add函数将序列化策略定义添加至指定位置,指定位置为本地缓存或schema registry端。
举例来说,选取MPI进程组中的一个MPI进程与Schema Registry进行通信,若需要注册新的序列化策略,则该MPI进程调用libserdes库中的serdes_schema_add函数将序列化策略定义添加到本地缓存,并将该策略存储到schema registry;否则,该MPI进程调用libserdes库中的serdes_schema_get函数从本地缓存或schema registry加载指定的序列化策略。
在一个具体实施例中,将主进程中的序列化策略广播包括:
调用MPI_BCAST函数将序列化策略进行广播。
具体地,调用MPI_BCAST函数将序列化策略广播至所有即将运行Kafka生产者MPI进程组。
在一个具体实施例中,完成各kafka生产者的生产属性配置,包括:
完成服务器列表的配置;
完成消息生产批处理最小本地队列大小的配置;以及
完成消息生产本地队列最长等待时间。
具体而言,Kafka生产者进程组各个进程调用librdkafka库中的rd_kafka_conf_set等函数,完成kafka生产者配置:kafka服务器列表bootstrap.servers 、消息生产批处理最小本地队列大小batch.num.messages、消息生产本地队列最长等待时间queue.buffering.max.ms等。
在一个具体实施例中,进行序列化策略的类型转化包括:
调用avro-c库中的相关函数将本地缓存的序列化策略转化为avro数据序列化系统相关的avro_schema_t结构体类型。
具体地,Kafka生产者进程组各个进程调用avro-c库中的avro_schema_from_json、avro_schema_from_json_literal等函数将本地缓存的序列化策略转化为avro相关avro_schema_t结构体类型,并调用avro_generic_class_from_schema、avro_value_get_by_name、avro_value_set等函数,完成对预备发送数据的avro序列化,返回avro_value_t类型结构体数据。
在一个具体实施例中,缓存的序列化策略元信息对avro序列化后的数据进行内存填充,完成对预备发送数据的serdes封装,并返回相关内存区域首地址指针和大小;
在一个具体实施例中,Kafka生产者进程组各个进程调用librdkafka库中的rd_kafka_produce等函数,将已完成avro序列化和serdes元信息封装后的内存区域作为kafka消息,发送至kafka消息队列。
参考图4,在连接器端执行的步骤中,针对国产超级超级计算机系统无互联网环境的特性,作为构建数据连接器的必要前提,本申请首先调用gradle编译工具shadowJar插件将主要相关依赖打包为Uber-Jar,如spark-sql、spark-sql-kafka、abris、sparkdataframe、greenPlum-spark-connector等。
之后,数据连接器调用spark-sql-kafka集成模块,spark以流方式从kafka数据源读取Dataframe,并完成如下组态配置:
其中,上表中在标有*的三个配置项中,选取其中一个作为kafka数据源的目标topic。
进一步的,Kafka作为Spark数据源时,其每行数据逻辑结构如下:
在一个具体实施例中,数据连接器调用abris集成模块,spark从schema registry加载指定的kafka数据源topic键、值avro序列化策略,并返回abrisConfig类型数据。
在本实施例中,执行反序列化后进一步包括:
执行所需的动作、转换、连接、分组、聚合的结构化数据操作。
具体地,将反序列化后Kafak数据流批量写入GreenPlum目标数据库或数据表中之前包括配置目标GreenPlum数据源,所述配置目标GreenPlum数据源包括:
调用GreenPlum-spark-connector集成模块,使用GreenPlum数据源,完成预置的数据库组态配置,所述数据库组态配置包括数据库JDBC URL、数据库目标schema、数据表、JDBC驱动、数据库用户名、数据库用户密码。
举例来说,数据连接器调用spark-sql模块,并使用已加载的abrisConfig数据,将读取自kafka数据源的Dataframe的键、值列执行反序列化,并执行所需的动作、转换、连接、分组、聚合等结构化数据操作;
在一个具体实施例中,数据连接器调用GreenPlum-spark-connector集成模块,使用GreenPlum数据源,并完成如下组态配置:
在一个具体实施例中,GreenPlum-spark-connector集成模块不支持spark流式写入,因此,数据连接器使用spark微批处理形式,将反序列化后Kafak数据流的批量写入组件配置指定的GreenPlum目标数据库/表;
本申请的一个可选实施方式中,面向国产大数据仓库XFusionDB提供轻量级的消息订阅与推送服务。用户可订阅列数据存储中的某一张表。订阅的逻辑和操作状态的维护均是由客户端完成,客户端定时轮询服务器是否有新的记录到达,有新的记录到达就会将结果反馈到客户。
本申请的提出不仅盘活国产超级计算机产生的数据,进而打破国产超级计算机的软件生态环境和大数据生态环境相互独立,并且对于多源异构的海洋大数据的收集、管理和分析具备较高工程意义和科研价值。
如图5所示,本申请还提供了一种并行分布式大数据架构构建系统,包括生产者端的搭建模块及数据连接器端的搭建模块,所述生产者端的搭建模块包括序列化策略加载单元,生产属性配置单元,avro序列化单元,kafka消息生产单元、组态配置单元、反序列化单元以及微批处理单元,其中,
序列化策略加载单元用于在即将运行的MPI进程中加载指定的序列化策略;
生产属性配置单元用于通过所述kafka生产者MPI进程组的各个进程完成各kafka生产者的生产属性配置;
avro序列化单元用于通过所述kafka生产者MPI进程组的各个进程进行序列化策略的类型转化,对预备发送数据进行avro序列化;
kafka消息生产单元用于基于缓存的序列化策略元信息对avro序列化后的数据进行内存填充,并形成kafka消息,发送至kafka消息队列中;
所述数据连接器端的搭建模块包括:
组态配置单元用于通过spark-sql-kafka集成模块以流方式从kafka数据源读取Dataframe,并完成预置的组态配置;
反序列化单元用于从所述schema registry端加载指定的kafka数据源topic键、值avro序列化策略,并执行反序列化;
微批处理单元用于使用spark微批处理形式,将反序列化后Kafak数据流批量写入GreenPlum目标数据库或数据表中。
在本实施例中,所述序列化策略加载单元包括MPI进程组及通信域假设子单元、指定的序列化策略加载子单元以及广播子单元,
MPI进程组及通信域假设子单元用于创建kafka生产者MPI进程组和通信域;
指定的序列化策略加载子单元用于选取MPI进程组中的一个MPI进程作为主进程,构建所述主进程与Schema Registry端的通信,加载指定的序列化策略;
广播子单元用于将所述主进程中的序列化策略广播至Kafka生产者MPI进程组中的其它所有即将运行的MPI进程。
本申请虽然以较佳实施例公开如上,但其实并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此,本申请的保护范围应当以本申请权利要求所界定的范围为准。
本申请还提供了一种电子设备,包括存储器、处理器以及存储在存储器中并能够在处理器上运行的计算机程序,处理器执行计算机程序时实现如上的并行分布式大数据架构构建方法。
举例来说,电子设备包括输入设备、输入接口、中央处理器、存储器、输出接口以及输出设备。其中,输入接口、中央处理器、存储器以及输出接口通过总线相互连接,输入设备和输出设备分别通过输入接口和输出接口与总线连接,进而与计算设备的其他组件连接。具体地,输入设备接收来自外部的输入信息,并通过输入接口将输入信息传送到中央处理器;中央处理器基于存储器中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器中,然后通过输出接口将输出信息传送到输出设备;输出设备将输出信息输出到计算设备的外部供用户使用。
本申请还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时能够实现如上的并行分布式大数据架构构建方法。
本申请虽然以较佳实施例公开如上,但其实并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此,本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动,媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数据多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
此外,显然“包括”一词不排除其他单元或步骤。装置权利要求中陈述的多个单元、模块或装置也可以由一个单元或总装置通过软件或硬件来实现。第一、第二等词语用来标识名称,而不标识任何特定的顺序。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,模块、程序段、或代码的一部分包括一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地标识的方框实际上可以基本并行地执行,他们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或总流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在本实施例中所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路 (Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现装置/终端设备的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
在本实施例中,装置/终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。
最后需要指出的是:以上实施例仅用以说明本发明的技术方案,而非对其限制。尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (5)
1.一种并行分布式大数据架构构建方法,其特征在于,包括生产者端的搭建及数据连接器端的搭建,所述生产者端的搭建方法包括:
在即将运行的MPI进程中加载指定的序列化策略;
通过kafka生产者MPI进程组的各个进程完成各kafka生产者的生产属性配置;
通过所述kafka生产者MPI进程组的各个进程进行序列化策略的类型转化,对预备发送数据进行avro序列化;
基于缓存的序列化策略元信息对avro序列化后的数据进行内存填充,并形成kafka消息,发送至kafka消息队列中;
所述数据连接器端的搭建方法包括:
通过spark-sql-kafka集成模块以流方式从kafka数据源读取Dataframe,并完成预置的组态配置,其中,所述组态配置包括:自如下三个配置项中的一个作为kafka数据源的目标topic,所述配置项包括assign*、subscribe*、subscribePattern*;
从schema registry端加载指定的kafka数据源topic键、值avro序列化策略,并执行反序列化;
使用spark微批处理形式,将反序列化后Kafak数据流批量写入GreenPlum目标数据库或数据表中;所述在即将运行的MPI进程中加载指定的序列化策略包括:
创建kafka生产者MPI进程组和通信域;
选取MPI进程组中的一个MPI进程作为主进程,构建所述主进程与Schema Registry端的通信,加载指定的序列化策略;
将所述主进程中的序列化策略广播至Kafka生产者MPI进程组中的其它所有即将运行的MPI进程;加载指定的序列化策略包括:
调用libserdes库中的serdes_schema_get函数从指定位置进行加载,若指定位置不存在所述序列化策略,则调用libserdes库中的serdes_schema_add函数将序列化策略定义添加至指定位置,所述指定位置为本地缓存或所述schema registry端;将所述主进程中的序列化策略广播包括:
调用MPI_BCAST函数将序列化策略进行广播;完成各kafka生产者的生产属性配置,包括:
完成服务器列表的配置;
完成消息生产批处理最小本地队列大小的配置;以及
完成消息生产本地队列最长等待时间的配置。
2.如权利要求1所述的并行分布式大数据架构构建方法,其特征在于,进行序列化策略的类型转化包括:
调用avro-c库中的相关函数将本地缓存的序列化策略转化为avro数据序列化系统相关的avro_schema_t结构体类型。
3.如权利要求1所述的并行分布式大数据架构构建方法,其特征在于,所述执行反序列化后进一步包括:
执行所需的动作、转换、连接、分组、聚合的结构化数据操作。
4.如权利要求1所述的并行分布式大数据架构构建方法,其特征在于,将反序列化后Kafak数据流批量写入GreenPlum目标数据库或数据表中之前包括配置目标GreenPlum数据源,所述配置目标GreenPlum数据源包括:
调用GreenPlum-spark-connector集成模块,使用GreenPlum数据源,完成预置的数据库组态配置,所述数据库组态配置包括数据库JDBC URL、数据库目标schema、数据表、JDBC驱动、数据库用户名、数据库用户密码。
5.一种并行分布式大数据架构构建系统,其特征在于,包括生产者端的搭建模块及数据连接器端的搭建模块,所述生产者端的搭建模块包括:
序列化策略加载单元,用于在即将运行的MPI进程中加载指定的序列化策略;
生产属性配置单元,用于通过kafka生产者MPI进程组的各个进程完成各kafka生产者的生产属性配置;
avro序列化单元,用于通过所述kafka生产者MPI进程组的各个进程进行序列化策略的类型转化,对预备发送数据进行avro序列化;
kafka消息生产单元,用于基于缓存的序列化策略元信息对avro序列化后的数据进行内存填充,并形成kafka消息,发送至kafka消息队列中;
所述数据连接器端的搭建模块包括:
组态配置单元,用于通过spark-sql-kafka集成模块以流方式从kafka数据源读取Dataframe,并完成预置的组态配置,其中,所述组态配置包括:自如下三个配置项中的一个作为kafka数据源的目标topic,所述配置项包括assign*、subscribe*、subscribePattern*;
反序列化单元,用于从schema registry端加载指定的kafka数据源topic键、值avro序列化策略,并执行反序列化;
微批处理单元,用于使用spark微批处理形式,将反序列化后Kafak数据流批量写入GreenPlum目标数据库或数据表中;所述序列化策略加载单元包括:
MPI进程组及通信域假设子单元,用于创建kafka生产者MPI进程组和通信域;
指定的序列化策略加载子单元,用于选取MPI进程组中的一个MPI进程作为主进程,构建所述主进程与Schema Registry端的通信,加载指定的序列化策略;
广播子单元,用于将所述主进程中的序列化策略广播至Kafka生产者MPI进程组中的其它所有即将运行的MPI进程;其中,
加载指定的序列化策略包括:
调用libserdes库中的serdes_schema_get函数从指定位置进行加载,若指定位置不存在所述序列化策略,则调用libserdes库中的serdes_schema_add函数将序列化策略定义添加至指定位置,所述指定位置为本地缓存或所述schema registry端;将所述主进程中的序列化策略广播包括:
调用MPI_BCAST函数将序列化策略进行广播;完成各kafka生产者的生产属性配置,包括:
完成服务器列表的配置;
完成消息生产批处理最小本地队列大小的配置;以及
完成消息生产本地队列最长等待时间的配置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110440139.8A CN113190528B (zh) | 2021-04-21 | 2021-04-21 | 一种并行分布式大数据架构构建方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110440139.8A CN113190528B (zh) | 2021-04-21 | 2021-04-21 | 一种并行分布式大数据架构构建方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113190528A CN113190528A (zh) | 2021-07-30 |
CN113190528B true CN113190528B (zh) | 2022-12-06 |
Family
ID=76978330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110440139.8A Active CN113190528B (zh) | 2021-04-21 | 2021-04-21 | 一种并行分布式大数据架构构建方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113190528B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220374398A1 (en) * | 2021-05-24 | 2022-11-24 | Red Hat, Inc. | Object Creation from Schema for Event Streaming Platform |
CN114490834B (zh) * | 2022-04-07 | 2022-06-21 | 梯度云科技(北京)有限公司 | 基于Kubernetes更换大数据计算作业数据源的方法及装置 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019671A (zh) * | 2012-10-08 | 2013-04-03 | 中国科学院对地观测与数字地球科学中心 | 面向数据密集型遥感图像处理的泛型编程的框架编程方法 |
CN103401934A (zh) * | 2013-08-06 | 2013-11-20 | 广州唯品会信息科技有限公司 | 获取日志数据的方法和系统 |
CN106201848A (zh) * | 2016-06-30 | 2016-12-07 | 北京奇虎科技有限公司 | 一种实时计算平台的日志处理方法和装置 |
CN107026880A (zh) * | 2016-02-01 | 2017-08-08 | 北京京东尚科信息技术有限公司 | 数据同步方法和装置 |
CN107229670A (zh) * | 2017-04-10 | 2017-10-03 | 中国科学院信息工程研究所 | 基于Avro的通用数据序列化及反序列化方法 |
CN109426574A (zh) * | 2017-08-31 | 2019-03-05 | 华为技术有限公司 | 分布式计算系统,分布式计算系统中数据传输方法和装置 |
CN110019240A (zh) * | 2017-12-29 | 2019-07-16 | 中国移动通信集团北京有限公司 | 一种业务数据交互方法、装置及系统 |
CN110569406A (zh) * | 2019-07-25 | 2019-12-13 | 北京明朝万达科技股份有限公司 | 一种可配置化的热点数据自动分析方法、装置、系统及介质 |
CN110647579A (zh) * | 2019-08-16 | 2020-01-03 | 北京百度网讯科技有限公司 | 数据同步方法及装置、计算机设备与可读介质 |
CN111262915A (zh) * | 2020-01-10 | 2020-06-09 | 北京东方金信科技有限公司 | 一种跨Kafka集群的数据转换系统和方法 |
CN111405032A (zh) * | 2020-03-12 | 2020-07-10 | 威海精讯畅通电子科技有限公司 | 一种工业物联网通用云平台 |
CN111736509A (zh) * | 2020-07-11 | 2020-10-02 | 埃安美(苏州)物联技术有限公司 | 一种基于物联网的智慧楼宇控制系统 |
CN111930568A (zh) * | 2020-08-05 | 2020-11-13 | 上海英方软件股份有限公司 | 一种基于Avro的结构化数据序列化传输方法及装置 |
CN112020034A (zh) * | 2020-10-30 | 2020-12-01 | 深圳市爱夫卡科技股份有限公司 | 一种4G/5GT-Box车联网环保监测服务器、系统及方法 |
CN112182036A (zh) * | 2020-09-15 | 2021-01-05 | 中信银行股份有限公司 | 数据的发送与写入方法、装置、电子设备及可读存储介质 |
CN112486473A (zh) * | 2020-11-30 | 2021-03-12 | 中国电子科技集团公司第二十八研究所 | 基于Kafka和Redis的准实时目标航迹显示方法 |
CN112527801A (zh) * | 2020-12-21 | 2021-03-19 | 中国人民银行清算总中心 | 关系型数据库与大数据系统间的数据同步方法及系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7917463B2 (en) * | 2008-10-10 | 2011-03-29 | Business.Com, Inc. | System and method for data warehousing and analytics on a distributed file system |
CN105608223B (zh) * | 2016-01-12 | 2019-04-30 | 北京中交兴路车联网科技有限公司 | 针对kafka的Hbase数据库的入库方法和系统 |
CN107015872B (zh) * | 2016-12-09 | 2018-03-16 | 上海壹账通金融科技有限公司 | 监控数据的处理方法及装置 |
US11321337B2 (en) * | 2018-06-04 | 2022-05-03 | Cisco Technology, Inc. | Crowdsourcing data into a data lake |
CN110019635A (zh) * | 2019-04-10 | 2019-07-16 | 华夏天信(北京)智能低碳技术研究院有限公司 | 一种基于red-mos的煤矿信息化领域系统模型的构建方法 |
CN111061715B (zh) * | 2019-12-16 | 2022-07-01 | 北京邮电大学 | 基于Web和Kafka的分布式数据集成系统及方法 |
CN111666490A (zh) * | 2020-04-28 | 2020-09-15 | 中国平安财产保险股份有限公司 | 基于kafka的信息推送方法、装置、设备及存储介质 |
-
2021
- 2021-04-21 CN CN202110440139.8A patent/CN113190528B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019671A (zh) * | 2012-10-08 | 2013-04-03 | 中国科学院对地观测与数字地球科学中心 | 面向数据密集型遥感图像处理的泛型编程的框架编程方法 |
CN103401934A (zh) * | 2013-08-06 | 2013-11-20 | 广州唯品会信息科技有限公司 | 获取日志数据的方法和系统 |
CN107026880A (zh) * | 2016-02-01 | 2017-08-08 | 北京京东尚科信息技术有限公司 | 数据同步方法和装置 |
CN106201848A (zh) * | 2016-06-30 | 2016-12-07 | 北京奇虎科技有限公司 | 一种实时计算平台的日志处理方法和装置 |
CN107229670A (zh) * | 2017-04-10 | 2017-10-03 | 中国科学院信息工程研究所 | 基于Avro的通用数据序列化及反序列化方法 |
CN109426574A (zh) * | 2017-08-31 | 2019-03-05 | 华为技术有限公司 | 分布式计算系统,分布式计算系统中数据传输方法和装置 |
CN110019240A (zh) * | 2017-12-29 | 2019-07-16 | 中国移动通信集团北京有限公司 | 一种业务数据交互方法、装置及系统 |
CN110569406A (zh) * | 2019-07-25 | 2019-12-13 | 北京明朝万达科技股份有限公司 | 一种可配置化的热点数据自动分析方法、装置、系统及介质 |
CN110647579A (zh) * | 2019-08-16 | 2020-01-03 | 北京百度网讯科技有限公司 | 数据同步方法及装置、计算机设备与可读介质 |
CN111262915A (zh) * | 2020-01-10 | 2020-06-09 | 北京东方金信科技有限公司 | 一种跨Kafka集群的数据转换系统和方法 |
CN111405032A (zh) * | 2020-03-12 | 2020-07-10 | 威海精讯畅通电子科技有限公司 | 一种工业物联网通用云平台 |
CN111736509A (zh) * | 2020-07-11 | 2020-10-02 | 埃安美(苏州)物联技术有限公司 | 一种基于物联网的智慧楼宇控制系统 |
CN111930568A (zh) * | 2020-08-05 | 2020-11-13 | 上海英方软件股份有限公司 | 一种基于Avro的结构化数据序列化传输方法及装置 |
CN112182036A (zh) * | 2020-09-15 | 2021-01-05 | 中信银行股份有限公司 | 数据的发送与写入方法、装置、电子设备及可读存储介质 |
CN112020034A (zh) * | 2020-10-30 | 2020-12-01 | 深圳市爱夫卡科技股份有限公司 | 一种4G/5GT-Box车联网环保监测服务器、系统及方法 |
CN112486473A (zh) * | 2020-11-30 | 2021-03-12 | 中国电子科技集团公司第二十八研究所 | 基于Kafka和Redis的准实时目标航迹显示方法 |
CN112527801A (zh) * | 2020-12-21 | 2021-03-19 | 中国人民银行清算总中心 | 关系型数据库与大数据系统间的数据同步方法及系统 |
Non-Patent Citations (4)
Title |
---|
HDFS存储和优化技术研究综述;金国栋;《软件学报》;20190809;全文 * |
HPC-ABDS High Performance Computing Enhanced Apache Big Data Stack;Geoffrey C.Fox等;《2015 15th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing》;20150709;全文 * |
The zwicky transient facility alert distribution system;Maria T.patterson等;《arxiv.org》;20170207;全文 * |
大数据平台计算架构及其应用研究;张殿超;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180215;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113190528A (zh) | 2021-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11422982B2 (en) | Scaling stateful clusters while maintaining access | |
WO2020001108A1 (zh) | 基于区块链的数据处理方法和装置 | |
Liu et al. | Survey of real-time processing systems for big data | |
US9002871B2 (en) | Method and system of mapreduce implementations on indexed datasets in a distributed database environment | |
US8775464B2 (en) | Method and system of mapreduce implementations on indexed datasets in a distributed database environment | |
US8224804B2 (en) | Indexing of partitioned external data sources | |
CN111459418B (zh) | 一种基于rdma的键值存储系统传输方法 | |
US20130318084A1 (en) | Processing structured and unstructured data using offload processors | |
US20130191523A1 (en) | Real-time analytics for large data sets | |
US10318346B1 (en) | Prioritized scheduling of data store access requests | |
CN113190528B (zh) | 一种并行分布式大数据架构构建方法及系统 | |
CN103312791A (zh) | 物联网异构数据存储方法及系统 | |
CN106569896B (zh) | 一种数据分发及并行处理方法和系统 | |
US9836516B2 (en) | Parallel scanners for log based replication | |
WO2017092384A1 (zh) | 一种集群数据库分布式存储的方法和装置 | |
CN111221791A (zh) | 一种多源异构数据导入数据湖的方法 | |
US20140101132A1 (en) | Swapping expected and candidate affinities in a query plan cache | |
CN110413822B (zh) | 离线图像结构化分析方法、装置、系统和存储介质 | |
CN108363741B (zh) | 大数据统一接口方法、装置、设备及存储介质 | |
US10397317B2 (en) | Boomerang join: a network efficient, late-materialized, distributed join technique | |
US20200210114A1 (en) | Networked shuffle storage | |
CN114443680A (zh) | 数据库管理系统、相关装置、方法和介质 | |
CN110069565B (zh) | 一种分布式数据库数据批量处理的方法及装置 | |
CN112417225A (zh) | 一种多源异构数据的联合查询方法与系统 | |
EP4390646A1 (en) | Data processing method in distributed system, and related system |
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 |