数据平台的简单使用

将show.log上传至hdfs的目录下

/log/show/20160101/show.log

两种方式统计前10项最高的点击用户

awk '{a[$1]+=1;}END{for(i in a){print a[i]" " i;}}' show.log |sort -n -r | head -n 10

awk '{print $1}' show.log | sort | uniq -c | sort -k1,1nr | head -10

显示为

9 175ed94b25634d279267ee7f4bc78fe91af1a4da
6 cdb553b08426430183802d085754d3512cb0970a
4 a389c51499484f84b71d26f6a2931edb96825a69
4 822e60d2b699496195d24dc5ddbf92fbac598af3
3 fe606002356c4df1923083c7eeb31e74b4b0502e
3 f8069b0db91345758421e3f781279c78b66360f1
3 ecddeb81f46b4f718cc5c6214a7c495ab88b4a6d
3 e0351f9382c14c008047c13713f5f2e3f7341fad
3 d5b589a6e66c45da8ea117c7c2e860cb0dab4812
3 cc6b23ba6e5846f8b49653b97e171a8c6d70d8f7

用hadoop命令将执行的结果输出到hdfs中

adoop jar /home/hadoop/app/hadoop-2.6.0/share/hadoop/tools/lib/hadoop-streaming-2.6.0.jar -input /log/show/20160101 -output /user/wuyuezhen/output20160416 -mapper 'awk "{print $1}"' -reducer "awk '{sum[\$1]++}END{for(key in sum) print key\"\t\"sum[key]}'"

使用浏览器通过python脚本查看内容

安装mysql服务端

yum install -y mysql-server mysql mysql-devel

进入hive命令行,在test数据库里,创建两个表

create table statpv_00 (
`pv` int(10),
`date` datetime
);

create table stattop_00 (
`userid` varchar(100),
`pv` int(10),
`date` datetime
);

在/home/hadoop/app路径下建立load.sh文件,赋予执行权限

chmod +x load.sh

vi load.sh

#!/bin/bash


MYPATH=`pwd`
HADOOPCMD="/home/hadoop/app/hadoop-2.6.0/bin/hadoop"


$HADOOPCMD fs -cat /user/wuyuezhen/output20160416/* | /usr/bin/awk '{sum+=$2}END{print sum"\t20160101"}' > statpv.20160101
$HADOOPCMD fs -cat /user/gaojunxiu/output20160416/* | /usr/bin/awk '{sum[$1]=$2}END{for(key in sum) print key"\t"sum[key]"\t20151201"}' | sort -k2,2 -n -r | head -n 10 > stattop.20160101


mysql -uhive -phive -e "use test;
load data local infile '$MYPATH/statpv.20160101' into table statpv_00;
load data local infile '$MYPATH/stattop.20160101' into table stattop_00;"

执行脚本,会出现两个文件

./load.sh

在/home/hadoop/app目录下建立文件夹,创建文件,赋权限

mkdir cgi-bin

cd cgi-bin

vi show.py

chmod +x show.py

#!/bin/bash


MYPATH=`pwd`
HADOOPCMD="/home/hadoop/app/hadoop-2.6.0/bin/hadoop"


$HADOOPCMD fs -cat /user/wuyuezhen/output20160416/* | /usr/bin/awk '{sum+=$2}END{print sum"\t20160101"}' > statpv.20160101
$HADOOPCMD fs -cat /user/wuyuezhen/output20160416/* | /usr/bin/awk '{sum[$1]=$2}END{for(key in sum) print key"\t"sum[key]"\t20151201"}' | sort -k2,2 -n -r | head -n 10 > stattop.20160101


mysql -uhive -phive -e "use test;
load data local infile '$MYPATH/statpv.20160101' into table statpv_00;
load data local infile '$MYPATH/stattop.20160101' into table stattop_00;"

在linux命令行里输入python -m CGIHTTPServer

在浏览器里输入ip:8000/cgi-bin/show.py可以访问到前10行


 python -m SimpleHTTPServer 8000  

此命令为通过一个简单的接口可以访问,下载的静态页面小例子,并且每点一次,会通过后台返回一个ip,可以用于统计用户数



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄骅饼子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值