Hive(三、0)案例之视频网站指标

本文通过Hive对影音视频网站进行常规指标统计,包括视频观看数Top10、视频类别热度Top10、视频观看数最高视频的类别分布、Top50视频所属类别排名、各类别视频热度及观看数Top10,以及上传视频最多的用户及其热门视频。
摘要由CSDN通过智能技术生成

Hive(三、0)案例之视频网站常规指标@你宝爷

一、前期准备

1.0、打开集群&服务&客户端

#1)注释掉配置文件内容,这样就不用开启metastore服务啦
    vim $HIVE_HOME/conf/hive-site.xml
    #注释掉如下内容
	<!--    
	<property>
        <name>hive.metastore.uris</name>
        <value>thrift://hadoop11:9083</value>
    </property>
	-->

#2)启动hadoop集群
#3)启动hiveserver2服务
     nohup hive --service hiveserver2 > /opt/logs/hiveserver2.log  &
     #或
     nohup $HIVE_HOME/bin/hiveserver2 > /opt/logs/hiveserver2.log  &
#4)打开datagrip软件,连接客户端服务

1.1、需求

统计影音视频网站的常规指标,各种TopN指标

-- 1)统计视频观看数Top10
-- 2)统计视频类别热度Top10(类别热度:类别下的总视频数)
-- 3)统计出视频观看数最高的20个视频的所属类别以及类别包含Top20视频的个数
-- 4)统计视频观看数Top50所关联视频的所属类别Rank
-- 5)统计每个类别中的视频热度Top10,以Music为例(视频热度:视频观看数)
-- 6)统计每个类别视频观看数Top10
-- 7)统计上传视频最多的用户Top10以及他们上传的视频观看次数在前20的视频 

1.2、数据表

①、视频表

字段 备注 详细描述
videoId 视频唯一id(String) 11位字符串
uploader 视频上传者(String) 上传视频的用户名String
age 视频年龄(int) 视频在平台上的整数天
category 视频类别(Array) 上传视频指定的视频分类
length 视频长度(Int) 整形数字标识的视频长度
views 观看次数(Int) 视频被浏览的次数
rate 视频评分(Double) 满分5分
Ratings 流量(Int) 视频的流量,整型数字
conments 评论数(Int) 一个视频的整数评论数
relatedId 相关视频id(Array) 相关视频的id,最多20个

②、用户表

字段 备注 字段类型
uploader 上传者用户名 string
videos 上传视频数 int
friends 朋友数量 int

1.3、创建表&导入数据

1.3.1、导入数据

数据码云地址:https://gitee.com/xiaoha1234/data/tree/master/TableData/guliVideo

#在hdfs新建存储原始数据的目录
hadoop fs -mkdir -p  /gulivideo/video
hadoop fs -mkdir -p  /gulivideo/user
#从Linux本地上传数据到hdfs上
hadoop fs -put <linx上路径>/user.txt   /gulivideo/user
hadoop fs -put <linx上路径>/*.txt   /gulivideo/video
1.3.2、创建表

①、创建外部数据表:gulivideo_ori,gulivideo_user_ori

create external table gulivideo_ori(
    videoId string, 
    uploader string, 
    age int, 
    category array<string>, 
    length int, 
    views int, 
    rate float, 
    ratings int, 
    comments int,
    relatedId array<string>)
row format delimited fields terminated by "\t"
collection items terminated by "&"
stored as textfile
location '/gulivideo/video';
-------------------------------------------------------------
create external table gulivideo_user_ori(
    uploader string,
    videos int,
    friends int)
row format delimited 
fields terminated by "\t" 
stored as textfile
location '/gulivideo/user';

②、创建最终管理表:gulivideo_orc,gulivideo_user_orc

--创建orc存储格式带snappy压缩的管理表:
create table gulivideo_orc(
    videoId string, 
    uploader string, 
    age int, 
    category array<string>, 
    length int, 
    views int, 
    rate float, 
    ratings int, 
    comments int,
    relatedId array<string>)
stored as orc
tblproperties("orc.compress"="SNAPPY");
----------------------------------------------------
create <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值