Hadoop Pig统计网站访问IP次数

1161621777869_.pic_hd.jpg

环境

  • CentOS 6.8 64位 1核 2GB

  • JDK 1.7.0_75 64 位

  • Hadoop 1.1.2

  • Pig 0.16.0

上传访问日志

  • 准备数据
$ zcat access.log.*.gz > website_log.txt
  • 在HDFS中创建 /class7/in 目录
$ hadoop fs -mkdir /class7/input
  • 把 website_log.txt 上传到 /class7/in 目录中
$ hadoop fs -copyFromLocal website_log.txt /class7/input

测试

  • 进入 pig shell 命令行模式
$ pig
grunt>
  • 执行代码
# 加载HDFS中访问日志,使用空格进行分割,只加载ip列
grunt> records = LOAD 'hdfs://hadoop:9000/class7/input/website_log.txt' USING PigStorage(' ') AS (ip:chararray);
# 按照ip进行分组,统计每个ip点击数
grunt> records_b = GROUP records BY ip;
grunt> records_c = FOREACH records_b GENERATE group,COUNT(records) AS click;
# 按照点击数排序,保留点击数前10个的ip数据
grunt> records_d = ORDER records_c by click DESC;
grunt> top10 = LIMIT records_d 10;
# 把生成的数据保存到HDFS的class7目录中
grunt> STORE top10 INTO 'hdfs://hadoop:9000/class7/out';

执行时间较长,请耐心等待。

  • 退出 pig shell 命令行模式
grunt> quit
  • 查看结果
$ hadoop fs -cat /class7/out/part-r-00000
47.92.207.41    166393
116.232.131.160 124944
101.229.64.218  96282
116.232.133.175 88830
116.232.155.32  69152
115.29.174.137  65156
47.102.159.33   39069
101.87.56.221   26717
47.98.152.9 26512
122.225.225.39  17218
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值