Hive


Hive就是在Hadoop上架了一层SQL接口,可以将SQL翻译成MapReduce去Hadoop上执行.
1、Hive 由 Facebook 实现并开源
2、是基于 Hadoop 的一个数据仓库工具
3、可以将结构化的数据映射为一张数据库表
4、并提供 HQL(Hive SQL)查询功能
5、底层数据是存储在 HDFS 上
6、Hive的本质是将 SQL 语句转换为 MapReduce 任务运行
7、使不熟悉 MapReduce 的用户很方便地利用 HQL 处理和计算 HDFS 上的结构化的数据,适用于离线的批量数据计算。

内部表和外部表

Hive内部表与外部表的区别

分区和分桶

分区:就是将同一组数据放到同一个HDFS目录下,当查询中过滤条件指定了某一个分区值时候,只将该分区对应的目录作为Input,从而减少MapReduce的输入数据,提高查询效率

分区和分桶区别

控制hive任务中的map数和reduce数

参考:处理小文件和大文件

Hive中的join

join的类型

Hive中Join的原理和机制

对于一个简单的关联查询,CommonJoin任务设计Map阶段和Reduce阶段。Mapper 从连接表中读取数据并将连接的 key 和连接的 value 键值对输出到中间文件中。Hadoop 在所谓的 shuffle 阶段对这些键值对进行排序和合并。Reducer 将排序结果作为输入,并进行实Join。Shuffle 阶段代价非常昂贵,因为它需要排序和合并。
因此减少 Shuffle 和 Reduce 阶段的代价可以提高任务性能。
MapJoin 的目的是减少 Shuffle和 Reducer阶段的代价,并仅在 Map 阶段进行Join。
Join的原理和机制

hive中的数据倾斜

1、开启map端的聚合
2、distinct的时候使用两个Mapreduce
参考:数据倾斜

hive sql和mapreduce的转换过程

antlr是指可以根据输入自动生成语法树并可视化的显示出来的开源语法分析器。
在这里插入图片描述
参考:HiveSQL解析原理

参考:Hive Sql 是怎样解析成MR job的

hive取topN

分析函数取topN

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值