大数据技术之Flink电商用户行为分析系统(用户画像)

时间:2024-04-04 13:33:15

一、主流的批处理和流处理框架

大数据技术之Flink电商用户行为分析系统(用户画像)

  1. Hadoop中的MapReduce只能做离线计算,也就是批处理,并且基于磁盘计算,属于IO密集型,Shuffle阶段需要大量算力,并且只有map和reduce。
  2. Spark作为一个微批处理的大数据计算框架,主要作用就是类似MapReduce,Spark Streaming可以实现传统意义上的流式计算,但是正如开头所说,属于微批处理,并不是完全的实时,但是Spark基于内存运算,计算能力非常强大。
  3. Storm是真正的流式处理,来一条数据处理一条,但是对于超大流量Storm的处理并不太好。
  4. 而最近几年兴起的Flink,作为和Spark一样的计算框架,利用Hadoop作为数据存储,利用Flink进行计算,Flink是真正的满足实时性要求的计算框架,可以实现毫秒级的相应,面向真正的流数据,以一行一行为计算单位,速度非常快。

二、Flink相关介绍

批处理和流处理

  • 批处理
    批处理主要操作大容量静态数据集,并在计算过程完成后返回结果。可以认为处理的是一个固定时间间隔分组的数据点集合。批处理模式中使用的数据集通常符合下列特征:
     1. 有界:批处理数据集代表数据的有限集合
     2. 持久:数据通常始终存储在某种类型的持久存储位置中
     3. 大量:批处理操作通常是处理极为海量数据集的唯一方法
  • 流处理
    流处理可以对随时进入系统的数据进行计算。流处理方式无需针对整个数据集执行操作,而是对通过系统传输的每个数据项执行操作。流处理中的数据集是“无边界”的,这就产生了几个重要的影响:
     1. 可以处理几乎无限量的数据,但同一时间只能处理一条数据,不同记录间只维持最少量的状态
     2. 处理工作是基于事件的,除非明确停止否则没有“尽头”
     3. 处理结果立即可用,并会随着新数据的抵达继续更新

三、电商用户行为分析指标

  • 统计分析
     1. 点击、浏览
     2. 热门商品、近期热门商品、分类热门商品、流量统计
  • 偏好统计
     1. 收藏、喜欢、评分、打标签
     2. 用户画像,推荐列表(结合特征工程和集器学习算法)
  • 风险控制
     1. 下订单、支付、登录
     2. 刷单监控,订单失效监控,恶意登录(短时间内频繁登录失败)监控

四、项目环境

Windows10、Centos7(三集群,三台分别都是6G,8核)、Idea2019.3、Maven3.3.9、Flink1.7.2、kafka2.11-2.1.0、sacla2.1.18、jdk1.8

五、项目主要模块

  • 热门统计
     利用用户的点击浏览行为,进行流量统计、近期热门商品统计等。

  • 偏好统计
     利用用户的偏好行为,比如收藏、喜欢、评分等,进行用户画像分析,给出个性化的商品推荐列表。

  • 风险控制
     利用用户的常规业务行为,比如登录、下单、支付等,分析数据,对异常情况进行报警提示。

  • 说明
     本项目限于数据,只实现热门统计和风险控制中的部分内容,将包括以下四大模块:实时热门商品统计、实时流量统计、恶意登录监控和订单支付失效监控。
     由于对实时性要求较高,用flink作为数据处理的框架。综合运用flink的各种API,基于EventTime去处理基本的业务需求,并且使用底层的processFunction,基于状态编程和CEP去处理更加复杂的情形。

五、数据源解析

 一共是五份淘宝用户行为数据集,保存为 csv 文件。此数据集包含了淘宝上某一天随机一百万用户的所有行为(包括点击、购买、收藏、喜欢)。数据集的每一行表示一条用户行为,由用户 ID、商品 ID、商品类目 ID、行为类型和时间戳组成,并以逗号分隔,分别保存在每一个分项目的resource中。

六、项目地址

Flink电商用户行为分析系统(用户画像)Github地址
 可Fork可Clone