使用Pig计算出每个ip的点击次数

日志文件格式如下:

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)"
208.115.113.82 - - [31/Jan/2012:00:07:54 +0800] "GET /robots.txt HTTP/1.1" 200 582 "-" "Mozilla/5.0 (compatible; Ezooms/1.0; [email protected])"
220.181.94.221 - - [31/Jan/2012:00:09:24 +0800] "GET /home.php?mod=spacecp&ac=pm&op=showmsg&handlekey=showmsg_3&touid=3&pmid=0&daterange=2&pid=398&tid=66 HTTP/1.1" 200 10070 "-" "Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)"
112.97.24.243 - - [31/Jan/2012:00:14:48 +0800] "GET /data/cache/style_2_common.css?AZH HTTP/1.1" 200 57752 "http://f.dataguru.cn/forum-58-1.html" "Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9A406"

一、Pig下载:

下载地址:http://www.apache.org/dyn/closer.cgi/pig

二、Pig安装:

解压

[[email protected] ~]$ tar -zxf pig-0.14.0.tar.gz

设置环境变量

[[email protected] ~]$ vi .bash_profile

PIG_INSTALL=/home/grid/pig-0.14.0

PIG_CLASSPATH=/home/grid/hadoop-1.2.1/conf/

PATH=$PATH:$PIG_INSTALL/bin

export PIG_INSTALL PATH PIG_CLASSPATH

设置JAVA_HOME

修改hosts文件

验证

[[email protected] ~]$ pig -help

连接到Hadoop集群

[[email protected] ~]$ pig

grunt> ls

hdfs://hadoop1:9000/user/grid/in    <dir>

hdfs://hadoop1:9000/user/grid/out    <dir>

三、开始作业

加载数据

grunt> A = LOAD ‘in/8/access_log.txt‘ USING PigStorage (‘ ‘) AS ( ip, page);

grunt> DESCRIBE A;

A: {ip: bytearray,page: bytearray}

去掉用不着的信息

grunt> B = FOREACH A GENERATE ip;

分组

grunt> C = GROUP B BY ip;

grunt> DESCRIBE C;

C: {group: bytearray,B: {(ip: bytearray)}}

统计

grunt> D = FOREACH C GENERATE group AS ip, COUNT(B) AS count;

查看结果

grunt> DUMP D;

(127.0.0.1,2)

(1.59.65.67,2)

(112.4.2.19,9)

(112.4.2.51,80)

(60.2.99.33,42)

(69.28.58.5,1)

(69.28.58.6,9)

(69.28.58.8,5)

(1.193.3.227,3)

(1.202.221.3,6)

(117.136.9.4,6)

(121.31.62.3,26)

(182.204.8.4,59)

(183.9.112.2,25)

(221.12.37.6,25)

(223.4.16.88,2)

(27.9.110.75,122)

时间: 2024-11-06 08:32:43

使用Pig计算出每个ip的点击次数的相关文章

JS 根据子网掩码,网关计算出所有的IP范围

// 验证IP的正则 var ip_reg = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/; // 验证子网掩码的正则 var mask_reg = /^(254|252|248|240|224|192|128|0)\

在固定宽度 下计算出实际的行高

//根据字符串内容的多少  在固定宽度 下计算出实际的行高 - (CGFloat)HelperTextHeightFromTextString:(NSString *)text width:(CGFloat)textWidth fontSize:(CGFloat)size { if ([self heperGetCurrentIOS] >= 7.0) { //iOS7之后 /* 第一个参数: 预设空间 宽度固定  高度预设 一个最大值 第二个参数: 行间距 如果超出范围是否截断 第三个参数: 属

对指定日期计算出N天后的日期问题

指定日期计算出N天后的日期问题 问题描述:先输入起始日期,再输入任意天数n,求n天后的日期. 源代码一(参考http://zhidao.baidu.com/linkurl=0BxF0QvTywzuRkLUFj6ulUQKYqp97CjUOZBV1UUmXoCkS9HNyOT2axHkcOsRLi-xlB_JE6KvdglSD23S35EUXK) #include<stdio.h> <span style="font-family:SimHei;font-size:14px;&q

输入年月日计算出是该年的第多少天

插件和工具介绍内容均收集于网络,太多了就不一一注明了,在此谢过! 1.Charles 为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析.Charles通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析.一个可查看所有HTTP和SSL/HTTPS流量的工具.这款工具对于你测试和服务器端进行交互的应用非常有用 2.xScope xScope带有六种不同的工具,帮助每一个设计者快速.精确的完成工作,这些工具功能灵活.强大,包括∶量

输入年份和天数计算出几月几号

//转换函数如下,其中通过指针同时向主函数传回月份和天数 void month_day(int year, int yearday, int *month, int *day){ //k月份,leap判断是否闰年(0非闰年1闰年) int k, leap; int tab[2][13] = { { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, { 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30

课堂练习——计算法能够计算出读者购买一批书的最低价格。

1.题目. 书店针对<哈利波特>系列书籍进行促销活动,一共5卷,用编号0.1.2.3.4表示, 单独一卷售价8元, 具体折扣如下所示:                          本数                  折扣                          2                       5%                          3                       10%                          4  

PHP版根据经纬度和半径计算出经纬度的范围

百度地图提供了范围搜索的功能,但是它使用的是百度自己的数据,但是有时候我们需要使用自己的数据,显示在地图上.比如给定两个参数:指定位置(某一处的经纬度lnglat)和搜索半径(r),搜索指定范围内的数据.针对这样的需求,基本有三种方法可以解决:1:根据map提供的计算两个坐标之间距离的方法,逐一计算指定位置和我们DB库中的位置的距离s,用s和r进行比较,如果s<r,则在搜索范围内,返给前段标注在地图上.这种方法如果数据量小,可以尝试,如果数据量大,没测试过,但可以想象-- 2:使用搜索引擎自带的

计算出前N项的数据

#include<iostream> #include<algorithm> #include<numeric> using namespace std; const int N = 10; int helper(int* a,const int num1,const int num2) { int i=1; int j=1; for(int m = 0;m<N;m++) { int tempi = i*num1; int tempj = j*num2; if(t

php 通过ip获取所在城市地址信息 获取计算机外网ip

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-