[发明专利]基于Spark Streaming读取Kafka数据的处理方法有效
申请号: | 201611069230.9 | 申请日: | 2016-11-29 |
公开(公告)号: | CN106776855B | 公开(公告)日: | 2020-03-13 |
发明(设计)人: | 程永新;谢涛;王仁铮 | 申请(专利权)人: | 上海轻维软件有限公司 |
主分类号: | G06F16/182 | 分类号: | G06F16/182;G06F16/18;G06F16/13;G06F16/28 |
代理公司: | 上海科律专利代理事务所(特殊普通合伙) 31290 | 代理人: | 袁亚军;金碎平 |
地址: | 200331 上海市普陀区*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 spark streaming 读取 kafka 数据 处理 方法 | ||
本发明公开了一种基于Spark Streaming读取Kafka数据的处理方法,包括如下步骤:S1)利用Kafka将数据存储在话题中;S2)利用Spark Streaming把实时输入数据流以时间片为单位切分成块;S3)预先根据Kafka数据失败记录数,设置SparkStreaming补数调度时间;S4)实时监控SparkStreaming读取Kafka数据过程;S5)通过SparkStreaming重新读取Kafka数据。本发明根据Kafka数据失败记录数设置SparkStreaming补数调度时间,实时监控读取过程并重新读取失败记录数进行补数,更加灵活、便捷地做到零丢数保证。
技术领域
本发明涉及一种Kafka数据处理方法,尤其涉及一种基于Spark Streaming读取Kafka数据的处理方法。
背景技术
Spark Streaming是将流式计算分解成一系列短小的批处理作业。这里的批处理引擎是Spark,也就是把Spark Streaming的输入数据按照batch size(如1秒)分成一段一段的数据(Discretized Stream),每一段数据都转换成Spark中的RDD(ResilientDistributed Dataset),然后将Spark Streaming中对DStream的Transformation操作变为针对Spark中对RDD的Transformation操作,将RDD经过操作变成中间结果保存在内存中。整个流式计算根据业务的需求可以对中间的结果进行叠加,或者存储到外部设备。图1显示了Spark Streaming的整个流程。
Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一个分布式的,可划分的,冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据,如图2所示。
众所周知,大数据时代对数据处理的实时性、稳定性、准确性要求越来越高;现在兴起的组合架构有SparkStreaming对接Kafka,借助SparkStreaming基于内存迭代计算优势和Kafka高并发数据分发能力,进而达到数据处理的实时性;但SparkStreaming对接kafka过程中,仍然难免会出现潜在的数据丢失场景,具体过程如下:
1、两个Exectuor已经从接收器中接收到输入数据,并将它缓存到Exectuor的内存中;2、接收器通知输入源数据已经接收;3、Exectuor根据应用程序的代码开始处理已经缓存的数据;4、这时候Driver突然挂掉了;5、从设计的角度看,一旦Driver挂掉之后,它维护的Exectuor也将全部被kill;6、既然所有的Exectuor被kill了,所以缓存到它们内存中的数据也将被丢失。结果,这些已经通知数据源但是还没有处理的缓存数据就丢失了;7、缓存的时候不可能恢复,因为它们是缓存在Exectuor的内存中,所以数据被丢失了。
由上可见,急需一种防止零丢数的方法来保证SparkStreaming对接Kafka数据处理稳定性。
发明内容
本发明所要解决的技术问题是提供一种基于Spark Streaming读取Kafka数据的处理方法,能够有效防止数据丢失,在失败恢复之后从Kafka中重新消费数据,从而在SparkStreaming程序异常情况下,更加灵活、便捷地做到零丢数保证。
本发明为解决上述技术问题而采用的技术方案是提供一种基于Spark Streaming读取Kafka数据的处理方法,包括如下步骤:S1)利用Kafka将数据存储在话题中,每个话题均包含若干可配置数量的分区;S2)利用Spark Streaming把实时输入数据流以时间片为单位切分成块,每个块均生成一个Spark Job处理;S3)
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海轻维软件有限公司,未经上海轻维软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611069230.9/2.html,转载请声明来源钻瓜专利网。