mapReduce大数据离线分析涂涂

数据分析一般分为两种,一种是在线一种是离线

流程:

一般都是对于日志文件的采集和分析

场景实例(某个电商网站产生的用户访问日志(access.log)进行离线处理与分析的过程)

1、需求:

基于MapReduce的处理方式,最后会统计出某一天不同省份访问该网站的uv与pv(pv就是点击量,uv是独立访客量)。

上图比较典型的Nginx负载均衡+KeepAlive高可用集群架构,访问的信息日志就存在每台web服务器上

日志文件内容如下:

1001211.167.248.22eecf0780-2578-4d77-a8d6-e2225e8b9169406041GET/topHTTP/1.0408nullnull15231881227671003222.68.207.11eecf0780-2578-4d77-a8d6-e2225e8b9169202021GET/tologinHTTP/1.1504nullMozilla/5.0(Windows;U;WindowsNT5.1)Gecko/20070309Firefox/2.0.0.31523188123267100161.53.137.50c3966af9-8a43-4bda-b58c-c11525ca367b01GET/update/passHTTP/1.0302nullnull15231881237681000221.195.40.1451aa3b538-2f55-4cd7-9f46-6364fdd1e48700GET/user/addHTTP/1.1200nullMozilla/4.0(compatible;MSIE7.0;WindowsNT5.2)15231881242691000121.11.87.1718b0ea90a-77a5-4034-99ed-403c800263dd202021GET/topHTTP/1.0408nullMozilla/5.0(Windows;U;WindowsNT5.1)Gecko/20070803Firefox/1.5.0.121523188120263其每个字段的说明如下:

2、数据采集:

不同的WebServer上都会部署一个Agent用于该Server上日志数据的采集,之后,不同WebServer的FlumeAgent采集的日志数据会下沉到另外一个被称为FlumeConsolidationAgent(聚合Agent)的FlumeAgent上,该FlumeAgent的数据落地方式为输出到HDFS。

刚刚采集到HDFS中的原生数据,我们也称为不规整数据,即目前来说,该数据的格式还无法满足我们对数据处理的基本要求,需要对其进行预处理,转化为我们后面工作所需要的较为规整的数据,所以这里的数据清洗,其实指的就是对数据进行基本的预处理,以方便我们后面的统计分析,所以这一步并不是必须的,需要根据不同的业务需求来进行取舍,只是在我们的场景中需要对数据进行一定的处理。

原来的日志数据格式是如下的:

所以按照上面的分析,我们希望预处理之后的日志数据包含如下的数据字段:

我们采用MapReduce来对数据进行预处理,预处理之后的结果,我们也是保存到HDFS中,即采用如下的架构:

数据清洗的过程主要是编写MapReduce程序,而MapReduce程序的编写又分为写Mapper、Reducer、Job三个基本的过程。但是在我们这个案例中,要达到数据清洗的目的,实际上只需要Mapper就可以了,并不需要Reducer,原因很简单,我们只是预处理数据,在Mapper中就已经可以对数据进行处理了,其输出的数据并不需要进一步经过Redcuer来进行汇总处理。

所以下面就直接编写Mapper和Job的程序代码。

将上面的mr程序打包后上传到我们的Hadoop环境中,这里,对2018-04-08这一天产生的日志数据进行清洗,执行如下命令:

yarnjardata-extract-clean-analysis-1.0-SNAPSHOT-jar-with-dependencies.jar\cn.xpleaf.dataClean.mr.job.AccessLogCleanJob\hdfs://ns1/input/data-clean/access/2018/04/08\hdfs://ns1/output/data-clean/access观察其执行结果:

......18/04/0820:54:21INFOmapreduce.Job:Runningjob:job_1523133033819_000918/04/0820:54:28INFOmapreduce.Job:Jobjob_1523133033819_0009runninginubermode:false18/04/0820:54:28INFOmapreduce.Job:map0%reduce0%18/04/0820:54:35INFOmapreduce.Job:map50%reduce0%18/04/0820:54:40INFOmapreduce.Job:map76%reduce0%18/04/0820:54:43INFOmapreduce.Job:map92%reduce0%18/04/0820:54:45INFOmapreduce.Job:map100%reduce0%18/04/0820:54:46INFOmapreduce.Job:Jobjob_1523133033819_0009completedsuccessfully18/04/0820:54:46INFOmapreduce.Job:Counters:31......可以看到MapReduceJob执行成功!

经过数据清洗之后,就得到了我们做数据的分析统计所需要的比较规整的数据,下面就可以进行数据的统计分析了,即按照业务需求,统计出某一天中每个省份的PV和UV。

我们依然是需要编写MapReduce程序,并且将数据保存到HDFS中,其架构跟前面的数据清洗是一样的:

现在我们已经得到了规整的数据,关于在于如何编写我们的MapReduce程序。

因为要统计的是每个省对应的pv和uv,pv就是点击量,uv是独立访客量,需要将省相同的数据拉取到一起,拉取到一块的这些数据每一条记录就代表了一次点击(pv+1),这里面有同一个用户产生的数据(通过mid来唯一地标识是同一个浏览器,用mid进行去重,得到的就是uv)。

而拉取数据,可以使用Mapper来完成,对数据的统计(pv、uv的计算)则可以通过Reducer来完成,

即Mapper的各个参数可以为如下:

Mapper而Reducer的各个参数可以为如下:

Reducer4.2数据处理过程:MapReduce程序编写根据前面的分析,来编写我们的MapReduce程序。

将上面的mr程序打包后上传到我们的Hadoop环境中,这里,对前面预处理之后的数据进行统计分析,执行如下命令:

yarnjardata-extract-clean-analysis-1.0-SNAPSHOT-jar-with-dependencies.jar\cn.xpleaf.dataClean.mr.job.ProvincePVAndUVJob\hdfs://ns1/output/data-clean/access\hdfs://ns1/output/pv-uv观察其执行结果:

......18/04/0822:22:42INFOmapreduce.Job:Runningjob:job_1523133033819_001018/04/0822:22:49INFOmapreduce.Job:Jobjob_1523133033819_0010runninginubermode:false18/04/0822:22:49INFOmapreduce.Job:map0%reduce0%18/04/0822:22:55INFOmapreduce.Job:map50%reduce0%18/04/0822:22:57INFOmapreduce.Job:map100%reduce0%18/04/0822:23:03INFOmapreduce.Job:map100%reduce100%18/04/0822:23:03INFOmapreduce.Job:Jobjob_1523133033819_0010completedsuccessfully18/04/0822:23:03INFOmapreduce.Job:Counters:49......可以看到MapReduceJob执行成功!

我们可以下载其结果数据文件,并用Notepadd++打开查看其数据信息:

至此,就完成了一个完整的数据采集、清洗、处理的完整离线数据分析案例。

THE END
1.学堂在线数据挖掘网课答案mob64ca12d70c79的技术博客数据分析:通过不同的算法来分析数据并提取有价值的模式。 结果评估:评估模型的效果,选择最佳模型。 结果呈现:通过可视化工具展示分析结果。 下面是数据挖掘流程的示意图: 数据采集数据预处理数据分析结果评估结果呈现 实际代码示例 在这个示例中,我们将使用Python进行简单的数据分析。我们假设有一个包含客户消费数据的CSVhttps://blog.51cto.com/u_16213327/12894449
2.大数据在线分析近线分析与离线分析近线分析介于在线分析和离线分析之间,它允许数据处理和分析在短时间内完成,但不一定要求实时处理。近线分析的目标是在可接受的延迟范围内提供分析结果。 特点 准实时性:数据处理延迟通常在几分钟到几小时内,具体取决于应用场景。 灵活性:相比在线分析,近线分析可以处理更复杂的数据处理任务。 https://blog.csdn.net/weixin_44231544/article/details/142467700
3.在线分析并且,有些目标物不稳定,不便于长期贮存,离线检测中从采样到送检的这段时间有可能发生变化,导致检测结果与实际情况的差异,这时候在线检测就体现出它的优势。离线分析通常只是用于产品(包括中间产品)质量的检验,而在线分析可以进行全程质量控制,保证整个生产过程最优化。https://www.360doc.cn/article/1081018318_1081018318.html
4.离线分析离线分析 就是生产流取样并将样品送到便于分析器分析的某一分析地点进行的分析 离线分析 analysis off-line 从生产流取样并将样品送到便于分析器分析的某一分析地点,此处并不与生产装置直接相连,也可以说分析器位于远处的实验室。https://baike.baidu.com/item/%E7%A6%BB%E7%BA%BF%E5%88%86%E6%9E%90/12730463
5.OLAP在线分析引擎介绍及应用嘲腾讯云开发者社区OLAP(Online Analytical Processing,在线分析处理)引擎是一种专为复杂数据分析和报告设计的系统,它使用户能够从多个角度快速地对大量数据进行交互式分析。 核心原理:1. 多维数据模型:OLAP的核心是一个多维数据模型,通常体现为数据立方体(Data Cube)。数据立方体由维度(Dimensions)、层次(Levels)和度量(Measures)组成。维度https://cloud.tencent.com/developer/article/2424720
6.总有机总有机碳toc分析仪在线离线有什么特点?怎么选用?大家在使用总有机总有机碳toc分析仪的时候,不了解什么是在线监测,什么是离线检测?应该怎么选用?下面有我为大家介绍一下:如果是实验室使用,选择离线检测,如果是测流动的水,比如连接管道,选择在线检测。总有https://www.chem17.com/tech_news/detail/3008773.html
7.用手机导航是个坑细说麻烦在哪里?GPSGPS新闻离线版软件优缺点分析 那么看到了在线电子地图导航的一些缺陷之后,我们最快能够相当的解决办法就是安装一款离线版导航软件。其实行货手机中偶尔会附赠一些离线版的导航软件供用户使用,但是不一定好用,所以很多用户更加倾向于选择比较熟悉的凯立德、道道通、高德等导航软件。 https://gps.zol.com.cn/239/2399981_all.html
8.啥是离线数据处理什么是离线数据处理离线数据处理是指在数据存储和处理过程中,将数据从其原始来源中移除,并在离线环境中进行处理和分析的过程。这种处理方式通常用于对历史数据进行分析,以便找出趋势、模式和其他有价值的信息。 离线数据处理的主要优势包括: 更大的数据处理能力:离线处理可以使用更大的计算资源和存储空间,以处理大量的数据。 https://cloud.tencent.cn/developer/information/%E5%95%A5%E6%98%AF%E7%A6%BB%E7%BA%BF%E6%95%B0%E6%8D%AE%E5%A4%84%E7%90%86-video
9.什么是离线大数据分析帆软数字化转型知识库什么是离线大数据分析 离线大数据分析是指在不依赖实时数据流的情况下,对收集到的大规模数据进行批处理分析的过程,高效、灵活、经济是其显著特点。高效是指能够在较短时间内处理大规模数据,灵活则是指可以根据需求进行多种分析和处理,经济主要体现在可以利用相对低廉的硬件资源进行大规模数据处理。高效是离线大数据分析的https://www.fanruan.com/blog/article/46659/
10.全面解析十七种数据分析方法,具象数据分析思维!在当今数据驱动的商业环境中,数据分析已经成为了企业获取竞争优势的关键工具。无论是为了优化运营效率,提高客户满意度,还是推动产品创新,企业都需要通过分析大量数据来做出明智的决策。数据分析方法多种多样,每种方法都有其独特的定义和用途,适用于不同的业务场https://mp.weixin.qq.com/s?__biz=MzU3OTg5Njk2NA==&mid=2247496232&idx=1&sn=ed89f750c935267d4a22d9e57fe28c7c&chksm=fd5da1c3ca2a28d581a1063b691e029137d86bbb2a7640e3a50bbd3dc6553a46ebbfcb51cda1&scene=27
11.在线气相色谱仪软件中的在线和脱机模式的功能比较在线气相色谱仪是一种常用的化学分析仪器,其软件系统在实验过程中起到至关重要的作用。其中,在线模式和脱机模式是两种常见的工作模式。http://www.jinghe17.com/huaijun-News-1510187/
12.一文入门Go的性能分析go tool pprof 可以对采集到的 CPU、内存等信息进行分析,go tool trace 则是对采集的 trace 信息进行分析。 2.1 在线分析 go tool pprof 既可以对采集到的离线数据进行分析,也可以是结合上面的 pprof Http 接口,直接在线上进行分析,比如分析程序的内存使用情况: https://xie.infoq.cn/article/58f7ed6c58b97ed01d859f2e3
13.笔记——Dragoon:ahybridandefficientbigtrajectory在本文中,我们提出了一个混合和高效的框架,称为dragoon,基于Spark,以支持离线和在线大轨迹管理和分析。该框架具有一个可变的弹性分布式数据集模型,包括RDD共享、RDD 更新和RDD镜像,它支持历史和流轨迹的混合存储。它还包含一个实时分配器,能够有效地分发轨迹数据,并支持离线和在线分析。因此,Dragoon提供了一个混合分析https://www.jianshu.com/p/e2a4474d8b98
14.NanoscopeAnalysis官方版(AFM数据离线分析软件)下载v1.5.0.0在实验室做研究的各位用户一定需要一款软件帮助分析各种数据,尤其是一些做秘密研究的更是不能够在有网络的情况下使用,这款nanoscope analysis就是非常不错的AFM离线数据分析软件,如果是一位实验室工作人员,那么一定知道AFM是什么,如果你是不小心点进来的那么小编告诉你,这就是原子力显微镜,是众多现代实验室必备的一个东https://www.32r.com/soft/12163.html
15.关于DataLake的概念架构与应用嘲介绍极客公园支持多种分析引擎 可以通过多种引擎对湖上数据进行分析计算,例如离线分析、实时分析、交互式分析、机器学习等多种数据分析场景。 计算可扩展性 计算引擎需要具备可扩展的能力,具备随数据量不断变大、业务不断增长的弹性数据分析的能力。 存储与计算分离(云上) https://www.geekpark.net/news/303245
16.JProfiler帮助文档分析一个应用程序,JProfiler有两种完全不同的方式:默认情况下,你在连接JProfiler GUI的情况下进行分析。 JProfiler GUI为你提供了开始和停止记录按钮,并显示所有记录的分析数据。 在某些情况下,你想在没有JProfiler GUI的情况下进行分析,并在以后分析结果。对于这种情况,JProfiler提供离线分析。 离线分析允许你使用https://www.ej-technologies.com/resources/jprofiler/help_zh_CN/doc/main/offline.html
17.大显身手!固态拉曼分析仪轻松应对各类分析应用(文末有礼)在过程分析技术中有四种主要的分析类型:在线,线上,旁线和离线。新型过程分析技术(PAT)对准确性和可靠性有更高的要求。对 PAT 而言,最 重要的也许就是不受位置和接口限制,使过程分析具有充分的适应性。 本文介绍了在线,线上,旁线和离线四种采样方式的过程分析类型中,固态拉曼系统如何提供快速、连续和准确的成分分https://www.yiqi.com/news/detail_15588.html