技术-Hive

来源:互联网 发布:网络没问题网页打不开 编辑:程序博客网 时间:2024/05/21 09:38

1,hive是什么

将SQL转换为MapReduce程序。

2,为什么使用hive

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

3,hive与hadoop的关系


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的架构



6.2,hive的执行流程

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


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

6.3,编译过程
























原创粉丝点击