热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

电商用户行为分析大数据平台相关系列8-数据分析流程

1、离线数据(日志)分析流程离线数据分析是一种非实时数据分析,主要是分析日志、用户操作历史或者对已有历史数据分析。本文将以最常见的日志分析作为介绍,其他类似,只是数据收集方式可能不一样。

1、离线数据(日志)分析流程

离线数据分析是一种非实时数据分析,主要是分析日志、用户操作历史或者对已有历史数据分析。本文将以最常见的日志分析作为介绍,其他类似,只是数据收集方式可能不一样。

1.1、数据来源

数据来源主要依赖于分析系统服务于哪些业务。如,需要分析用户购物习惯或者分析各个区域热销商品,则需要依赖于购物网站的操作日志或者销售日志。而如果是分析各个地区某一时段通话、上网高峰,则数据来源则是运营商监控系统等。
一般情况,数据来源分为一下两类:
- 互联网行业:网站、app、交易系统等
- 传统行业:电信、上网、电话、发短信等

无论是传统行业还是互联网行业,我们执行的每一个动作,网站(app)都会与后台服务器进行交互,短信、电话等也会与运营商基站、服务器进行交互。所以,我们就可以在服务器端完成日志记录。

后台服务器分类(传统bs或者cs服务,包括app):
- 非集群等小型项目:Tomcat、Jetty等通过配置可以将log记录到指定目录。也可以在操作业务中实现日志记录功能。
- 集群等高并发应用:Nginx,apache等,一般是通过Nginx等配置记录session等日志。当然最终服务也是具体的tomcat等,也可以在tomcat以及业务中记录日志。

1.2、日志整理、收集

服务器将日志写到固定目录中,可能是一个也可能是多个文件,而且对于集群一般都是多态服务器,所以需要将多份日志进行整理。我们可以通过一个日志转移工具以及一个定时任务完成整理合并。该步骤主要是将当天所有日志数据采集进行合并处理,最终整理为一份日志,以便后续传输。

日志转移工具可以用python,java等实现。

1.3、日志传输

日志整理后,就需要专门的收集工具,将其上传到HDFS或者其他文件系统,统一管理,并便于后续MapReduce或者Spark等进行分析。flume就是比较流程的日志收集工具,电商用户行为分析大数据平台相关系列6-flume安装中已经将flume配置完成,通过实时监控/usr/local/logs目录,如果其中产生新文件,然后flume会将新文件上传到对应的HDFS集群。

1.4、日志存储、清洗、分区

1.4.1 存储

大数据分析的日志信息一般都要保存到分布式文件系统,如HDFS等。具体原因如下:
- 大型应用生成的日志量交大,可能一个大型网站每天日质量将达到几百G或者1T,一般单文件存储很难满足这种类型的大文件量存储。
- 分布式文件系统容易扩充容量,而且可以做到近似无感知扩容。
- 分布式文件系统更安全,具有很好的容灾能力。分布式文件系统每一个文件都具有多份备份,且至少有一个备份远离当前机架或者机房。
- 分布式文件系统可以很好的支持各种数据仓库或者分布式计算框架。如hive或者spark,mapreduce。

1.4.2、清洗

1.4.2.1、清洗原因

flume等收集工具收集的日志信息可能有些不符合预期,我们称之为脏数据,清洗的主要目的就是过滤掉这部分脏数据,在HDFS上保存一份经过清洗的数据。

1.4.2.2、清洗方式

一般是自己开发MapReduce作业,并且使用定时任务来调度。也可以使用Oozie来进行定时调度。

1.4.2.3、清洗结果

将清洗后结果写入到HDFS的另外一个文件

1.4.3、分区

HDFS数据清洗后,需要导入到Hive的某个表中,可以是动态分区或者使用Hive分区表,每个分区放一天数据。

1.5、数据分析

通常来说,数据分析系统会针对Hive中数据进行分析和开发。这也就意味着Spark的数据来源是Hive中的某些表。根据这些表,我们可以开发特殊的,符合自己业务的大数据平台,并通过平台服务数据分析师、管理人员等。

2、实时数据分析流程

实时数据分析其实应该叫做类实时数据分析,因为暂时还不能将系统产生日志信息交由数据分析系统分析,还是需要将日志信息收集到数据分析平台,然后进行分析。只不过收集频率不再是一天,而是以分钟作为单位收集日志。

2.1、数据来源

实时数据分析数据来源与离线日志分析数据来源基本相同。但是,非常重要的一点,就是埋点。也就是说,在网站/app的哪个页面的哪些操作发生时,前端的代码(网站,Javascript;app,android/IOS),就通过网络请求,(Ajax;socket),向后端的服务器发送指定格式的日志数据。

2.2、日志收集

实时数据分析服务端写日志与连线分析相同,都是Nginx或者Tomcat等写日志信息。

2.3、日志传输

实时分析系统日志传输有两条同时并行路径:
- 同离线日志分析,定期将文件保存到HDFS进行清洗、分区,以便后续连线分析。
- 使用flume以很短的时间片收集日志信息,如每隔1分钟收集一次,并将收集内容写入Kafka等消息队列,以供实时分析。
- 可以在业务中通过API将日志信息直接写入flume,由flume写入后续环节。

2.4、日志写入消息队列

实时数据一般都是写入到分布式消息队列中,如Kafka。实时数据、日志实时写入到消息队列,后端分析程序可以从消息队列中获取具体分析数据进行分析。

2.5、数据分析

大数据实时计算系统,比如说用Storm、Spark Streaming开发的,可以实时的从Kafka中拉取数据,然后对实时的数据进行处理和计算,这里可以封装大量复杂的业务逻辑,甚至调用复杂的机器学习、数据挖掘、智能推荐的算法,然后实现实时的车辆调度、实时推荐。

电商用户行为分析大数据平台系列已发布笔记列表


推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 数据对比分析图PPT(127.0.0.1表示什么)的使用方法和意义
    本文介绍了数据对比分析图PPT的使用方法和意义,解释了127.0.0.1的含义,并提供了相关资源下载。同时还讨论了目标管理的概念和MBO的实施方法。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • Struts2+Sring+Hibernate简单配置
    2019独角兽企业重金招聘Python工程师标准Struts2SpringHibernate搭建全解!Struts2SpringHibernate是J2EE的最 ... [详细]
  • Hadoop源码解析1Hadoop工程包架构解析
    1 Hadoop中各工程包依赖简述   Google的核心竞争技术是它的计算平台。Google的大牛们用了下面5篇文章,介绍了它们的计算设施。   GoogleCluster:ht ... [详细]
  • MR程序的几种提交运行模式本地模型运行1在windows的eclipse里面直接运行main方法,就会将job提交给本地执行器localjobrunner执行-- ... [详细]
  •        在搭建Hadoop环境之前,请先阅读如下博文,把搭建Hadoop环境之前的准备工作做好,博文如下:       1、CentOS6.7下安装JDK,地址:http:b ... [详细]
  • 我们在之前的文章中已经初步介绍了Cloudera。hadoop基础----hadoop实战(零)-----hadoop的平台版本选择从版本选择这篇文章中我们了解到除了hadoop官方版本外很多 ... [详细]
  • springboot基于redis配置session共享项目环境配置pom.xml引入依赖application.properties配置Cookie序列化(高版本不需要)测试启 ... [详细]
  • ConsumerConfiguration在kafka0.9使用JavaConsumer替代了老版本的scalaConsumer。新版的配置如下:bootstrap. ... [详细]
  • Azkaban(三)Azkaban的使用
    界面介绍首页有四个菜单projects:最重要的部分,创建一个工程,所有flows将在工程中运行。scheduling:显示定时任务executing:显示当前运行的任务histo ... [详细]
  • 既然HDFS是存取数据的分布式文件系统,那么对HDFS的操作,就是文件系统的基本操作,比如文件的创建、修改、删除、修改权限等,文件夹的创建、删除、重命名等。对HDFS的操作命令类似于Linux的she ... [详细]
  • 本文_大数据之非常详细Sqoop安装和基本操作
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了大数据之非常详细Sqoop安装和基本操作相关的知识,希望对你有一定的参考价值。大数据大数据之 ... [详细]
  • Hadoop之Yarn
    目录1Hadoop1.x和Hadoop2.x架构区别2Yarn概述3Yarn基本架构4Yarn工作机制5作业提交全过程6资源调度器7任务的推测执行1Hadoop1.x和Hadoo ... [详细]
author-avatar
莪鈈稀罕rn
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有