买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种基于spark streaming处理流动车辆数据的方法及系统_浪潮卓数大数据产业发展有限公司_201910552534.8 

申请/专利权人:浪潮卓数大数据产业发展有限公司

申请日:2019-06-25

公开(公告)日:2022-05-24

公开(公告)号:CN110287189B

主分类号:G06F16/22

分类号:G06F16/22;G06F16/10;G08G1/01;G08G1/065

优先权:

专利状态码:有效-授权

法律状态:2022.05.24#授权;2019.10.29#实质审查的生效;2019.09.27#公开

摘要:本发明公开了一种基于sparkstreaming处理流动车辆数据的方法及系统,属于大数据处理领域,本发明要解决的技术问题为如何利用大数据技术实施检测车流量并能够快速发现目标车辆,采用的技术方案为:①该方法步骤如下:S1、获取卡口数据:获取设置卡口的各个路口通过的车辆信息,并将车辆信息进行处理后保存符合条件的数据,支持后续应用及对外服务;S2、数据处理;S3、数据应用:将经过数据处理的数据进行app推送、短信告警、邮件告警以及可视化分析。②该系统包括卡口数据获取模块、数据处理模块和数据应用模块,卡口数据获取模块通过数据传输通道kafka将获取的数据发送到数据处理模块,数据处理模块将经过处理并存储的数据发送到数据应用模块。

主权项:1.一种基于sparkstreaming处理流动车辆数据的方法,其特征在于,该方法步骤如下:S1、获取卡口数据:获取设置卡口的各个路口通过的车辆信息,并将车辆信息进行处理后保存符合条件的数据,支持后续应用及对外服务;具体步骤如下:S101、在各个路口设置卡口,获取每个通过的车辆信息;S102、卡口数据实时推送给kafka,通过流式计算,能够秒级匹配监控的样本数据,为应用提供数据支持;S103、卡口流数据经过采集处理之后存储到消息队列,流数据处理平台消费队列数据后,通过比对样本数据将符合条件的数据进行保存,支持后续应用及对外服务;S2、数据处理:将获取的卡口数据通过数据传输通道kafka发送到数据处理模块,数据处理模块对非实时数据流和流数据进行处理并进行离线数据存储或实时数据存储;具体步骤如下:S201、接入数据:选用Spark-Streaming做为流数据处理的主要技术,Direct方式采用Kafka简单的consumerapi方式来读取数据,满足每秒百万级的流数据处理能力;具体步骤如下:S20101、当batch任务触发时,由Executor读取数据,并参与到其他Executor的数据计算过程中去;S20202、driver来决定读取多少offsets,并将offsets交由checkpoints来维护;S20303、将触发下次batch任务,再由Executor读取Kafka数据并计算;S202、解析数据:把在kafka中接收到的消息转化为数据比对所需的结构化数据,整个数据的解析过程通过Spark-Streaming来进行;具体步骤如下:S20201、将接收到的流数据划分为多个batch,即将实时流数据以时间片为单位进行分批,将流处理转化为时间片数据的批处理;S20202、提交给Spark集群进行计算;S20203、将结果批量输出到HDFS或者数据库以及前端页面展示;S203、比对数据:根据样本数据找到符合条件的实时数据,采用Redis缓存和Spark临时视图,同时采用Spark-Streaming的动态广播变量,保证数据的一致性;具体步骤如下:S20301、通过Structed-Streaming将数据切分成一个个连续的batch;S20302、将数据进行序列化转换,转换之后加载成临时视图;S20303、通过样本数据与临时视图进行比对,找到命中的数据输出到对应的存储介质中;S3、数据应用:将经过数据处理的数据进行app推送、短信告警、邮件告警以及可视化分析。

全文数据:一种基于sparkstreaming处理流动车辆数据的方法及系统技术领域本发明涉及大数据处理领域,具体地说是一种基于sparkstreaming处理流动车辆数据的方法及系统。背景技术SparkStreaming是基于spark的流式批处理引擎,其基本原理是把输入数据以某一时间间隔批量的处理,当批处理间隔缩短到秒级时,便可以用于处理实时数据流。SparkStreaming是将流式计算分解成一系列短小的批处理作业。这里的批处理引擎是SparkCore,也就是把SparkStreaming的输入数据按照batchsize如1秒分成一段一段的数据DiscretizedStream,每一段数据都转换成Spark中的RDDResilientDistributedDataset,然后将SparkStreaming中对DStream的Transformation操作变为针对Spark中对RDD的Transformation操作,将RDD经过操作变成中间结果保存在内存中。整个流式计算根据业务的需求可以对中间的结果进行缓存或者存储到外部设备。对于流式计算来说,容错性至关重要。首先我们要明确一下Spark中RDD的容错机制。每一个RDD都是一个不可变的分布式可重算的数据集,其记录着确定性的操作继承关系lineage,所以只要输入数据是可容错的,那么任意一个RDD的分区Partition出错或不可用,都是可以利用原始输入数据通过转换操作而重新算出的。对于实时性的讨论,会牵涉到流式处理框架的应用场景。SparkStreaming将流式计算分解成多个SparkJob,对于每一段数据的处理都会经过SparkDAG图分解以及Spark的任务集的调度过程。对于目前版本的SparkStreaming而言,其最小的BatchSize的选取在0.5-2秒钟之间Storm目前最小的延迟是100ms左右,所以SparkStreaming能够满足除对实时性要求非常高如高频实时交易之外的所有流式准实时计算场景。随着经济发展及车辆保有量的高速提升,交通安全的有效保障尤为重要。交通部门需要实时监测每个卡口的车流量,以便做出对应的策略。并且面对各式各样的突发交通状况,对于目标车辆的快速发现及定位非常重要。故如何利用大数据技术实施检测车流量并能够快速发现目标车辆是目前现有技术中急需解决的技术问题。发明内容本发明的技术任务是提供一种基于sparkstreaming处理流动车辆数据的方法及系统,来解决如何利用大数据技术实施检测车流量并能够快速发现目标车辆的问题。本发明的技术任务是按以下方式实现的,一种基于sparkstreaming处理流动车辆数据的方法,该方法步骤如下:S1、获取卡口数据:获取设置卡口的各个路口通过的车辆信息,并将车辆信息进行处理后保存符合条件的数据,支持后续应用及对外服务;S2、数据处理:将获取的卡口数据通过数据传输通道kafka发送到数据处理模块,数据处理模块对非实时数据流和流数据进行处理并进行离线数据存储或实时数据存储;S3、数据应用:将经过数据处理的数据进行app推送、短信告警、邮件告警以及可视化分析。作为优选,所述步骤S1中获取卡口数据的具体步骤如下:S101、在各个路口设置卡口,获取每个通过的车辆信息;S102、卡口数据实时推送给kafka,通过流式计算,能够秒级匹配监控的样本数据,为应用提供数据支持;S103、卡口流数据经过采集处理之后存储到消息队列,流数据处理平台消费队列数据后,通过比对样本数据将符合条件的数据进行保存,支持后续应用及对外服务。更优地,所述步骤S101中车辆信息包括车牌号、品牌、颜色以及车辆图片。作为优选,所述步骤S2中数据处理的具体步骤如下:S201、接入数据:选用Spark-Streaming做为流数据处理的主要技术,Direct方式采用Kafka简单的consumerapi方式来读取数据,满足每秒百万级的流数据处理能力;S202、解析数据:把在kafka中接收到的消息转化为数据比对所需的结构化数据,整个数据的解析过程通过Spark-Streaming来进行;S203、比对数据:根据样本数据找到符合条件的实时数据,采用Redis缓存和Spark临时视图,同时采用Spark-Streaming的动态广播变量broadcast,保证数据的一致性。更优地,所述步骤S201中接入数据的具体步骤如下:S20101、当batch任务触发时,由Executor读取数据,并参与到其他Executor的数据计算过程中去;S20202、driver来决定读取多少offsets,并将offsets交由checkpoints来维护;S20303、将触发下次batch任务,再由Executor读取Kafka数据并计算。更优地,所述步骤S202中解析数据的具体步骤如下:S20201、将接收到的流数据划分为多个batch,即将实时流数据以时间片为单位进行分批,将流处理转化为时间片数据的批处理;S20202、提交给Spark集群进行计算;S20203、将结果批量输出到HDFS或者数据库以及前端页面展示。更优地,所述步骤S203比对数据的具体步骤如下:S20301、通过Structed-Streaming将数据切分成一个个连续的batch;S20302、将数据进行序列化转换,转换之后加载成临时视图可以理解成内存中的表;S20303、通过样本数据与临时视图进行比对,找到命中的数据输出到对应的存储介质中。更优地,所述步骤20303中的样本数据存储到Redis中,每次刷新样本数据时均能够保证查询效率;样本数据以广播变量的方式发送给各执行节点,保证数据的传输效率以及样本数据在所有节点的一致性;同时使用临时视图,实现只比对样本数据的唯一关键字,提高检索效率并简化应用难度。一种基于sparkstreaming处理流动车辆数据的系统,该系统包括卡口数据获取模块、数据处理模块和数据应用模块,卡口数据获取模块通过数据传输通道kafka将获取的数据发送到数据处理模块,数据处理模块将经过处理并存储的数据发送到数据应用模块;其中,卡口数据获取模块用于获取设置卡口的各个路口的通过的车辆信息,并将车辆信息进行处理后保存符合条件的数据,支持后续应用及对外服务;数据处理模块用于对非实时数据和流数据进行处理并进行离线数据存储或实时数据存储;数据应用模块用于将数据进行app推送、短信告警、邮件告警以及可视化分析。作为优选,所述数据处理模块包括,数据接入子模块,用于选用Spark-Streaming做为流数据处理的主要技术,Direct方式采用Kafka简单的consumerapi方式来读取数据,满足每秒百万级的流数据处理能力;数据解析子模块,用于把在kafka中接收到的消息转化为数据比对所需的结构化数据,整个数据的解析过程通过Spark-Streaming来进行;数据比对子模块,用于根据样本数据找到符合条件的实时数据,采用Redis缓存和Spark临时视图,同时采用Spark-Streaming的动态广播变量broadcast,保证数据的一致性。本发明的基于sparkstreaming处理流动车辆数据的方法及系统具有以下优点:一、本发明通过流式计算,能够实时监测每个卡口的车流量,且能够秒级匹配监控的样本数据,为公安人员处理交通事务节省大量的时间;二、本发明在数据比对的过程中,将样本数据存储到Redis中,这样每次刷新样本数据时就可以保证查询效率,同时将样本数据以广播变量的方式发送给各执行节点,这样既保证了数据的传输效率也保证了样本数据在所有节点的一致性;同时使用临时视图,可以只比对样本数据的唯一关键字,这样提高了检索效率也简化了应用难度。附图说明下面结合附图对本发明进一步说明。附图1为基于sparkstreaming处理流动车辆数据的方法的流程框图;附图2为基于sparkstreaming处理流动车辆数据的系统的结构框图。具体实施方式参照说明书附图和具体实施例对本发明的一种基于sparkstreaming处理流动车辆数据的方法及系统作以下详细地说明。实施例1:如附图1所示,本发明的基于sparkstreaming处理流动车辆数据的方法,一种基于sparkstreaming处理流动车辆数据的方法,其特征在于,该方法步骤如下:S1、获取卡口数据:获取设置卡口的各个路口通过的车辆信息,并将车辆信息进行处理后保存符合条件的数据,支持后续应用及对外服务;具体步骤如下:S101、在各个路口设置卡口,获取每个通过的车辆信息;车辆信息包括车牌号、品牌、颜色以及车辆图片。S102、卡口数据实时推送给kafka,通过流式计算,能够秒级匹配监控的样本数据,为应用提供数据支持;S103、卡口流数据经过采集处理之后存储到消息队列,流数据处理平台消费队列数据后,通过比对样本数据将符合条件的数据进行保存,支持后续应用及对外服务。S2、数据处理:将获取的卡口数据通过数据传输通道kafka发送到数据处理模块,数据处理模块对非实时数据流和流数据进行处理并进行离线数据存储或实时数据存储;具体步骤如下:S201、接入数据:选用Spark-Streaming做为流数据处理的主要技术,Direct方式采用Kafka简单的consumerapi方式来读取数据,无需经由ZooKeeper,此种方式不再需要专门Receiver来持续不断读取数据,满足每秒百万级的流数据处理能力;具体步骤如下:S20101、当batch任务触发时,由Executor读取数据,并参与到其他Executor的数据计算过程中去;S20202、driver来决定读取多少offsets,并将offsets交由checkpoints来维护;S20303、将触发下次batch任务,再由Executor读取Kafka数据并计算。从此过程可以发现Direct方式无需Receiver读取数据,而是需要计算时再读取数据,所以Direct方式的数据消费对内存的要求不高,只需要考虑批量计算所需要的内存即可;另外batch任务堆积时,也不会影响数据堆积。S202、解析数据:把在kafka中接收到的消息转化为数据比对所需的结构化数据,整个数据的解析过程通过Spark-Streaming来进行;数据解析过程是数据比对的基础和前提条件,它把在kafka中接收到的消息转化为数据比对所需的结构化数据。整个数据的解析过程通过Spark-Streaming来进行。Spark的核心是RDD,对于Spark-Streaming来说,它的核心是DStream,DStream类似于RDD,它实质上一系列的RDD的集合,DStream可以按照秒数将数据流进行批量的划分。具体步骤如下:S20201、将接收到的流数据划分为多个batch,即将实时流数据以时间片为单位进行分批,将流处理转化为时间片数据的批处理;S20202、提交给Spark集群进行计算;S20203、将结果批量输出到HDFS或者数据库以及前端页面展示。S203、比对数据:根据样本数据找到符合条件的实时数据,采用Redis缓存和Spark临时视图,同时采用Spark-Streaming的动态广播变量broadcast,保证数据的一致性;具体步骤如下:S20301、通过Structed-Streaming将数据切分成一个个连续的batch;S20302、将数据进行序列化转换,转换之后加载成临时视图可以理解成内存中的表;S20303、通过样本数据与临时视图进行比对,找到命中的数据输出到对应的存储介质中。其中,样本数据存储到Redis中,每次刷新样本数据时均能够保证查询效率;样本数据以广播变量的方式发送给各执行节点,保证数据的传输效率以及样本数据在所有节点的一致性;同时使用临时视图,实现只比对样本数据的唯一关键字,提高检索效率并简化应用难度。数据比对过程是根据样本数据找到符合条件的实时数据的过程,为了达到比对过程的高效性和准确性我们需要保证整个过程的数据交换都是在内存中,尽量减少磁盘的读取过程,所以在比对过程中用到了Redis缓存和Spark临时视图,同时为了保证数据的一致性我们用到了Spark-Streaming的动态广播变量broadcast。RDD、DataFrame、Dataset全都是spark平台下的分布式弹性数据集,为处理超大型数据提供便利,DataFrame和RDD对比引入了schema的概念,DataSet结合了RDD和DataFrame的优点,并带来的一个新的概念Encoder,当序列化数据时,Encoder产生字节码与off-heap进行交互,能够达到按需访问数据的效果,而不用反序列化整个对象。由于Dataset和DataFrame的引入,当我们使用Structed-Streaming处理数据的时候可以支持SQL查询,既将数据加载成有字段的临时表或视图。广播变量实际上就是Executor端用到了driver端的变量。广播变量用来高效分发较大的对象。向所有工作节点发送一个较大的只读值,以供一个或多个Spark操作使用。广播变量的好处,不是每个task一份变量副本,而是变成每个节点的executor才一份副本。这样的话,就可以让变量产生的副本大大减少。Redis是以key-value形式存储,和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求。S3、数据应用:将经过数据处理的数据进行app推送、短信告警、邮件告警以及可视化分析;实施例2:如附图2所示,本发明的基于sparkstreaming处理流动车辆数据的系统,其特征在于,该系统包括卡口数据获取模块、数据处理模块和数据应用模块,卡口数据获取模块通过数据传输通道kafka将获取的数据发送到数据处理模块,数据处理模块将经过处理并存储的数据发送到数据应用模块;其中,卡口数据获取模块用于获取设置卡口的各个路口的通过的车辆信息,并将车辆信息进行处理后保存符合条件的数据,支持后续应用及对外服务;数据处理模块用于对非实时数据和流数据进行处理并进行离线数据存储或实时数据存储;数据处理模块包括,数据接入子模块,用于选用Spark-Streaming做为流数据处理的主要技术,Direct方式采用Kafka简单的consumerapi方式来读取数据,满足每秒百万级的流数据处理能力;数据解析子模块,用于把在kafka中接收到的消息转化为数据比对所需的结构化数据,整个数据的解析过程通过Spark-Streaming来进行;数据比对子模块,用于根据样本数据找到符合条件的实时数据,采用Redis缓存和Spark临时视图,同时采用Spark-Streaming的动态广播变量broadcast,保证数据的一致性。数据应用模块用于将数据进行app推送、短信告警、邮件告警以及可视化分析。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

权利要求:1.一种基于sparkstreaming处理流动车辆数据的方法,其特征在于,该方法步骤如下:S1、获取卡口数据:获取设置卡口的各个路口通过的车辆信息,并将车辆信息进行处理后保存符合条件的数据,支持后续应用及对外服务;S2、数据处理:将获取的卡口数据通过数据传输通道kafka发送到数据处理模块,数据处理模块对非实时数据流和流数据进行处理并进行离线数据存储或实时数据存储;S3、数据应用:将经过数据处理的数据进行app推送、短信告警、邮件告警以及可视化分析。2.根据权利要求1所述的基于sparkstreaming处理流动车辆数据的方法,其特征在于,所述步骤S1中获取卡口数据的具体步骤如下:S101、在各个路口设置卡口,获取每个通过的车辆信息;S102、卡口数据实时推送给kafka,通过流式计算,能够秒级匹配监控的样本数据,为应用提供数据支持;S103、卡口流数据经过采集处理之后存储到消息队列,流数据处理平台消费队列数据后,通过比对样本数据将符合条件的数据进行保存,支持后续应用及对外服务。3.根据权利要求2所述的基于sparkstreaming处理流动车辆数据的方法,其特征在于,所述步骤S101中车辆信息包括车牌号、品牌、颜色以及车辆图片。4.根据权利要求1所述的基于sparkstreaming处理流动车辆数据的方法,其特征在于,所述步骤S2中数据处理的具体步骤如下:S201、接入数据:选用Spark-Streaming做为流数据处理的主要技术,Direct方式采用Kafka简单的consumerapi方式来读取数据,满足每秒百万级的流数据处理能力;S202、解析数据:把在kafka中接收到的消息转化为数据比对所需的结构化数据,整个数据的解析过程通过Spark-Streaming来进行;S203、比对数据:根据样本数据找到符合条件的实时数据,采用Redis缓存和Spark临时视图,同时采用Spark-Streaming的动态广播变量,保证数据的一致性。5.根据权利要求4所述的基于sparkstreaming处理流动车辆数据的方法,其特征在于,所述步骤S201中接入数据的具体步骤如下:S20101、当batch任务触发时,由Executor读取数据,并参与到其他Executor的数据计算过程中去;S20202、driver来决定读取多少offsets,并将offsets交由checkpoints来维护;S20303、将触发下次batch任务,再由Executor读取Kafka数据并计算。6.根据权利要求4或5所述的基于sparkstreaming处理流动车辆数据的方法,其特征在于,所述步骤S202中解析数据的具体步骤如下:S20201、将接收到的流数据划分为多个batch,即将实时流数据以时间片为单位进行分批,将流处理转化为时间片数据的批处理;S20202、提交给Spark集群进行计算;S20203、将结果批量输出到HDFS或者数据库以及前端页面展示。7.根据权利要求6所述的基于sparkstreaming处理流动车辆数据的方法,其特征在于,所述步骤S203比对数据的具体步骤如下:S20301、通过Structed-Streaming将数据切分成一个个连续的batch;S20302、将数据进行序列化转换,转换之后加载成临时视图;S20303、通过样本数据与临时视图进行比对,找到命中的数据输出到对应的存储介质中。8.根据权利要求7所述的基于sparkstreaming处理流动车辆数据的方法,其特征在于,所述步骤20303中的样本数据存储到Redis中,每次刷新样本数据时均能够保证查询效率;样本数据以广播变量的方式发送给各执行节点,保证数据的传输效率以及样本数据在所有节点的一致性;同时使用临时视图,实现只比对样本数据的唯一关键字,提高检索效率并简化应用难度。9.一种基于sparkstreaming处理流动车辆数据的系统,其特征在于,该系统包括卡口数据获取模块、数据处理模块和数据应用模块,卡口数据获取模块通过数据传输通道kafka将获取的数据发送到数据处理模块,数据处理模块将经过处理并存储的数据发送到数据应用模块;其中,卡口数据获取模块用于获取设置卡口的各个路口的通过的车辆信息,并将车辆信息进行处理后保存符合条件的数据,支持后续应用及对外服务;数据处理模块用于对非实时数据和流数据进行处理并进行离线数据存储或实时数据存储;数据应用模块用于将数据进行app推送、短信告警、邮件告警以及可视化分析。10.根据权利要求9所述的基于sparkstreaming处理流动车辆数据的系统,其特征在于,所述数据处理模块包括,数据接入子模块,用于选用Spark-Streaming做为流数据处理的主要技术,Direct方式采用Kafka简单的consumerapi方式来读取数据,满足每秒百万级的流数据处理能力;数据解析子模块,用于把在kafka中接收到的消息转化为数据比对所需的结构化数据,整个数据的解析过程通过Spark-Streaming来进行;数据比对子模块,用于根据样本数据找到符合条件的实时数据,采用Redis缓存和Spark临时视图,同时采用Spark-Streaming的动态广播变量,保证数据的一致性。

百度查询: 浪潮卓数大数据产业发展有限公司 一种基于spark streaming处理流动车辆数据的方法及系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。