一种基于spark streaming的大数据流处理方法和系统技术方案

技术编号:13677447 阅读:45 留言:0更新日期:2016-09-08 04:05
本发明专利技术涉及一种基于spark streaming的大数据流处理方法和系统。其中方法包括:步骤S1,在约定位置处接收数据源发送的数据,若数据源为HDFS,则执行步骤S2,若数据源为FLUME,则执行步骤S3;步骤S2,将数据以文件形式存储,执行步骤S3;步骤S3,spark streaming对接收的数据或者文件进行处理;步骤S4,spark streaming按照时间间隔将文件或数据的处理结果写入结果目录。本发明专利技术在容错、数据保证方面,提供了更好的支持容错状态计算;在实现、编程API方面,以Scala编程,也支持Java;在集群管理集成方面,Spark Streaming可以运行在自己的集群上,在YARN和Mesos上也均能运行。

【技术实现步骤摘要】

本专利技术涉及大数据流处理领域,尤其涉及一种基于spark streaming的大数据流处理方法和系统
技术介绍
现有技术中经常使用Storm实现数据流模型,使用Storm实现数据流模型时,其中数据持续地流经一个转换实体网络。一个数据流的抽象称为一个流,这是一个无限的元组序列。元组就像一种使用一些附加的序列化代码来表示标准数据类型(比如整数、浮点和字节数组)或用户定义类型的结构。每个流由一个唯一ID定义,这个ID可用于构建数据源和接收器的拓扑结构。但是Storm有其自身的缺陷,例如:在容错、数据保证方面,Storm中每个单独的记录通过系统时必须被跟踪,所以Storm能够至少保证每个记录将被处理一次,但是在从错误中恢复过来时候允许出现重复记录,这意味着可变状态可能不正确地被更新两次;在实现、编程API方面,由于Storm的内核是clojure编写的(不过大部分的拓展工作都是java编写的),为我们理解它的实现带来了一定的困难;在集群管理集成方面,Storm可以运行在自己的集群上,Storm还能运行在Mesos上,但是运行在YARN时,需要有一个第三方支持组件Storm on YARN,并不是原生支持。
技术实现思路
本专利技术所要解决的技术问题是针对现有技术的不足,提供一种基于spark streaming的大数据流处理方法和系统。本专利技术解决上述技术问题的技术方案如下:一种基于spark streaming的大数据流处理方法,包括如下步骤:步骤S1,在约定位置处接收数据源发送的数据,若数据源为HDFS,则执行步骤S2,若数据源为FLUME,则执行步骤S3;步骤S2,将数据以文件形式存储,执行步骤S3;步骤S3,spark streaming对接收的数据或者文件进行处理;步骤S4,spark streaming按照时间间隔将文件或数据的处理结果写入结果目录。本专利技术的有益效果是:本专利技术通过spark streaming将接收到的文件或者数据按照时间间隔进行批量处理并且按照时间间隔写入结果目录,相较于现有技术中使用Storm对数据或者文件一次一个的处理,并且单独记录处理结果,本专利技术能够加快处理速度,提高处理效率,并且由于是按照时间间隔记录处理结果,因此容错性更佳。在上述技术方案的基础上,本专利技术还可以做如下改进。进一步地,步骤S1中,若数据源为HDFS,则所述约定位置为HDFS固定目录,若数据源为FLUME,则所述约定位置为约定主机的约定端口。采用上述进一步方案的有益效果是:根据数据源的不同,合理的分配接收数据源的位置,能够避免数据遗漏,保证数据原始性和准确性。进一步地,若数据源为HDFS,在执行步骤S3之前还包括:spark streaming按照时间间隔监控HDFS固定目录下是否有新增的文件,如果有,则执行步骤S3,对新增的文件进行处理,否则继续监控。采用上述进一步方案的有益效果是:在数据源是HDFS的情况下,按照时间间隔监控HDFS固定目录并判断是否有新增文件,可以将新增文件汇总,以便于对文件进行后续处理。进一步地,若数据源为FLUME,且FLUME的模式为推模式,在执行步骤S1之前还包括:启动spark streaming并基于spark streaming按照时间间隔监控约定
主机的约定端口是否有新增的数据,如果有,则执行步骤S1,接收新增的数据,否则继续监控。采用上述进一步方案的有益效果是:在数据源为FLUME且FLUME的模式为推模式的情况下,按照时间间隔监控约定端口并判断是否有新增数据,可以将新增数据汇总,以便于对数据进行后续处理。进一步地,若数据源为FLUME,且FLUME的模式为拉模式,在执行步骤S3之前还包括:启动spark streaming并基于spark streaming按照时间间隔监控约定主机的约定端口是否有新增的数据,如果有,则执行步骤S3,对新增的数据进行处理,否则继续监控。采用上述进一步方案的有益效果是:在数据源为FLUME且FLUME的模式为拉模式的情况下,按照时间间隔监控约定端口并判断是否有新增数据,可以将新增数据汇总,以便于对数据进行后续处理。本专利技术解决上述技术问题的另一种技术方案如下:一种基于spark streaming的大数据流处理系统,包括数据接收模块、文件存储模块、处理模块和写入模块:所述数据接收模块,用于在约定位置处接收数据源发送的数据,若数据源为HDFS,则调用所述文件存储模块,若数据源为FLUME,则调用所述处理模块;所述文件存储模块,用于将数据以文件形式存储,并调用所述处理模块;所述处理模块,用于基于spark streaming对接收的数据或者文件进行处理,并调用所述写入模块;所述写入模块,用于基于spark streaming按照时间间隔将文件或数据的处理结果写入结果目录。本专利技术的有益效果是:本专利技术通过spark streaming将接收到的文件或
者数据按照时间间隔进行批量处理并且按照时间间隔写入结果目录,相较于现有技术中使用Storm对数据或者文件一次一个的处理,并且单独记录处理结果,本专利技术能够加快处理速度,提高处理效率,并且由于是按照时间间隔记录处理结果,因此容错性更佳。在上述技术方案的基础上,本专利技术还可以做如下改进。进一步地,若数据源为HDFS,则所述约定位置为HDFS固定目录,若数据源为FLUME,则所述约定位置为约定主机的约定端口。采用上述进一步方案的有益效果是:根据数据源的不同,合理的分配接收数据源的位置,能够避免数据遗漏,保证数据原始性和准确性。进一步地,若数据源为HDFS,则还包括:第一监控模块,分别与所述文件存储模块和所述处理模块连接,用于基于spark streaming按照时间间隔监控HDFS固定目录下是否有新增的文件,如果有,则调用所述处理模块,否则继续监控。采用上述进一步方案的有益效果是:在数据源是HDFS的情况下,按照时间间隔监控HDFS固定目录并判断是否有新增文件,可以将新增文件汇总,以便于对文件进行后续处理。进一步地,若数据源为FLUME,且FLUME的模式为推模式,则还包括:第二监控模块,与所述数据接收模块连接,用于启动spark streaming并基于spark streaming按照时间间隔监控约定主机的约定端口是否有新增的数据,如果有,则调用所述数据接收模块,否则继续监控。采用上述进一步方案的有益效果是:在数据源为FLUME且FLUME的模式为推模式的情况下,按照时间间隔监控约定端口并判断是否有新增数据,可以将新增数据汇总,以便于对数据进行后续处理。进一步地,若数据源为FLUME,且FLUME的模式为拉模式,则还包括:第三监控模块,分别与所述数据接收模块和所述处理模块连接,用于启
动spark streaming并基于spark streaming按照时间间隔监控约定主机的约定端口是否有新增的数据,如果有,则调用所述处理模块,否则继续监控。采用上述进一步方案的有益效果是:在数据源为FLUME且FLUME的模式为拉模式的情况下,按照时间间隔监控约定端口并判断是否有新增数据,可以将新增数据汇总,以便于对数据进行后续处理。附图说明图1为本专利技术中所述基于spark strea本文档来自技高网
...

【技术保护点】
一种基于spark streami ng的大数据流处理方法,其特征在于,包括如下步骤:步骤S1,在约定位置处接收数据源发送的数据,若数据源为HDFS,则执行步骤S2,若数据源为FLUME,则执行步骤S3;步骤S2,将数据以文件形式存储,执行步骤S3;步骤S3,spark streami ng对接收的数据或者文件进行处理;步骤S4,spark streami ng按照时间间隔将文件或数据的处理结果写入结果目录。

【技术特征摘要】
1.一种基于spark streami ng的大数据流处理方法,其特征在于,包括如下步骤:步骤S1,在约定位置处接收数据源发送的数据,若数据源为HDFS,则执行步骤S2,若数据源为FLUME,则执行步骤S3;步骤S2,将数据以文件形式存储,执行步骤S3;步骤S3,spark streami ng对接收的数据或者文件进行处理;步骤S4,spark streami ng按照时间间隔将文件或数据的处理结果写入结果目录。2.根据权利要求1所述的基于spark streami ng的大数据流处理方法,其特征在于,步骤S1中,若数据源为HDFS,则所述约定位置为HDFS固定目录,若数据源为FLUME,则所述约定位置为约定主机的约定端口。3.根据权利要求2所述的基于spark streami ng的大数据流处理方法,其特征在于,若数据源为HDFS,在执行步骤S3之前还包括:spark streami ng按照时间间隔监控HDFS固定目录下是否有新增的文件,如果有,则执行步骤S3,对新增的文件进行处理,否则继续监控。4.根据权利要求2所述的基于spark streami ng的大数据流处理方法,其特征在于,若数据源为FLUME,且FLUME的模式为推模式,在执行步骤S1之前还包括:启动spark streami ng并基于spark streami ng按照时间间隔监控约定主机的约定端口是否有新增的数据,如果有,则执行步骤S1,接收新增的数据,否则继续监控。5.根据权利要求2所述的基于spark streami ng的大数据流处理方法,其特征在于,若数据源为FLUME,且FLUME的模式为拉模式,在执行步骤S3
\t之前还包括:启动spark streami ng并基于spark streami ng按照时间间隔监控约定主机的约定端口是否有新增的数据,如果有,则执行步骤S3,对新增的数据进行处理,否则继续监控。6.一种基于spark streami ng的大数据流处理系统,其特征在于,包括数据接收模块、...

【专利技术属性】
技术研发人员:杜旭苗
申请(专利权)人:北京思特奇信息技术股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1