生产实习6

电商实战

原理解析

在这里插入图片描述

省流量统计

1.输入:一个包含日志信息的文本文件,其中每条记录包含一个IP地址。
2.Mapper阶段:解析每条日志记录,提取IP地址,并通过IP地址获取对应的省份信息,然后输出键值对(省份,1)。
3.Reducer阶段:接收Mapper输出的键值对,统计每个省份的访问次数,然后输出结果。
整个过程实现了从日志文件中提取IP地址,转换为地理位置,并统计每个省份的访问次数。

关键信息提取

1.Mapper阶段
输入:读取日志文件中的每一行记录,通常每行包含一次访问的详细信息。
LogParser:初始化日志解析器,用于解析每行日志记录,将其转换为一个包含多个字段的键值对映射。
解析与处理:
从解析后的日志信息中提取IP地址、URL、国家、省份、城市和访问时间。
通过URL获取页面ID。
将这些提取的关键信息拼接成一个逗号分隔的字符串。
输出:将URL作为键(key),拼接后的关键信息字符串作为值(value)输出。这意味着每个URL会对应一组相关的访问信息。
2.Reducer阶段
输入:接收Mapper输出的键值对,键是URL,值是对应的关键信息字符串。
处理:对于每个URL,将所有相关的关键信息逐个输出,没有进行复杂的合并或统计操作。
输出:将URL和对应的关键信息字符串输出到最终结果文件中。

使用hive编程

搭建hive环境

hive的下载、安装、配置
启动:hive是建立在hdfs之上的,先启动hdfs,再启动hive
进入hive客户端,或者访问web界面,端口10002
运行sql并测试

编写代码

使用 hive 只需编写sql

创建三张表

日志信息表:日志的原始字段
ip映射表:一个ip对应的国家、省份、城市
结果表:关联上面两张表,映射最终结果

show databases ;
use test;

-- 创建日志信息表
describe trackinfo;
drop table if exists trackinfo;
create table trackInfo(
                          id string,
                          url string,
                          sessionId string,
                          ip string,
                          `time` string
)row format delimited fields terminated by ',';

load  data local inpath "/root/SX_data/trackInfo.txt" overwrite into table trackinfo;


-- 创建ip映射信息表
drop table if exists ipInfo;
create table ipInfo(
                       ip string,
                       country string,
                       province string,
                       city string
)row format delimited fields terminated by ',';

load  data local inpath "/root/SX_data/ipInfo.txt" overwrite into table ipInfo;


-- 创建结果信息表
truncate table track_log;
create table track_log(
                          url string,
                          pageId string,
                          ip string,
                          country string,
                          province string,
                          city string
)row format delimited fields terminated by ',';

insert into track_log
select
    url,
    regexp_extract(url,'topicId=(\\d{5})') as pageId,
    t.ip,
    i.country,
    i.province,
    i.city
from trackinfo t
         left join ipinfo i
                   on t.ip = i.ip
;

-- 查询省份浏览量
select
province,
count(*)
from track_log
group by province;

select
    url,
    regexp_extract(url,'topicId=(\\d{5})') as pageId
from trackinfo t
where id = '20960991758'
;

select regexp_extract("http://www.yihaodian.com/cms/view.do?topicId=18970dgf",'topicId=(\\d{5})')



结果展示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值