MongDB日志分析

石家庄铁道大学2021年秋季

  2019 级课堂测试试卷-MongDB日志分析

课程名称:大型数据库应用技术  任课教师王建民     测试时间:150分钟

 

Result文件数据说明:

Ip:106.39.41.166,(城市)

Date:10/Nov/2016:00:01:02 +0800,(日期)

Day:10,(天数)

Traffic: 54 ,(流量)

Type: video,(类型:视频video或文章article)

Id: 8701(视频或者文章的id)

测试要求:

1、 数据清洗:按照进行数据清洗,并将清洗后的数据导入MongDB数据库中。

两阶段数据清洗:

(1)第一阶段:把需要的信息从原始日志中提取出来

ip:    199.30.25.88

time:  10/Nov/2016:00:01:03 +0800

traffic:  62

文章: article/11325

视频: video/3235

 

create database data;

CREATE TABLE `data_01` ( `ip` string ,
                       `date` string,
                       `day` string,
                       `traffic` string,
                       `type` string ,
                       `id` string
) row format delimited fields terminated by ',' STORED AS TEXTFILE;

load data  local inpath  '/kkb/data/hive-import/result.txt' into table data_01;

 

(2)第二阶段:根据提取出来的信息做精细化操作

ip--->城市 city(IP)

date--> time:2016-11-10 00:01:03

day: 10

traffic:62

type:article/video

id:11325

 

 

(3)MongDB数据库表结构:

create table data(  ip string,  time string , day string, traffic bigint,

type string, id   string )

2、数据处理:

·统计最受欢迎的视频/文章的Top10访问次数 (video/article)

 

CREATE TABLE `id_01` ( `id` string ,
                         `id_count` string
) row format delimited fields terminated by ',' STORED AS TEXTFILE;


insert into id_01 (select id,count(id) from data_02 group by id  order by count(id) desc limit 10);

 

·按照地市统计最受欢迎的Top10课程 (ip)

CREATE TABLE `ip_01` ( `ip` string ,
                       `ip_count` string
) row format delimited fields terminated by ',' STORED AS TEXTFILE;
insert into ip_01 (select ip,count(ip) from data_02 group by ip  order by count(ip) desc limit 10);

 

·按照流量统计最受欢迎的Top10课程 (traffic)

CREATE TABLE `traffic_01` ( `id` string ,
                       `traffic_sum` string
) row format delimited fields terminated by ',' STORED AS TEXTFILE;

insert into traffic_01(
    select id,sum(traffic) from data_02 group by id  order by sum(traffic) desc limit 10
);

 

3、数据可视化:将统计结果倒入MySql数据库中,通过图形化展示的方式展现出来。

导入到mysql:

bin/sqoop export \

--connect jdbc:mysql://node01:3306/data \

--username root \

--password hadoop \

--table id_01 \

--num-mappers 1 \

--export-dir /user/hive/warehouse/data.db/id_01 \

--input-fields-terminated-by ","

 

 

bin/sqoop export \

--connect jdbc:mysql://node01:3306/data \

--username root \

--password hadoop \

--table ip_01 \

--num-mappers 1 \

--export-dir /user/hive/warehouse/data.db/ip_01 \

--input-fields-terminated-by ","

 

bin/sqoop export \

--connect jdbc:mysql://node01:3306/data \

--username root \

--password hadoop \

--table traffic_01 \

--num-mappers 1 \

--export-dir /user/hive/warehouse/data.db/traffic_01 \

--input-fields-terminated-by ","

 

最受欢迎的视频/文章的Top10访问次数 (video/article):

 

按照地市统计最受欢迎的Top10课程 (ip)

 

按照流量统计最受欢迎的Top10课程 (traffic)

 

posted @ 2021-11-10 15:46  yasai  阅读(52)  评论(0编辑  收藏  举报