你用pig分析access_log日志中ip访问次数

环境说明:

os版本:rhel5.7 64位

hadoop版本:hadoop-0.20.2

hbase版本:hbase-0.90.5

pig版本:pig-0.9.2

访问日志文件,下载文章中的附件!

日志放在本地目录路径为:/home/hadoop/access_log.txt

日志格式为:

220.181.108.151 - - [31/Jan/2012:00:02:32 +0800] "GET /home.php?mod=space&uid=158&do=album&view=me&from=space HTTP/1.1" 200 8784 "-" "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"

1)在hdfs文件系统中创建input目录

grunt> mkdir input

grunt> ls

hdfs://node1.test.com:9000/user/hadoop/input    <dir>

grunt> cd input

grunt> ls

grunt> pwd

hdfs://node1.test.com:9000/user/hadoop/input

2)把本地日志文件系统加载到hdfs系统当前目录的log.txt文件里面;

grunt> copyFromLocal /home/hadoop/access_log.txt log.txt

2014-10-14 10:53:49,667 [Thread-7] INFO  org.apache.hadoop.hdfs.DFSClient - Exception in createBlockOutputStream java.net.NoRouteToHostException: No route to host

2014-10-14 10:53:49,667 [Thread-7] INFO  org.apache.hadoop.hdfs.DFSClient - Abandoning block blk_-7546596643624545852_1118

2014-10-14 10:53:49,669 [Thread-7] INFO  org.apache.hadoop.hdfs.DFSClient - Excluding datanode 172.16.41.154:50010

#查看相关文件

grunt> ls

hdfs://node1.test.com:9000/user/hadoop/input/log.txt<r 2>       7118627

3)加载文件内容到变量a中,分隔符为‘ ’;

grunt> a = load ‘/user/hadoop/input/log.txt‘

>> using PigStorage(‘ ‘)

>> AS (ip,a1,a2,a3,a4,a5,a6,a7,a8);

4)对ip字段过滤

grunt> b = foreach a generate ip;

5)按ip对c进行group by操作:

grunt> c = group b by ip;

6)对ip点击次数进行统计:

grunt> d = foreach c generate group,COUNT($1);

显示计算结果

grunt> dump d;

时间: 2024-07-30 10:18:43

你用pig分析access_log日志中ip访问次数的相关文章

操作文件-取出一个60s内log日志中ip访问次数超过100次的ip

import timea=0while True: d={} f = open(r"/Users/**juan/Downloads/access.log",encoding="utf-8") f.seek(a) for line in f: if line.split() !="": f1=line.split(" ")[0] if f1 not in d: d[f1]=1 else: d[f1] += 1 a=f.tell(

IIS日志——统计IP访问次数的一种方法

使用LogParser对IIS服务器被Hit访问的IP进行次数统计,方便结合防火墙IP***列表对IIS网站进行日志审计报表的编写 配置IIS网站的日志 下载进行日志分析的两个工具LogParser(命令行工具),下载地址:http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=24659LogParser Studio(图形化工具),下载地址:http://gallery.technet.microsoft.

python分析nginx日志的ip,url,status

Python 脚本如下: #!/usr/bin/env python #_*_coding:utf-8 _*_ __author__ = 'lvnian' #!/usr/bin env python # coding: utf-8 import MySQLdb as mysql import sys, os db = mysql.connect(user="root",passwd="[email protected]",db="intest",

python统计apache、nginx访问日志IP访问次数并且排序(显示前20条)

前言:python统计apache.nginx访问日志IP访问次数并且排序(显示前20条).其实用awk+sort等命令可以实现,用awk数组也可以实现,这里只是用python尝试下. apache脚本: ips = {} with open("/root/mail_access_log-20180629") as fh:     for line in fh:         ip = line.split(" ")[0]         if 6 < le

linux分析apache日志获取最多访问的前10个IP

apache日志分析可以获得很多有用的信息,现在来试试最基本的,获取最多访问的前10个IP地址及访问次数. 既然是统计,那么awk是必不可少的,好用而高效. 命令如下: awk '{a[$1] += 1;} END {for (i in a) printf("%d %s\n", a[i], i);}' 日志文件 | sort -n | tail 首先用awk统计出来一个列表,然后用sort进行排序,最后用tail取最后的10个. 以上参数可以略作修改显示更多的数据,比如将tail加上-

用python统计日志中IP的数量

引 入 日志文件,是我们记录用户行为的重要手段.而对于不同的用户,我们往往又会根据IP来区分,所以统计日志文件中的IP访问,对于数据分析人员和相关运营专员来说,是一件重要的事情,这里,采用python这门语言来完成这个小功能. 一.分析IP格式 这里只讨论ipv4. 分析IP格式思路有许多,这里我只分析其中一种比较容易理解的. 1) 从分析一个从1~255的数字开始 一个1~255的数细分成以下5个分组. 数字分组 正则表达式表示 1~9 [1-9] 10~99 [1-9][0-9] 100~1

python分析nginx日志的ip(来源)

Python 脚本如下: #!/usr/bin/env python #_*_coding:utf-8 _*_ __author__ = 'gaogd' import MySQLdb as mysql import datetime import sys, os, urllib2, json db = mysql.connect(user="root",passwd="[email protected]",db="intest",host=&qu

awk分析nginx日志中响应时间的方法

针对响应时间慢的问题,我们在nginx日志格式中增加响应时间,现在需要针对响应时间进行分析,查找出相对较慢的响应时间. 1.确认下日志文件格式 日志格式: log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_for

统计日志中ip出现的次数

grep -r 'GET /weixin/weixin_izp/index.html' ./chunyun.access.log > ~/access.log cat access.log |awk '{print $1}'|cut -d, -f3|sort|uniq -c > mycount.log 1.要提取访问量最大的IP,需要先从日志中把IP段提取出来. $ cat aa.txt |awk -F " " '{print $1}' 127.0.0.1 192.168.