流程如下:


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 当天和昨天的日志,实际上我就分析昨天的,不过当天日志里会有昨天的日志

3  put 完以后,通过编写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语句进行日志分析了



涉及到几个脚本  


1  putiislog.py  (总执行文件,里面含有所有过程)

2  advanceiislogparser.py  (结构化advancelog日志,每列用 * 分割)
3  mapiislog.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


4  mapandreduce.sh  (map/reduce 过程,创建分区,数据导入到hive)


1 2 4 脚本见附件    用linux 下的vim 打开