项目:离线点击流分析

环境

需要配置:
jdk1.7.0_51
hadoop-2.6.1

在这里插入图片描述
向hdfs上传原始数据
hadoop fs -mkdir /myPro1
hadoop fs -mkdir /myPro1/srcdata
hadoop fs -put access.log.fensi /myPro1/srcdata

运行WeblogPreProcess进行预处理
hadoop jar myPro1.jar cn.bigdata.hive.mr.pre.WeblogPreProcess
hadoop fs -ls /myPro1/output
hadoop fs -cat /myPro1/output/part-m-00000

生成了与处理过后的文件part-m-00000

hive建表

运行ClickStreamThree进行预处理
hadoop jar myPro1-2.jar cn.bigdata.hive.mr.ClickStreamThree

思路如下:
先将数据按照时间排序
再对于每一个bean,若其相邻两条数据,若时间间隔不大,
若时间间隔过大,则
(没看懂,为什么是<和time/1000L)
我觉得应当是在一定的时间间隔内,算是一个用户的访问链。若是时间更长,则为开启了新的访问。

hive建表

create database dw_click;
use dw_click;


create table ods_click_pageviews(
Session string,
remote_addr string,
remote_user string,
time_local string,
request string,
visit_step string,
page_staylong string,
http_referer string,
http_user_agent string,
body_bytes_sent string,
status string)
partitioned by (datestr string)
row format delimited
fields terminated by '\001';


运行ClickStreamVisit进行预处理
mapper读取数据并对数据进行划分
reducer根据步数(step)进行排序
每一个访问链,对应一个visitbean单元

生成visitbean
(项目的代码有错误,找了一会儿bug,发现map读取数据的格式和需要读取的数据的格式对不上)

hadoop jar myPro1-3.jar cn.bigdata.hive.mr.ClickStreamVisit hdfs://HA3VM01:9000/myPro1/output2/part-r-00000 hdfs://HA3VM01:9000/myPro1/output3-right2/

(这里面有一个细节,ClickStreamVisit 在读取数据的时候,自动忽略掉了feild[2],也就是remote_user,我去看原始数据,发现在读取的时候,这一项,全部是“-”,不影响统计结果)

hive建表

create table click_stream_visit(
session     string,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值