大数据离线分析系统:统计网站PV、UV

 

目录

一、业务需求

二、业务实现方案

1.技术栈

2.业务实现流程

3.离线分析系统架构图

三、技术实现

1.Hadoop CDH集群管理平台

2.Flume采集服务器日志数据到HDFS

3.Spark SQL清洗数据

4.建立Hive仓库并导入清洗完的数据

5.HQL统计分析PV、UV数据

6.Sqoop同步数据

7.代码分享

8.相关博客文章


一、业务需求

根据网站或app应用每天生成的用户日志数据放在大数据平台中来统计出PV(访问量)和UV(独立访客)

二、业务实现方案

1.技术栈

Hadoop CDH(大数据集群管理)+Flume(数据采集)+Spark(数据计算分析)+Hive(数据仓库)+Sqoop(数据同步)+MySQL

2.业务实现流程

  • 搭建Hadoop CDH集群管理平台
  • Flume将网站日志数据采集到Hadoop中的HDFS分布式存储系统中
  • Spark SQL清洗存储在HDFS的网站日志数据,清洗完后将其数据继续存储在HDFS中
  • Hive建立数据仓库,建立外部表,将清洗完的日志数据从HDFS中导入到Hive的外部表中,作为基础数据的存储
  • 在Hive中新建新的外部表用于存储PV、UV的结果数据
  • 用Hive的HQL统计分析日志数据,统计出PV、UV并将结果数据存到新的外部表中
  • 将统计完的PV、UV数据使用Sqoop从Hive同步到外部的MySQL中供给WEB前端使用

3.离线分析系统架构图

这里写图片描述

三、技术实现

1.Hadoop CDH集群管理平台

一般都是运维去搭建,如果想要自己搭建只能查资料采坑跳坑了。

2.Flume采集服务器日志数据到HDFS

cd 执行代码目录
vi hdfs-avro.conf

hdfs-avro.conf文件内容: 

#定义agent名, source、channel、sink的名称
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# 配置Source
a1.sources.r1.type = exec
a1.sources.r1.channels = c1
a1.sources.r1.deserializer.outputCharset = UTF-8
# 配置需要监控的日志输出目录
a1.sources.r1.command = tail -F /home/data/nginx_log/access.log
#设置缓存提交行数
a1.sources.s1.deserializer.maxLineLength =1048576
a1.sources.s1.fileSuffix = .DONE
a1.sources.s1.ignorePattern = access(_\d{4}\-\d{2}\-\d{2}_\d{2})?\.log(\.DONE)?
a1.sources.s1.consumeOrder = oldest
a1.sources.s1.deserializer = org.apache.flume.sink.solr.morphline.BlobDeserializer$Builder
a1.sources.s1.batchsize = 5
#具体定义channel
a1.channels.c
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值