hive 业务分析

4.1 统计视频观看数 Top10
思路:使用 order by 按照 views 字段做一个全局排序即可,同时我们设置只显示前 10
条。
最终代码:
4.2 统计视频类别热度 Top10

 

思路:
(1)即统计每个类别有多少个视频,显示出包含视频最多的前 10 个类别。
(2)我们需要按照类别 group by 聚合,然后 count 组内的 videoId 个数即可。
(3)因为当前表结构为:一个视频对应一个或多个类别。所以如果要 group by 类别,
需要先将类别进行列转行 ( 展开 ) ,然后再进行 count 即可。
(4)最后按照热度排序,显示前 10 条。
最终代码:
4.3 统计出视频观看数最高的 20 个视频的所属类别以及类别包含
Top20 视频的个数
思路:
(1)先找到观看数最高的 20 个视频所属条目的所有信息,降序排列
(2)把这 20 条信息中的 category 分裂出来 ( 列转行 )
(3)最后查询视频分类名称和该分类下有多少个 Top20 的视频
最终代码:
SELECT

 

4.4 统计视频观看数 Top50 所关联视频的所属类别排序

 

 4.5 统计每个类别中的视频热度 Top10,以 Music 为例

思路:
(1)要想统计 Music 类别中的视频热度 Top10 ,需要先找到 Music 类别,那么就需要将
category 展开,所以可以创建一张表用于存放 categoryId 展开的数据。
(2)向 category 展开的表中插入数据。
(3)统计对应类别( Music )中的视频热度。
统计 Music 类别的 Top10 (也可以统计其他)

 4.6 统计每个类别视频观看数 Top10

 

4.7 统计上传视频最多的用户 Top10 以及他们上传的视频
观看次数在前 20 的视频
思路:
(1)求出上传视频最多的 10 个用户
(2)关联 gulivideo_orc 表,求出这 10 个用户上传的所有的视频,按照观看数取前 20
最终代码 :

 LIMIT 20

附录:常见错误及解决方案
0 )如果更换 Tez 引擎后,执行任务卡住,可以尝试调节容量调度器的资源调度策略
$HADOOP_HOME/etc/hadoop/capacity-scheduler.xml 文件中的

 

1 )连接不上 mysql 数据库
(1)导错驱动包,应该把 mysql-connector-java-5.1.27-bin.jar 导入 /opt/module/hive/lib
不是这个包。错把 mysql-connector-java-5.1.27.tar.gz 导入 hive/lib 包下。
(2)修改 user 表中的主机名称没有都修改为 % ,而是修改为 localhost
2 hive 默认的输入格式处理是 CombineHiveInputFormat ,会对小文件进行合并。
hive (default)> set hive.input.format;
hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat
可以采用 HiveInputFormat 就会根据分区数输出相应的文件。
hive (default)> set
hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat;
3 )不能执行 mapreduce 程序
可能是 hadoop yarn 没开启。
4 )启动 mysql 服务时,报 MySQL server PID file could not be found! 异常。
/var/lock/subsys/mysql 路径下创建 hadoop102.pid ,并在文件中添加内容: 4396
5 )报 service mysql status MySQL is not running, but lock file (/var/lock/subsys/mysql[ 失败 ])
解决方案:在 /var/lib/mysql 目录下创建: -rw-rw----. 1 mysql mysql 5 12 22
16:41 hadoop102.pid 文件,并修改权限为 777
6 JVM 堆内存溢出
描述: java.lang.OutOfMemoryError: Java heap space
解决:在 yarn-site.xml 中加入如下代码

 7)虚拟内存限制

yarn-site.xml 中添加如下配置 :

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据开发工程师-宋权

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值