一种基于Spark大数据框架离线实时处理数据的方法技术

技术编号:19544426 阅读:35 留言:0更新日期:2018-11-24 20:43
本发明专利技术公开了一种基于Spark大数据框架离线实时处理数据的方法,包括以下步骤:通过Flume从数据源采集数据;将采集到的离线数据上传到离线模块中HDFS分布式文件系统上;将实时数据上传到实时模块中的Kafka集群上;Spark对HDFS上的数据进行预处理;Spark Streaming对Kafka集群上的数据进行预处理;将预处理过的离线数据导入到Hive数据仓库中;将预处理过的实时数据导入到Mysql数据库中;在Hive数据仓库中开发分析离线数据将结果传到前端网页实现数据可视化;在Mysql数据库中将实时数据传到前端网页实现数据可视化。本发明专利技术为数据处理业务提供了高效的计算服务和可靠的存储系统,可以满足多种数据处理的需求。

An Offline Real-time Data Processing Method Based on Spark Big Data Framework

The invention discloses a method for offline real-time data processing based on Spark big data framework, which includes the following steps: collecting data from data sources through Flume; uploading the collected offline data to HDFS distributed file system in offline module; uploading real-time data to Kafka cluster in real-time module; and uploading Spark to HDFS cluster in real-time module. Data preprocessing; Spark Streaming preprocesses data on Kafka cluster; imports pre-processed offline data into Hive data warehouse; imports pre-processed real-time data into Mysql database; develops and analyses offline data in Hive data warehouse and transmits the results to front-end web pages to realize data availability. Visualization; In Mysql database, real-time data is transmitted to front-end web pages to realize data visualization. The invention provides an efficient computing service and a reliable storage system for data processing business, and can meet the needs of various data processing.

【技术实现步骤摘要】
一种基于Spark大数据框架离线实时处理数据的方法
本专利技术涉及大数据处理分析领域,特别涉及一种基于Spark大数据框架离线实时处理数据的方法。
技术介绍
如今,随着网络科学技术的飞速发展,人们对互联网的访问量也随之增加,伴随用户行为而产生的数据量也在呈现指数增长。用户每一秒在网络上所产生的行为数据就高达到上百个G,可以毫不客气地说我们已经进入了全面数据的时代。在大数据中有多个应用平台框架,但每个大数据平台框架都各有各的优缺点和应用场景,目前Hadoop是最常用的专门用于离线批处理的框架,拥有良好的稳定性但是速度较慢同时无法实时处理数据。Spark是专门为大规模数据处理而设计的下一代批处理框架,在数据处理的速率上较Hadoop相比有非常大的优势,同时Spark生态中的SparkStreaming可以处理实时数据流。如何通过Spark生态打造一个能处理离线实时数据的大数据框架用来应对各种场景的需求,弥补目前大数据平台处理数据过于单一的问题,这对本领域的一般技术人员而言,是一个难题。
技术实现思路
本专利技术的主要目的在于克服现有技术的缺点与不足,提供一种基于Spark大数据框架离线实时处理数据的方法,该方法能够有效克服处理目前其他大数据平台不能同时处理离线数据和实时数据的不足。本专利技术的目的通过以下的技术方案实现:一种基于Spark大数据框架离线实时处理数据的方法,包含以下步骤:步骤S1、离线实时数据采集:利用Cloudera提供的分布式日志采集系统Flume分别从数据源采集离线数据和实时数据;步骤S2、数据存储和缓存:Flume采集到的离线数据会传到HDFS分布式系统上进行存储,采集到的实时数据会传到Kafka集群上进行缓存;步骤S3、数据预处理:利用Spark计算框架对HDFS分布式系统上存储的离线数据进行预处理,利用实时计算框架SparkStreaming从Kafa集群中提取实时数据进行预处理;步骤S4、数据入库:通过Spark预处理之后的离线数据传入到Hive数据仓库中,通过SparkStreaming预处理之后的实时数据传入到Mysql数据库中进行分类存储;步骤S5、数据分析:在Hive数据仓库中对预处理之后数据根据需求进行语句分析,进一步得出需要的结果;步骤S6、数据展示:将Hive数据仓库中最后的结果传入到Mysql数据库中,通过Mysql数据库将离线数据的结果和实时数据的结果传到前端网页进行展示。所述步骤S1具体为:在机器上搭建好Spark平台的环境并安装相关软件,所述相关软件包括Mysql、Flume;配置Flume相关的配置文件,以Avro的方式进行传输数据;每台机器运行一个Flumeagent,一个Flumeagent中包含M个Source和Sink,Channel作为两者连接的通道;其中M≥1。所述步骤S2具体为:Source从数据源处收集数据后传递给Channel,Sink从Channel收集数据之后输出,输出的离线数据上传到HDFS分布式文件系统上,输出的实时数据上传到Kafka集群上。所述步骤S3具体为:利用Spark计算框架对HDFS分布式系统上存储的离线数据进行预处理,利用实时计算框架SparkStreaming从Kafa集群中提取实时数据进行预处理;预处理的过程包括清洗、格式整理、滤除脏数据;利用scala或Java编程语言来编写相关预处理程序,在Eclipse软件上进行编写打包,放到Linux系统中进行运行。所述步骤S4具体为:在Hive数据仓库中建立数据处理所需的模型表,将通过Spark预处理之后的离线数据传入到Hive数据仓库中进行存储,等待后续的处理;通过SparkStreaming预处理之后的实时数据传入到Mysql数据库中进行分类存储。所述步骤S5具体为:在Hive数据仓库中提供实时查询功能,同时利用Sparksql工具实现对Hive中的数据实现复杂查询的功能,在Hive数据仓库中对数据预处理之后,根据需求进行语句分析,进一步得出需要的结果;在项目中增添一个Ooize任务调度模块用于管理管理调度大量任务单元。所述步骤S6具体为:Hive数据仓库中,最后的数据结果通过Sqoop工具传入Mysql数据库中,通过Mysql数据库将离线数据的结果和实时数据的结果传到前端网页,通过数据可视化工具将结果展示出来。本专利技术与现有技术相比,具有如下优点和有益效果:1、本专利技术将Spark运用于大数据处理技术中,可以解决在互联网中海量数据处理的问题。Spark是专门为大规模数据处理而设计的下一代批处理框架,类似于HadoopMapreduce并行框架的,Spark主要是基于内存计算而进行开发的并优化了批处理工作负载机制加快了运行的速率,在数据处理的速率上有非常大的优势。Spark不仅能提供交互式查询还能优化迭代负载为迭代式计算提供高速运算支持。SparkStreaming作为Spark核心API中的一个扩展是用于处理实时数据流的流式计算工具。它支持从多种数据源采集工具获取数据,并提供具备容错机制的高吞吐量的实时数据流处理。2、传统的大数据平台框架只能单纯地处理离线数据或者实时数据,本框架将处理离线数据的Spark计算框架和处理实时数据的SparkStreaming计算框架结合起来,是项目中能同时处理离线数据和实时数据。同时框架中能利用Flume工具进行数据采集,还有HDFS、Hive和Mysql能提供数据的存储,最后在前端网页实现数据的可视化。3、本专利技术利用框架中大数据平台的特点,能够有效地处理离线数据和实时数据,提供数据的存储和分析以及展示,使数据处理过程更加高效完善,有较强的可扩展性和容错性。4、本专利技术将专门用于处理离线数据的Spark计算框架和专门用于处理实时数据的SparkStreaming结合起来,实现了对离线数据和实时数据同时的处理,为数据处理业务提供了高效的计算服务和可靠的存储系统,可以满足多种数据处理的需求。附图说明图1是本专利技术所述一种基于Spark大数据框架离线实时处理数据的方法的原理框图。图2是本专利技术所述一种基于Spark大数据框架离线实时处理数据的方法的数据处理步骤的流程示意图。图3是本专利技术所述一种基于Spark大数据框架离线实时处理数据的方法的流程图。具体实施方式下面结合实施例及附图对本专利技术作进一步详细的描述,但本专利技术的实施方式不限于此。如图1、2、3所示,一种基于Spark大数据框架离线实时处理数据的方法,包含以下步骤:步骤一、离线实时数据采集在机器上搭建好Spark平台的环境并安装Mysql、Flume等相关软件。配置Flume相关的配置文件,以Avro的方式进行传输数据。每台机器运行一个Flumeagent,一个Flumeagent中包含多个Sources和Sinks,Channel作为两者连接的通道。步骤二、数据存储和缓存Source从数据源处收集数据后传递给Channel,Sink从Channel收集数据之后输出,输出的离线数据上传到HDFS分布式文件系统上,输出的实时数据上传到Kafka集群上。步骤三、数据预处理利用Spark计算框架对HDFS分布式系统上存储的离线数据进行预处理,利用实时计算框架SparkStreaming从Kafa集群中本文档来自技高网...

【技术保护点】
1.一种基于Spark大数据框架离线实时处理数据的方法,其特征在于,包含以下步骤:步骤S1、离线实时数据采集:利用Cloudera提供的分布式日志采集系统Flume分别从数据源采集离线数据和实时数据;步骤S2、数据存储和缓存:Flume采集到的离线数据会传到HDFS分布式系统上进行存储,采集到的实时数据会传到Kafka集群上进行缓存;步骤S3、数据预处理:利用Spark计算框架对HDFS分布式系统上存储的离线数据进行预处理,利用实时计算框架Spark Streaming从Kafa集群中提取实时数据进行预处理;步骤S4、数据入库:通过Spark预处理之后的离线数据传入到Hive数据仓库中,通过Spark Streaming预处理之后的实时数据传入到Mysql数据库中进行分类存储;步骤S5、数据分析:在Hive数据仓库中对预处理之后数据根据需求进行语句分析,进一步得出需要的结果;步骤S6、数据展示:将Hive数据仓库中最后的结果传入到Mysql数据库中,通过Mysql数据库将离线数据的结果和实时数据的结果传到前端网页进行展示。

【技术特征摘要】
1.一种基于Spark大数据框架离线实时处理数据的方法,其特征在于,包含以下步骤:步骤S1、离线实时数据采集:利用Cloudera提供的分布式日志采集系统Flume分别从数据源采集离线数据和实时数据;步骤S2、数据存储和缓存:Flume采集到的离线数据会传到HDFS分布式系统上进行存储,采集到的实时数据会传到Kafka集群上进行缓存;步骤S3、数据预处理:利用Spark计算框架对HDFS分布式系统上存储的离线数据进行预处理,利用实时计算框架SparkStreaming从Kafa集群中提取实时数据进行预处理;步骤S4、数据入库:通过Spark预处理之后的离线数据传入到Hive数据仓库中,通过SparkStreaming预处理之后的实时数据传入到Mysql数据库中进行分类存储;步骤S5、数据分析:在Hive数据仓库中对预处理之后数据根据需求进行语句分析,进一步得出需要的结果;步骤S6、数据展示:将Hive数据仓库中最后的结果传入到Mysql数据库中,通过Mysql数据库将离线数据的结果和实时数据的结果传到前端网页进行展示。2.根据权利要求1所述基于Spark大数据框架离线实时处理数据的方法,其特征在于,所述步骤S1具体为:在机器上搭建好Spark平台的环境并安装相关软件,所述相关软件包括Mysql、Flume;配置Flume相关的配置文件,以Avro的方式进行传输数据;每台机器运行一个Flumeagent,一个Flumeagent中包含M个Source和Sink,Channel作为两者连接的通道;其中M≥1。3.根据权利要求1所述基于Spark大数据框架离线实时处理数据的方法,其特征在于,所述步骤S2具体为:Source从数据源处收集数据后传递给Channel,Sink从C...

【专利技术属性】
技术研发人员:柯峰梁烜彰
申请(专利权)人:华南理工大学
类型:发明
国别省市:广东,44

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

1