技术-Hive

1,hive是什么

将SQL转换为MapReduce程序。

2,为什么使用hive

用写SQL语句来代替直接写MapReduce程序。

3,hive与hadoop的关系

技术-Hive_第1张图片

4,hive与传统数据库对比

 

Hive
RDBMS
查询语言
HQL
SQL
数据存储
HDFS
Raw Device or Local FS
执行
MapReduce
Excutor
执行延迟
处理数据规模
索引
0.8版本后加入位图索引
有复杂的索引

5,Hadoop 计算框架的特性

5.1,什么是数据倾斜

由于数据的不均衡原因,导致数据分布不均匀,造成数据大量的集中到一点,造成数据热点

5.2,Hadoop框架的特性

不怕数据大,怕数据倾斜
jobs数比较多的作业运行效率相对比较低,比如即使有几百行的表,如果多次关联多次汇总,产生十几个jobs,耗时很长。原因是map reduce作业初始化的时间是比较长的。
sum,count,max,min等UDAF,不怕数据倾斜问题,hadoop在map端的汇总合并优化,使数据倾斜不成问题。
count(distinct ),在数据量大的情况下,效率较低,因为count(distinct)是按group by 字段分组,按distinct字段排序,一般这种分布方式是很倾斜的。

6,hive的原理

6.1,hive的架构

技术-Hive_第2张图片


6.2,hive的执行流程

编译器将一个Hive QL转换操作符
操作符是Hive的最小的处理单元
每个操作符代表HDFS的一个操作或者一道MapReduce作业


操作符 描述
TableScanOperator 扫描hive表数据
ReduceSinkOperator 创建将发送到Reducer端的<Key,Value>对
JoinOperator Join两份数据
SelectOperator 选择输出列
FileSinkOperator 建立结果数据,输出至文件
FilterOperator 过滤输入数据
GroupByOperator GroupBy语句
MapJoinOperator /*+mapjoin(t) */
LimitOperator Limit语句
UnionOperator Union语句

6.3,编译过程


技术-Hive_第3张图片






















你可能感兴趣的:(技术-Hive)