微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

hadoop的日志怎么导入

本篇内容主要讲解“hadoop的日志怎么导入”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“hadoop的日志怎么导入”吧!

事先说明,这次导入的不是原始的系统日志,是我们技术人员自己开发的流量统计系统里的数据,但基本格式与原始数据差不多。

创建数据表:

//创建扩展表,扩展表的好处在于你执行drop table 时只删除原数据,不会删除原始数据
CREATE EXTERNAL TABLE weblog(
id string,

ip string,

url string,
referrer string,
urlflow string,
useragent string,
usercolordepth string,
userlanguages string,
userresolution string,
username string)
PARTITIONED BY (year string, month string) //使用年份和月份作为分区
row format delimited

fields terminated by '\|'//使用“|”作为认分隔符

STORED AS TEXTFILE  ; 

导入数据:

load data local inpath '/home/hadoop/20130206.txt' overwrite into table weblog partition(year='2013',month='2');

执行查询select count(*) from weblog;

结果:

hadoop的日志怎么导入

统计访问量最高的前10个URL:

select url,count(url) as num from weblog group by url order by num desc limit 10;

hadoop的日志怎么导入

测试环境,只导入少量数据,结果还是不错的。

函数应用:

  1. parse_url 函数,可以分解url中的域名或查询参数,这使得我们对用户行为统计变得更加简单,比如之前我们统计访问最多的前10个url改成访问最多的前10个域名:

select parse_url(url,'HOST')  ,count( parse_url(url,'HOST') ) as num from weblog group by  parse_url(url,'HOST')   order by num desc limit 10;

hadoop的日志怎么导入

2.编辑kpi分析:

前提我们的数据库里有一个文章和编辑id的对应表,呵呵一般CMS系统都会有,如果没有,我只能说,高人~

创建表 

CREATE EXTERNAL TABLE articles(id string,title string,username string) 

row format delimited

fields terminated by '\|'//使用逗号作为认分隔符

STORED AS TEXTFILE;

导入数据前面已经讲过了,不在赘述。

我们网站的内部咨询的id值是guid,因此只要使用regexp_extract函数,正则匹配出url中的id值即可。

得到当天访问最多的前10个页面的访问数量标题,及相关编辑:

select nid,num,title,username
from (select nid,count(nid) as num 
from (select regexp_extract(url,'([A-Z0-9]{8}\-[A-Z0-9]{4}\-[A-Z0-9]{4}\-[A-Z0-9]{4}\-[A-Z0-9]{12})',1) as nid from weblog) as t1 group by nid order by num desc) as t2
join articles on (articles.id = concat("{",t2.nid,"}") ) limit 10;

运行结果:

hadoop的日志怎么导入

由于sql语句比之前的相对复杂一点,我们可以看到hive是把它分成了几个map/reduce来进行的。

举一反三,其他的分析和这都差不多,用户在购物车了删除一个商品,那么url里面肯定有一个商品id,有一个类似delete或remove的动作,那么我们就可以分析出每天最多被用户移除购物车的商品,等等。

到此,相信大家对“hadoop的日志怎么导入”有了更深的了解,不妨来实际操作一番吧!这里是编程之家网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐