Hive构建日搜索引擎日志数据分析系统

1.数据预处理

根据自己或者学校系统预制的数据

使用less sogou.txt可查看

wc -l sogou.txt 能够查看总行数

2.数据扩展部分

我的数据位置存放在 /data/bigfiles

点击q退出

将一个文件的内容传递到另一个目录文件下

原数据在 /data/bigfiles ->传递 到/data/workspace

复制代码
awk -F '\t' '{print $0 "\t" substr($1,1,4) "\t" substr($1,5,2) "\t" substr($1,7,2) "\t" substr($1,9,2)}' /data/bigfiles/sub_sogou.txt>/data/workspace/sub_sogou-ext.txt

继续使用less命令可以查看数据扩展结果

3.数据加载

将数据加载到HDFS

hdfs dfs -mkdir -p /sogou/20111230

hdfs dfs -put /data/workspace/sub_sogou.txt /sogou/20111230

hdfs dfs -mkdir -p /sogou_ext/20111230

hdfs dfs -put /data/workspace/sub_sogou.txt /sogou_ext/20111230

基于Hive构建日志数据的数据仓库

要记得启动hive

接下来的操作均在hive客户端完成

1.基本操作

查看数据库的命令:show databases;

创建数据库sogou:create database if not exists sogou;

接下来使用数据库:use sogoul

查看表名:show tables;

创建外部表sogou_22106128用于加载sogou.txt的数据

复制代码
CREATE EXTERNAL TABLE sogou.sogou_22106128 (
    ts STRING,
    uid STRING,
    keyword STRING,
    rank INT,
    order_num INT, 
    url STRING
)
COMMENT 'This is the sogou search data of one day'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE
LOCATION '/sogou/22106128';

desc sogou_22106128可查看相关字段和类型

2.创建分区(按照年、月、日、小时)

创建四个字段数据的外部表

复制代码
CREATE EXTERNAL TABLE sogou.sogou_ext_22106128 (
    ts STRING,
    uid STRING,
    keyword STRING,
    rank INT,
    order1 INT, 
    url STRING,
    year INT,
    month INT,
    day INT,
    hour INT
)
COMMENT 'this is the sogou search data of extend'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t' 
STORED AS TEXTFILE
LOCATION '/sogou_ext/22106128'; 

创建好后创建分区表:

复制代码
CREATE EXTERNAL TABLE sogou.sogou_partition (
    ts STRING,
    uid STRING,
    keyword STRING,
    rank INT,
    order1 INT, 
    url STRING
)
PARTITIONED BY (year INT, month INT, day INT, hour INT)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'  
STORED AS TEXTFILE
LOCATION '/path/to/sogou_partition'; 

最后向分区表sogou_partition中载入数据:

set hive.exec.dynamic.partition.mode=nonstrict; //开启动态分区模式为非严格的

这部分参考的老师的代码:

相关推荐
江畔独步3 小时前
Doris与DS结合实现MySQL侧的Upsert功能
数据仓库·mysql·doris·upsert
安审若无7 小时前
Hive的索引使用如何优化?
数据仓库·hive·hadoop
青春之我_XP17 小时前
【基于阿里云搭建数据仓库(离线)】使用UDTF时出现报错“FlatEventUDTF cannot be resolved”
数据仓库·sql·阿里云·云计算·dataworks·maxcompute
小王不会写code1 天前
Hadoop 2.7.7 单机伪分布式安装与配置教程(JDK 8)
java·hadoop·分布式
zh_199951 天前
Hive面试题汇总
大数据·hive·hadoop·架构·面试题
Kookoos1 天前
ABP vNext + Spark on Hadoop:实时流处理与微服务融合
hadoop·微服务·spark·.net·abp vnext
是梦终空1 天前
JAVA毕业设计227—基于SpringBoot+hadoop+spark+Vue的大数据房屋维修系统(源代码+数据库)
hadoop·spring boot·spark·vue·毕业设计·源代码·大数据房屋维修系统
£菜鸟也有梦2 天前
Flume进阶之路:从基础到高阶的飞跃
大数据·hive·hadoop·flume
Kookoos2 天前
ABP vNext + Hive 集成:多租户大数据 SQL 查询与报表分析
大数据·hive·sql·.net·abp vnext
weixin_307779133 天前
Clickhouse统计指定表中各字段的空值、空字符串或零值比例
运维·数据仓库·clickhouse