首页 > 代码库 > 《OD学hadoop》20160910某旅游网项目实战

《OD学hadoop》20160910某旅游网项目实战

一、event事件分析

叶子节点只计算一次

父节点的触发次数由子节点的数量节点

事件流:是由业务人员定义的一系列的具有前后顺序的事件构成的用户操作行为,至少包括两个事件以上。

目标:以事件流为单位,分析事件流中各个事件的触发次数

事件流特征:

1.事件流中每一个事件都会存在一个来源/父事件

计算方式:

1. 不考虑事件流的关系,直接计算各个事件的触发次数(wordcount)

2. 考虑事件流,计算事件流中的各个事件的触发次数

区分

1.uuid,不同访客的事件流不在一起处理:

不同人产生的事件数据放到不同的地方(代码逻辑中)处理(在考虑会话的情况下,不需要考虑)

2. 会话id:不同会话的事件流不在一起处理:

不同会话产生的事件数据放到不同的地方(代码逻辑中)处理

3. 数据流中各个事件的前后顺序

4. 时间维度、平台维度

MapReduce:

Input: 从hbase中读取event事件的数据

Mapper:

前提要求:维度数据在数据库总已存在,在收集数据之前,就已经确定好事件的触发顺序以及规则。

功能:需要从mysql中读取事件维度数据,补全数据(补全数据流id、补全数据的触发系列)

Reducer:

功能:需要处理一个事件流中的所有事件的触发次数

维度:

  时间维度

  平台维度

问题:

1. 数据量很大

2. 处理的数据比较杂:需要处理不同人的、不同会话的

input:二次排序后的数据

功能:通过森林结构计算事件流中的事件触发次数

output:

 

《OD学hadoop》20160910某旅游网项目实战