hadoop +hive 结构化分析advanceiislog日志
流程如下:1把个website服务器日志目录mount到namenode 服务器相应的目录下:如:
sudo mount -t cifs //10.22.1.81/AdvancedLogging /home/hadoop/advancedlogging/81 -o username="prod\pro",password='it@lent_8*H\'
2通过python 脚本putiislog.py把要分析天数的日志put到hdfs上,此例分析昨天的,因为日志不是按天切换的,所以每次put 当天和昨天的日志,实际上我就分析昨天的,不过当天日志里会有昨天的日志
3put 完以后,通过编写map 和 reduce python脚本,结构化日志
4进入hive 创建相应的分区,(前提是要先创建好表,一般一个表就够) 此例 创建两个分区,website 和 time 如: "alter table structuredlog add partition(website='www.aa.com',time='2013-07-11')"
5 把结构化出来的数据cp 到hive 中,
6 进入hive 就可以通过hql语句进行日志分析了
涉及到几个脚本
1putiislog.py(总执行文件,里面含有所有过程)
2advanceiislogparser.py(结构化advancelog日志,每列用 * 分割)
3mapiislog.py (hdfs map过程)
#!/usr/bin/python2.4
#coding=utf8
import fileinput
import glob
import string
import sys
for line in sys.stdin:
line = line.strip()
print line
4mapandreduce.sh(map/reduce 过程,创建分区,数据导入到hive)
1 2 4 脚本见附件 用linux 下的vim 打开
页:
[1]