Hive分布式的数据仓库

1.hive介绍

  hive是一个数据仓库的解决方案,它的数据存储依赖于HDFS,数据结算依赖于MR,也就是说,hive就是一个在数据仓库的服务,它只需要安装到一台普通的PC上即可,仅仅对外提供SQL服务(和hadoop、hbase、spark、storm不同,应为这些都是分布式服务),对客户端的SQL最终转换成对HDFS的操作和MR的操作。

  hive有两种作用,第一就是是一个数据仓库,他对数据的组织,比如说表、分区等目录结构,第二就是他的SQL实现是基于Mapreduce。

  所以,现在hive组织数据是目前无人可比,而它的SQL计算则可以使用MPP、mapreduce、spark迭代式计算、流计算等计算引擎,所以你看见impala、shark、的安装都是基于hive的,就是重用hive的数据仓库功能,即在hive里面组织数据。

2.hive就是服务,不需要分布式安装

  hive的表,分区,桶本质就是在HDFS上面建立一些目录,同时借助RDBMS存储自己的元数据(用户的DDL,DML作为元数据,存储在RDMS里面,Hive引擎就会解析这些数据        生成MR的job运行,同时将HIve里面的表存储转换成hdfs的目录)。

3.hive的DDL操作

  建立表

    1.在rdms里面存储表的列,名称

    2.在hdfs里面以表的名称,建立了一个目录

  插入数据、查询数据 

    1 将hql经过解析,形成执行计划,最后生成mr的job运行,而hql里面的表转换成hdfs里面的目录作为mr的输入和输出

  聚合函数、窗口函数以及OLAP的CUBE等聚合函数

    1 avg、sum、count、rank、cube等度量值的聚合方式。

==================================================================================================

hive的调优:

1、减少shuffle的数据传输、而这块主要就是join连接的优化

2、task任务的个数

3、jvm堆内存、栈内存空间的设置

4、队列的设置、hadoop的调度策略以及资源分配配置

原文地址:https://www.cnblogs.com/gstsyyb/p/5118977.html