【1】项目总体介绍
1项目综述:
在本次课程中,项目分别为bf_track(收集数据),bf_transforer和bf_dataapi。本次项目
主要以分析七个模块的数据,分别为用户基本信息分析,操作系统分析,地域信息分析,
用户浏览深度分析、外链数据分析(指从别的网站进入我们收集数据的网站)、
订单信息分析以及事件分析。那么针对不同的分析模块,我们有不同的用户数据需求,所以
我们在bf_track项目中提供不同的客户端来收集不同的数据。
在bf_transformer中分别采用hive+mr两种方式进行数据分析。在bf_dataapi
中进行分析结果的api提供以及结果图标显示。
注意:不采用IP来标识用户的唯一性(因为ip大多是自动分配的,可变),我们通过在cookie中填充一个uuid
来标识用户的唯一性。
发送的数据:
u_sd=8E9559B3-DA35-44E1-AC98-85EB37D1F263&【会话id】
c_time=144913759797【客户端时间】
&ver=1【version】
&en=e_l【名称event_launch事件启动】
&pl=website【platform平台】
&sdk=js【Software Development Kit软件开发工具包】
&b_rst=1920*1080【分辨率】
&u_ud=12BF4079-223E-4A57-AC60-C1A04D8F7A2F【用户的唯一标识符】&b_iev=Mozilla%2F5.0%20(Windows%20NT%206.1%3B%20WOW64)%20AppleWebKit%2F537.1%20(KHTML%2C%20like%20Gecko)%20Chrome%2F21.0.1180.77%20Safari%2F537.1&l=zh-C【浏览器相关信息】
步骤:
1修改pom文件,添加hadoop和hbase依赖
2添加LoggerUtil类,中间涉及到EventLogConstant常量类和TimeUtil工具类,
LoggerUtil主要作用就是解析日志,返回一个map对象。
EventLogConstants主要作用就是描述hbase的event_logs表的信息(表名,列族名
,列名)以及日志收集的日志中数据参数name,其实列名和name是一样的。
TimeUtil主要作用是解析服务器时间以及定义rowkey中的timestamp时间戳格式。
3编写Mapper类和Runner类
4添加环境变量文件,core-site.xml hbase-site.xml log4j.properties
5添加pom编译代码,并进行测试
本地运行测试:
本地提交job,集群运行测试
本地需要知道提交的job是需要提交到集群上的,所以需要指定两个参数
mapreduce.framework.name和yarn.resourcemanager.address
value分别为yarn和hh:8032即可,但是可能会出现异常信息,此时需要将参数
mapreduce.app-submission.cross-platform设置为true.
参数设置:
集群计较&运行job测试: