千家信息网

hadoop的日志怎么导入

发表于:2024-09-27 作者:千家信息网编辑
千家信息网最后更新 2024年09月27日,本篇内容主要讲解"hadoop的日志怎么导入",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"hadoop的日志怎么导入"吧!事先说明,这次导入的不是原始的系
千家信息网最后更新 2024年09月27日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;

结果:

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

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

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


函数应用:

  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;

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;

运行结果:

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

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

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

0