Hive日志分析实战
2018-03-14 本文已影响66人
明明德撩码
对日志进行分析思路
日志内容格式
"27.38.5.159" "-" "31/Aug/2015:00:04:37 +0800" "GET /course/view.php?id=27 HTTP/1.1" "303" "440" - "http://www.ibeifeng.com/user.php?act=mycourse" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36" "-" "learn.ibeifeng.com"
注意440 后面的- 没有被引号包围。创建
创建利用正则格式化数据的表
CREATE TABLE bf_log_src (
host STRING,
identity STRING,
user STRING,
time STRING,
request STRING,
status STRING,
size STRING,
referer STRING,
agent STRING)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = "([^]) ([^]) ([^]) (-|\[^\]\]) ([^ "]|"[^"]") (-|[0-9]) (-|[0-9])(?: ([^ "]|".") ([^ "]|"."))?"
)
STORED AS TEXTFILE;
导入数据
针对不同业务创建子表
向子表导入数据
执行测试语句
用户自定义时间转换函数(UDF)
evaluate
打jar并加入到hive中
创建日期格式转换函数
image.png使用日期格式转换函数,并重新覆盖数据
分析时间
分析用户访问网站的时间段
针对销售来说,合理安排值班,销售课程
-
执行结果