CN109710731A - 一种基于Flink的数据流多向处理系统 - Google Patents

一种基于Flink的数据流多向处理系统 Download PDF

Info

Publication number
CN109710731A
CN109710731A CN201811373337.1A CN201811373337A CN109710731A CN 109710731 A CN109710731 A CN 109710731A CN 201811373337 A CN201811373337 A CN 201811373337A CN 109710731 A CN109710731 A CN 109710731A
Authority
CN
China
Prior art keywords
data
processing
flink
kafka
multidirectional
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
Application number
CN201811373337.1A
Other languages
English (en)
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 Institute of Computer Technology and Applications
Original Assignee
Beijing Institute of Computer Technology and Applications
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 Institute of Computer Technology and Applications filed Critical Beijing Institute of Computer Technology and Applications
Priority to CN201811373337.1A priority Critical patent/CN109710731A/zh
Publication of CN109710731A publication Critical patent/CN109710731A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种基于Flink的数据流多向处理系统,涉及数据实时处理技术领域。本发明给出了一种基于Kafka/Flink/Elasticsearch的单消费者处理多业务的数据流处理系统,能够实时高效准确地处理大规模的数据。利用Kafka的高扩展性和高可靠性,可将多个数据源的数据准确地收集汇总,并且易于新增扩展;Kafka可进行持久化操作,将消息持久化到磁盘,极大地减少了数据丢失的概率。与Flink的高效组合,分布式可升级为多消费多向处理业务数据的形式,极大地扩展了flink作为消费者的数据处理能力,同时也保证了计算并存储的快速性。这一种基于flink单消费者数据流处理系统,既在单节点上有出色的表现,也能在分布式呈现惊人的分析效率,扩大了传统算法分向处理、分析范围和快速存储的整体能力。

Description

一种基于Flink的数据流多向处理系统
技术领域
本发明涉及数据实时处理技术领域,具体涉及一种基于Flink的数据流多向处理系统。
背景技术
随着云时代的来临,大数据也吸引了越来越多的关注。大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理(MPP)数据库、数据挖掘电网、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。Flink是一个针对流数据和批数据的分布式处理引擎。ElasticSearch是一个基于Lucene的搜索服务器,设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,使用方便。
云计算时代数据呈现出爆炸性增长的态势,各类系统都会产生大量日志,日志数据的规模GB数量级跃升到TB甚至PB这样的数量级。面对海量的日志,传统的日志处理系统框架已经无法满足目前的需求。同时系统业务对日志、业务数据等处理的实时性需求也逐渐提高。传统的流数据处理框架其吞吐量和容错性存在先天的缺陷,不再适用于目前类似于互联网这类行业的高速扩展的业务需求。因此对于流式数据的处理,以及多业务需求中快速存储的问题,需要设计一种数据流处理系统,准确并且实时地计算和处理相关业务数据,加速系统的运算能力。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何设计一种数据流处理系统,准确并且实时地计算和处理相关业务数据,加速系统的运算能力。
(二)技术方案
为了解决上述技术问题,本发明提供了一种基于Flink的数据流多向处理系统,包括数据缓存模块、数据多向处理模块和数据存储模块;
所述数据缓存模块用于缓存从不同的源收集的数据,并转发给数据多向处理模块;所述数据多向处理模块用于接收来自数据缓存模块的数据,根据多业务需求把日志流进行多纬度处理分析,再把对应的日志流发送给其对应的数据存储模块。
优选地,所述数据缓存模块采用Apache Kafka实现。
优选地,所述数据多向处理模块中使用flink-kafka连接器对Kafka的流数据进行消费处理,在flink中进行数据多层次,多流向的处理。
优选地,所述数据多向处理模块具体采用如下过程对Kafka的流数据进行消费处理:
初始化消费者:由连接器创建kafka的消费者,此处只创建一个消费者,以接收缓存在kafka的数据;
筛选并转换:创建过滤器,对数据源进行过滤,去除非法数据;创建转换器,对多种业务需求进行数据统一化格式转换处理;
多向处理:对同一个数据按照多种不同的处理方式进行处理,并行经过多种不同的业务逻辑,实现单消费者对数据的多方位分析:
第一种业务处理流程,实现峰值和热词的统计收集:
创建统计函数,使用key计数,创建业务需求的自定义计数逻辑,实现对数据峰值、热词计数,排序;
创建存储函数,实现对相应结果记录存储。
第二种业务处理流程,实现数据重点信息收集和存储:
创建必要的数据转换器,实现对数据特征的提取处理、加工,实现数据的泛化,保留各方面数据中相同或一定程度上相似的特征;
创建过滤业务,去除数据中一定程度上发散或重复的数据;
存储第二种业务处理流程产生的泛化数据。
优选地,所述数据存储模块采取对EsSink存储时的异常处理流程:
检查Kafka业务流程,是否选择保留数据;
保存文件时处理错误数据。
(三)有益效果
本发明给出了一种基于Kafka/Flink/Elasticsearch的单消费者处理多业务的数据流处理系统,能够实时高效准确地处理大规模的数据。利用Kafka的高扩展性和高可靠性,可将多个数据源的数据准确地收集汇总,并且易于新增扩展;Kafka可进行持久化操作,将消息持久化到磁盘,极大地减少了数据丢失的概率。与Flink的高效组合,分布式可升级为多消费多向处理业务数据的形式,极大地扩展了flink作为消费者的数据处理能力,同时也保证了计算并存储的快速性。这一种基于flink单消费者数据流处理系统,既在单节点上有出色的表现,也能在分布式呈现惊人的分析效率,扩大了传统算法分向处理、分析范围和快速存储的整体能力。
附图说明
图1为本发明中数据多向处理原理图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本发明实现了一套分布式的数据流处理系统,它具有分布式、大吞吐、低延迟的特性,能够准确并且实时地计算和处理相关业务数据,从而加速系统的运算能力。
该系统分为三个模块:数据缓存模块、数据多向处理模块、数据存储模块。所述数据缓存模块用于缓存从不同的源收集的数据,并转发给数据多向处理模块。所述数据多向处理模块用于接收来自数据缓存模块的数据,根据多业务需求把日志流进行多纬度处理分析,再把对应的日志流发送给其对应的数据存储模块。系统的三个模块之间无缝衔接,具有高实时性的特点。本发明可用于单节点数据处理也可用于分布式,由单节点多逻辑的处理方式升级为分布式处理,则可实现指数级种逻辑的并行分析,从而提升分析效率,增强分析能力。
数据缓存模块需要一个分布式的、可靠的、高可用的、能接收海量日志的框架,并且需要支持多源采集且集中存储。在诸多的日志收集系统中,本发明选择的是ApacheKafka。Kafka可进行持久化操作。将消息持久化到磁盘,通过将数据持久化到硬盘以及replication防止数据丢失,因此可用于批量消费。由于现有服务器硬件方面限制,对其存储在硬盘上的文件大小和保存时长做了限制。同时由于本方法涉及实时性较高,故实时流数据只保存一小时内,文件大小不超过512MB,二者满足其一,则进行删除操作。同时在后数据多向处理前,异常时也进行了如上判断,并实现重启机制,重启前判断若大量积存历史数据则对其进行删除。
所有的producer、broker和consumer都会有多个,均为分布式的。无需停机即可扩展机器。同时为发布和订阅提供高吞吐量。据了解,Kafka每秒可以生产约25万消息(50MB),每秒处理55万消息(110MB)kafka采用的是文本日志有序的方式来记录信息的,和内存没有关系,全部将接受的信息持久化到硬盘上,接收和消费互不影响,大大提高了IO效率。
Flink是完全支持流处理,也就是说作为流处理看待时输入数据流是无界的,批处理被作为一种特殊的流处理,只是它的输入数据流被定义为有界的。基于同一个Flink运行时(Flink Runtime),分别提供了流处理和批处理API,而这两种API也是实现上层面向流处理、批处理类型应用框架的基础。本发明的数据多向处理模块采用流处理方式对数据加工分析,数据多向处理指对同一个数据源进行多方面解析、计算,从多个角度对数据进行剖析。本发明主要介绍多向处理的方法,已解决单个消费者应对多种不同逻辑业务的处理。
本发明使用flink-kafka连接器对kafka的流数据进行消费处理,在flink中进行数据多层次,多流向的处理。DataStream API支持了数据流上的函数式转换,可以使用自定义的状态和灵活的窗口。本发明实现了,一方面以滑动窗口的方式统计文本数据量的大小、记录峰值等信息,一方面同时对数据内容进行规约处理存储。此为多向的体现之一,其次多向还表现在,根据不同的业务需求对同一个数据源进行不同的转换后分别输出。其中各个数据流操作均为组合式排列,实现过程如下:
初始化消费者:由连接器创建kafka的消费者,此处只创建一个消费者,以接收缓存在kafka的数据。
筛选并转换:
创建过滤器(filter),对数据源进行过滤,去除非法数据;
创建转换器(map(parse)),对多种业务需求进行数据统一化格式转换处理。
多向处理:对同一个数据按照多种不同的处理方式进行处理stream.flatMap(...)和stream.map(...),stream为同一数据源,并行经过多种不同的业务逻辑,实现单消费者对数据的多方位分析,如图1中flink区所示:
第一种业务处理流程,实现峰值和热词的统计收集:
创建统计(flatMap)函数,使用key计数,创建业务需求的自定义计数逻辑,实现对数据峰值、热词计数,排序;
创建存储(sink)函数,实现对相应结果记录存储。
第二种业务处理流程,实现数据重点信息收集和存储:
创建必要的数据转换器(map(parse)),实现对数据特征的提取处理、加工,实现数据的泛化,保留各方面数据中相同或一定程度(满足预设条件)相似的特征,便于业务的分析。
创建过滤业务(filter),去除数据中一定程度上发散(满足预设条件)或重复的数据。
存储(sink),存储第二种业务处理流程产生的泛化数据,以便用于后期数据统计,特征匹配和相似推荐。
由此创建相互关联(具有相同数据源数据特征),又彼此独立(需要不同方向对数据进行分析)的多种业务实现。达到单消费者处理多种业务逻辑的效果,流程如图1中flink区所示,实现同时对数据进行多向分析处理。
在使用Flink进行数据处理的时候,一个必要步骤就是需要将计算的结果进行存储或导出,Flink中这个过程称为Sink。Flink支持多种Sink对数据进行存储,如ApacheKafka、Elasticsearch、Hadoop FileSystem、RabbitMQ、Amazon Kinesis Streams、TwitterStreaming API、Apache NiFi、Apache Cassandra等,本发明采用Elasticsearch进行高速快捷存储,本发明数据存储模块中实现了对EsSink存储时异常的处理,es自身的处理方式是重新添加至队列进行重试存储,由于现业务高吞吐量,高时效需求,如出现大量的异常数据,再进行重试可能会导致flink节点工作繁重从而宕机,本发明采取的对EsSink存储时异常的处理流程如下:
1、检查Kafka业务流程,是否选择保留数据。
2、保存文件时处理错误数据,以便调整和优化数据分析机制,从而由自定义处理异常的方法保证程序稳定可靠运行。
可以看出,本发明基于Kafka、Flink和ElasticSearch构建了一个分布式数据流统计、处理及存储系统。通过这个系统,可以高效、实时、可靠地获取和分析各类流数据,快速分析,从多维度解析处理数据流,从而提高系统或平台的数据处理和分析能力。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (5)

1.一种基于Flink的数据流多向处理系统,其特征在于,包括数据缓存模块、数据多向处理模块和数据存储模块;
所述数据缓存模块用于缓存从不同的源收集的数据,并转发给数据多向处理模块;所述数据多向处理模块用于接收来自数据缓存模块的数据,根据多业务需求把日志流进行多纬度处理分析,再把对应的日志流发送给其对应的数据存储模块。
2.如权利要求1所述的系统,其特征在于,所述数据缓存模块采用Apache Kafka实现。
3.如权利要求1所述的系统,其特征在于,所述数据多向处理模块中使用flink-kafka连接器对Kafka的流数据进行消费处理,在flink中进行数据多层次,多流向的处理。
4.如权利要求3所述的系统,其特征在于,所述数据多向处理模块具体采用如下过程对Kafka的流数据进行消费处理:
初始化消费者:由连接器创建kafka的消费者,此处只创建一个消费者,以接收缓存在kafka的数据;
筛选并转换:创建过滤器,对数据源进行过滤,去除非法数据;创建转换器,对多种业务需求进行数据统一化格式转换处理;
多向处理:对同一个数据按照多种不同的处理方式进行处理,并行经过多种不同的业务逻辑,实现单消费者对数据的多方位分析:
第一种业务处理流程,实现峰值和热词的统计收集:
创建统计函数,使用key计数,创建业务需求的自定义计数逻辑,实现对数据峰值、热词计数,排序;
创建存储函数,实现对相应结果记录存储;
第二种业务处理流程,实现数据重点信息收集和存储:
创建必要的数据转换器,实现对数据特征的提取处理、加工,实现数据的泛化,保留各方面数据中相同或一定程度上相似的特征;
创建过滤业务,去除数据中一定程度上发散或重复的数据;
存储第二种业务处理流程产生的泛化数据。
5.如权利要求1所述的系统,其特征在于,所述数据存储模块采取对EsSink存储时的异常处理流程:
检查Kafka业务流程,是否选择保留数据;
保存文件时处理错误数据。
CN201811373337.1A 2018-11-19 2018-11-19 一种基于Flink的数据流多向处理系统 Pending CN109710731A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811373337.1A CN109710731A (zh) 2018-11-19 2018-11-19 一种基于Flink的数据流多向处理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811373337.1A CN109710731A (zh) 2018-11-19 2018-11-19 一种基于Flink的数据流多向处理系统

Publications (1)

Publication Number Publication Date
CN109710731A true CN109710731A (zh) 2019-05-03

Family

ID=66254961

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811373337.1A Pending CN109710731A (zh) 2018-11-19 2018-11-19 一种基于Flink的数据流多向处理系统

Country Status (1)

Country Link
CN (1) CN109710731A (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110245158A (zh) * 2019-06-10 2019-09-17 上海理想信息产业(集团)有限公司 一种基于Flink流计算技术的多源异构数据实时处理系统及方法
CN110705891A (zh) * 2019-10-11 2020-01-17 集奥聚合(北京)人工智能科技有限公司 一种基于高可配可变更的数据处理方法
CN110928906A (zh) * 2019-11-08 2020-03-27 杭州安恒信息技术股份有限公司 基于flink仅一次写入carbonData的方法
CN111143314A (zh) * 2019-12-26 2020-05-12 厦门服云信息科技有限公司 一种基于高速流式处理技术的日志解析方法及系统
CN111930812A (zh) * 2020-07-20 2020-11-13 银盛支付服务股份有限公司 基于flink的实时聚合报表方法、电子设备及可读存储介质
CN112084387A (zh) * 2020-08-21 2020-12-15 上海微亿智造科技有限公司 一种实时数据分类统计方法、系统、可读介质及设备
CN112150248A (zh) * 2020-09-30 2020-12-29 欧冶云商股份有限公司 一种基于批流融合的挂货量统计方法、系统、装置
CN112541816A (zh) * 2020-12-21 2021-03-23 四川新网银行股份有限公司 互联网金融消费信贷批量业务分布式流计算处理引擎
CN113065785A (zh) * 2021-04-13 2021-07-02 国网江苏省电力有限公司信息通信分公司 一种电力物联管理平台动态资源扩展方法
CN113326238A (zh) * 2021-06-25 2021-08-31 深信服科技股份有限公司 一种数据处理方法、装置、设备及存储介质
WO2021223451A1 (zh) * 2020-05-06 2021-11-11 广州明珞装备股份有限公司 汽车生产动作数据采集方法、系统、装置和存储介质
CN113742004A (zh) * 2020-08-26 2021-12-03 北京沃东天骏信息技术有限公司 一种基于flink框架的数据处理方法和装置
CN114185865A (zh) * 2021-12-13 2022-03-15 国汽大有时空科技(安庆)有限公司 一种基于分布式存储的大规模基站数据存储与解析的方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104036025A (zh) * 2014-06-27 2014-09-10 蓝盾信息安全技术有限公司 一种基于分布式的海量日志采集系统
US20180074852A1 (en) * 2016-09-14 2018-03-15 Salesforce.Com, Inc. Compact Task Deployment for Stream Processing Systems
CN108040074A (zh) * 2018-01-26 2018-05-15 华南理工大学 一种基于大数据的实时网络异常行为检测系统及方法
CN108270860A (zh) * 2018-01-16 2018-07-10 宇星科技发展(深圳)有限公司 环境质量在线监测数据的采集系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104036025A (zh) * 2014-06-27 2014-09-10 蓝盾信息安全技术有限公司 一种基于分布式的海量日志采集系统
US20180074852A1 (en) * 2016-09-14 2018-03-15 Salesforce.Com, Inc. Compact Task Deployment for Stream Processing Systems
CN108270860A (zh) * 2018-01-16 2018-07-10 宇星科技发展(深圳)有限公司 环境质量在线监测数据的采集系统及方法
CN108040074A (zh) * 2018-01-26 2018-05-15 华南理工大学 一种基于大数据的实时网络异常行为检测系统及方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
M. HASEEB JAVED: "Characterization of Big Data Stream Processing Pipeline: A Case Study using Flink and Kafka", 《PROCEEDINGS OF THE FOURTH IEEE/ACM INTERNATIONAL CONFERENCE ON BIG DATA COMPUTING, APPLICATIONS AND TECHNOLOGIES》 *
YANJUN: "Apache Flink:特性、概念、组件栈、架构及原理分析", 《HTTP://SHIYUANJUN.CN/ARCHIVES/1508.HTML》 *
王蒙: "流式计算模式的性能研究与优化", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110245158A (zh) * 2019-06-10 2019-09-17 上海理想信息产业(集团)有限公司 一种基于Flink流计算技术的多源异构数据实时处理系统及方法
CN110705891A (zh) * 2019-10-11 2020-01-17 集奥聚合(北京)人工智能科技有限公司 一种基于高可配可变更的数据处理方法
CN110928906A (zh) * 2019-11-08 2020-03-27 杭州安恒信息技术股份有限公司 基于flink仅一次写入carbonData的方法
CN111143314A (zh) * 2019-12-26 2020-05-12 厦门服云信息科技有限公司 一种基于高速流式处理技术的日志解析方法及系统
WO2021223451A1 (zh) * 2020-05-06 2021-11-11 广州明珞装备股份有限公司 汽车生产动作数据采集方法、系统、装置和存储介质
CN111930812A (zh) * 2020-07-20 2020-11-13 银盛支付服务股份有限公司 基于flink的实时聚合报表方法、电子设备及可读存储介质
CN111930812B (zh) * 2020-07-20 2024-05-03 银盛支付服务股份有限公司 基于flink的实时聚合报表方法、电子设备及可读存储介质
CN112084387A (zh) * 2020-08-21 2020-12-15 上海微亿智造科技有限公司 一种实时数据分类统计方法、系统、可读介质及设备
CN113742004B (zh) * 2020-08-26 2024-04-12 北京沃东天骏信息技术有限公司 一种基于flink框架的数据处理方法和装置
CN113742004A (zh) * 2020-08-26 2021-12-03 北京沃东天骏信息技术有限公司 一种基于flink框架的数据处理方法和装置
CN112150248A (zh) * 2020-09-30 2020-12-29 欧冶云商股份有限公司 一种基于批流融合的挂货量统计方法、系统、装置
CN112541816A (zh) * 2020-12-21 2021-03-23 四川新网银行股份有限公司 互联网金融消费信贷批量业务分布式流计算处理引擎
CN113065785A (zh) * 2021-04-13 2021-07-02 国网江苏省电力有限公司信息通信分公司 一种电力物联管理平台动态资源扩展方法
CN113065785B (zh) * 2021-04-13 2024-02-20 国网江苏省电力有限公司信息通信分公司 一种电力物联管理平台动态资源扩展方法
CN113326238A (zh) * 2021-06-25 2021-08-31 深信服科技股份有限公司 一种数据处理方法、装置、设备及存储介质
CN114185865A (zh) * 2021-12-13 2022-03-15 国汽大有时空科技(安庆)有限公司 一种基于分布式存储的大规模基站数据存储与解析的方法及系统

Similar Documents

Publication Publication Date Title
CN109710731A (zh) 一种基于Flink的数据流多向处理系统
McCreadie et al. Scalable distributed event detection for twitter
Grover et al. Data Ingestion in AsterixDB.
CN109753531A (zh) 一种大数据统计方法、系统、计算机设备及存储介质
Brito et al. Scalable and low-latency data processing with stream mapreduce
CN110225074B (zh) 一种基于设备地址域的通讯报文分发系统及分发方法
CN108038239B (zh) 一种异构数据源规范化处理方法、装置及服务器
CN103838867A (zh) 日志处理方法和装置
CN104820670A (zh) 一种电力信息大数据的采集和存储方法
CN104036025A (zh) 一种基于分布式的海量日志采集系统
CN106815254B (zh) 一种数据处理方法和装置
CN111400326A (zh) 一种智慧城市数据管理系统及其方法
Ismail et al. Big Data prediction framework for weather Temperature based on MapReduce algorithm
CN110704484A (zh) 一种对海量实时数据流进行处理的方法及系统
Li et al. The overview of big data storage and management
Yang et al. The RADStack: Open source lambda architecture for interactive analytics
Pal et al. Big data real time ingestion and machine learning
Zhi et al. Research of Hadoop-based data flow management system
CN106599190A (zh) 基于云计算的动态Skyline查询方法
Ma et al. Design and implementation of smart city big data processing platform based on distributed architecture
Sánchez et al. Distributed data collection for the ATLAS EventIndex
CN113312376A (zh) 一种用于Nginx日志实时处理分析的方法及终端
Intorruk et al. A comparative study on performance and resource utilization of real-time distributed messaging systems for big data
Falk et al. Query-able kafka: An agile data analytics pipeline for mobile wireless networks
CN111049898A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190503

RJ01 Rejection of invention patent application after publication