[发明专利]基于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 数据 处理 方法 | ||
1.一种基于Spark Streaming读取Kafka数据的处理方法,其特征在于,包括如下步骤:
S1)利用Kafka将数据存储在话题中,每个话题均包含若干可配置数量的分区;
S2)利用Spark Streaming把实时输入数据流以时间片为单位切分成块,每个块均生成一个Spark Job处理;
S3)预先根据Kafka数据失败记录数,设置SparkStreaming补数调度时间;
S4)实时监控SparkStreaming读取Kafka数据的处理过程;
S5) 根据Kafka数据失败记录数和调度时间,通过SparkStreaming重新读取失败丢失的Kafka数据;
所述步骤S3)使用关系型数据库创建两张数据库表,分别为调度表和失败记录数表,所述调度表中存放调度编号id,开始时间,结束时间,状态和创建时间信息,所述失败数记录表中存放失败记录id,偏移量,Kafka话题,Kafka节点列表信息,所述调度表中的调度编号id和失败数记录表的失败记录id为主外键关系。
2.如权利要求1所述的基于Spark Streaming读取Kafka数据的处理方法,其特征在于,所述步骤S4)包括:在SparkStreaming读取Kafka数据过程中,如果对应的Kafka话题数据不为空,则获取到正在从Kafka读取到数据的偏移量,并将该数据偏移量、Kafka话题以及Kafka节点列表信息入库到关系型数据库失败数记录表中,如果数据处理异常,则修改数据表中的状态为失败。
3. 如权利要求2所述的基于Spark Streaming读取Kafka数据的处理方法,其特征在于,所述步骤S4)中SparkStreaming通过Direct方式直接连接到Kafka节点上,并通过createDirectStream 方法获取到正在从Kafka读取到数据的偏移量,同时将调度表中的状态标识为正在进行中;当SparkStreaming对接Kafka读取处理数据过程中,出现异常造成程序不能正常执行,则修改调度表中的状态为失败。
4. 如权利要求3所述的基于Spark Streaming读取Kafka数据的处理方法,其特征在于,所述步骤S5)包括:首先根据调度表状态字段作为查询条件,扫描调度表,根据创建时间字段作为排序降序,得到最早的调度记录,然后获得调度编号id,以该字段作为查询失败数记录表条件,获得所有Kafka失败记录数,再根据Kafka话题和偏移量重新读取Kafka数据。
5. 如权利要求2所述的基于Spark Streaming读取Kafka数据的处理方法,其特征在于,所述步骤S4)先读取关系数据库中调度表和失败数记录表缓存到内存中,再通过线程定时更新缓存中的数据进行实时监控。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海轻维软件有限公司,未经上海轻维软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611069230.9/1.html,转载请声明来源钻瓜专利网。