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

技术编号:19745284 阅读:26 留言:0更新日期:2018-12-12 04:45
本发明专利技术公开了一种基于大数据框架离线实时处理数据的方法,包含以下步骤:通过Flume从数据源采集数据;将采集到的离线数据上传到离线模块中HDFS分布式文件系统上;将实时数据上传到实时模块中的Kafka集群上;Mapreduce对HDFS上的数据进行预处理;Storm对Kafka集群上的数据进行预处理;将预处理过的离线数据导入到Hive数据仓库中;将预处理过的实时数据导入到Mysql数据库中;在Hive数据仓库中开发分析离线数据将结果传到前端网页实现数据可视化;在Mysql数据库中将实时数据传到前端网页实现数据可视化。本发明专利技术实现了对离线数据和实时数据同时的处理,可以满足多种数据处理的需求。

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

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

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

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

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

1