The invention discloses a processing method based on Spark Streaming read Kafka data, which comprises the following steps: S1) using Kafka data stored in the topic; S2) using Spark Streaming real-time input data stream to time unit divided into blocks; S3) according to the Kafka data pre failure record number, set SparkStreaming complement scheduling time; S4) real-time monitoring SparkStreaming Kafka data read process; S5) through the SparkStreaming to read Kafka data. According to the data failure record number of the Kafka data, the invention sets up the SparkStreaming complement scheduling time, monitors the reading process in real time and re reads the number of failed records to supplement the number, thereby ensuring more flexible and convenient zero loss guarantee.
【技术实现步骤摘要】
基于SparkStreaming读取Kafka数据的处理方法
本专利技术涉及一种Kafka数据处理方法,尤其涉及一种基于SparkStreaming读取Kafka数据的处理方法。
技术介绍
SparkStreaming是将流式计算分解成一系列短小的批处理作业。这里的批处理引擎是Spark,也就是把SparkStreaming的输入数据按照batchsize(如1秒)分成一段一段的数据(DiscretizedStream),每一段数据都转换成Spark中的RDD(ResilientDistributedDataset),然后将SparkStreaming中对DStream的Transformation操作变为针对Spark中对RDD的Transformation操作,将RDD经过操作变成中间结果保存在内存中。整个流式计算根据业务的需求可以对中间的结果进行叠加,或者存储到外部设备。图1显示了SparkStreaming的整个流程。Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一个分布式的,可划分的,冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据,如图2所示。众所周知,大数据时代对数据处理的实时性、稳定性、准确性要求越来越高;现在兴起的组合架构有SparkStreaming对接Kafka,借助SparkStreaming基于内存迭代计算优势和Kafka高并发数据分发能力,进而达到数据处理的实时性;但SparkStreaming对接kafka过程中,仍然难免会出现潜在的数据丢失场景, ...
【技术保护点】
一种基于Spark Streaming读取Kafka数据的处理方法,其特征在于,包括如下步骤:S1)利用Kafka将数据存储在话题中,每个话题均包含若干可配置数量的分区;S2)利用Spark Streaming把实时输入数据流以时间片为单位切分成块,每个块均生成一个Spark Job处理;S3)预先根据Kafka数据失败记录数,设置SparkStreaming补数调度时间;S4)实时监控SparkStreaming读取Kafka数据的处理过程;S5)根据Kafka数据失败记录数和调度时间,通过SparkStreaming重新读取失败丢失的Kafka数据。
【技术特征摘要】
1.一种基于SparkStreaming读取Kafka数据的处理方法,其特征在于,包括如下步骤:S1)利用Kafka将数据存储在话题中,每个话题均包含若干可配置数量的分区;S2)利用SparkStreaming把实时输入数据流以时间片为单位切分成块,每个块均生成一个SparkJob处理;S3)预先根据Kafka数据失败记录数,设置SparkStreaming补数调度时间;S4)实时监控SparkStreaming读取Kafka数据的处理过程;S5)根据Kafka数据失败记录数和调度时间,通过SparkStreaming重新读取失败丢失的Kafka数据。2.如权利要求1所述的基于SparkStreaming读取Kafka数据的处理方法,其特征在于,所述步骤S3)使用关系型数据库创建两张数据库表,分别为调度表和失败记录数表,所述调度表中存放调度编号id,开始时间,结束时间,状态和创建时间信息,所述失败数记录表中存放失败记录id,偏移量,Kafka话题,Kafka节点列表信息,所述调度表中的调度编号id和失败数记录表的失败记录id为主外键关系。3.如权利要求2所述的基于SparkStreaming读取Kafka数据的处理方法,其特征在于,所述步骤S4)包括:在SparkStreaming读取Kafka数据过程中,如果对应的Kafka话题数据不为空,则获取到...
【专利技术属性】
技术研发人员:程永新,谢涛,王仁铮,
申请(专利权)人:上海轻维软件有限公司,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。