推广 热搜:   公司  企业  快速  中国  设备  上海  未来  行业   

Spark综合项目:企业电商分析平台

   日期:2024-10-31     移动:http://kaire.xrbh.cn/quote/6453.html

该项目来源于尚硅谷企业电商数据分析平台项目,构建企业级电商网站的大数据统计分析平台, 该平台以 Spark 框架为核心, 对电商网站的日志进行离线和实时分析。项目以实现需求为核心,通过对电商平台的用户访问 session 分析、 页面单跳转化率统计、 热门商品离线统计、广告流量实时统计4 个业务模块的开发,熟悉SparkCore、SparkSql和SparkStreaming三大组件的Api和开发模式。

Spark综合项目:企业电商分析平台

项目视频:尚硅谷电商数据分析平台视频
项目代码:https://github.com/Icedzzz/SparkCommerceProject

项目分为离线和实时两个需求模块开发。采用技术栈:Hive+Kafka+Spark+Mysql
离线模块:使用SparkCore和SparkSQL对Hive表中数据进行离线分析,完成用户访问 Session 分析、页面单跳转化率分析、各区域热门商品统计三个模块,六个需求指标的计算,并将结果写入Mysql。
实时模块:实时分析系统从Kafka broker 中获取数据, 通过 Spark Streaming 的流式处理对广告点击流量进行实时分析,最终将统计结果存储到 MySQL 的对应表中

在这里插入图片描述

项目模块

├─commons :项目配置工具类、常量接口和工具类等
├─mock :负责模拟生成离线和实时数据
├─adversStat :广告点击流量实时统计
├─areaStat :各区域热门商品统计
├─pageStat :页面单跳转换率分析
├─session :用户访问session分析

离线模块开发

1.用户访问Session分析

用户访问Session分析模块包含四个需求

  • 需求一:统计出符合筛选条件的 session 中,访问时长在 1s~ 3s、 4s~ 6s、 7s~ 9s、10s~ 30s、 30s~ 60s、 1m~ 3m、 3m~10m、 10m~30m、 30m 以上各个范围内的 session占比;访问步长在 1~3、 4~6、 7~9、 10~30、 30~60、 60 以上各个范围内的 session占比,并将结果保存到 MySQL 数据库中。
  • 需求二:在符合条件的 session 中,按照时间比例随机抽取 1000 个 session,将 Session 的相关信息和详细信息保存到 MySQL 数据库中
  • 需求三:统计Top10热门品类的Top10热门session
  • 需求四:Top10热门商品的Top10活跃session统计

需求分析:用户Session就是用户在某个时间段访问网站时的一系列动作,点击、下单、搜索和支付;通过前端埋点将用户动作数据以日志形式发送到服务器(Tomcat、Nginx,再将产生的日志通过Flume发送到Kafka集群,并在Hive数仓中存储。我们再通过Spark对用户Session的数据进行统计分析。
数据描述:如下图,查询词、点击类别/产品ID、订单类别/产品ID集合、付款类别/产品ID集合字段分别代表了用户某个时间段搜索、点击、下单和付款四个动作。再与物品表联立,统计商品点击/购买活跃度
在这里插入图片描述

代码实现:https://github.com/Icedzzz/SparkCommerceProject/blob/master/session/src/main/scala/SessionStat.scala

2. 页面单跳转化率统计

需求分析:需要根据查询对象中设置的 Session 过滤条件,先将对应得 Session过滤出来,以Session信息为Key,聚合页面ID,以动作时间排序,然后根据查询对象中设置的页面路径, 计算页面单跳转化率,比如查询的页面路径为: 3、 5、 7、 8,那么就要计算 3-5、 5-7、 7-8 的页面单跳转化率。
在这里插入图片描述
在这里插入图片描述

实现流程在这里插入图片描述
代码实现
https://github.com/Icedzzz/SparkCommerceProject/blob/master/pageStat/src/main/scala/PageConvertStat.scala

3. 区域热门商品统计

需求分析:联立用户动作表和用户信息表,根据商品点击次数,统计出各区域热门商品Top3

需求实现流程

在这里插入图片描述
代码实现:https://github.com/Icedzzz/SparkCommerceProject/blob/master/areaStat/src/main/scala/AreaTop3Stat.scala

实时模块开发

需求分析:用户每次点击一个广告以后,会产生相应的埋点日志;在大数据实时统计系统中,会通过某些方式将数据写入到分布式消息队列中(Kafka)。日志发送给后台web服务器(nginx,nginx将日志数据负载均衡到多个Tomcat服务器上,Tomcat服务器会不断将日志数据写入Tomcat日志文件中,写入后,就会被日志采集客户端(比如flume agent)所采集,随后写入到消息队列中(kafka,我们的实时计算程序会从消息队列中(kafka)去实时地拉取数据,然后对数据进行实时的计算和统计。
在这里插入图片描述
数据描述

本文地址:http://syank.xrbh.cn/quote/6453.html    迅博思语资讯 http://syank.xrbh.cn/ , 查看更多

特别提示:本信息由相关企业自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


相关动态
推荐动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2023022329号