原理:

由 Facebook 开发的开源的数据统计工具。

是基于 Hadoop 的一个数据仓库工具。

本质:将 HQL/SQL 转化成 MapReduce 程序

1)Hive 处理的数据存储在 HDFS

2)Hive 分析数据底层的实现是 MapReduce

3)执行程序运行在 Yarn 上

Hive的优缺点:

优点:

1)操作接口采用类 SQL 语法,提供快速开发的能力

2)不用去写 MapReduce,减少开发人员的学习成本

3)用于对大型数据的分析,不适合用于实时性 (延迟比较高)

4)支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。

缺点:

1)Hive 的 HQL 表达能力有限

(1)迭代式算法无法表达

(2)数据挖掘方面不擅长

2)Hive 的效率比较低

(1)Hive 自动生成的 MapReduce 作业,通常情况下不够智能化

(2)Hive 调优比较困难,粒度较粗

Hive 与 数据库 的区别:

数据存储位置:

Hive 是建立在 Hadoop 之上的,所有 Hive 的数据都是存储HDFS 中的;

数据库 可以将s数据保存在块设备或者本地文件系统中。

数据更新:

数据仓库的内容是读多写少的;

Hive 中不支持对数据的改写和添加,所有的数据都是在加载的时候确定好的

索引:

Hive 在加载数据的过程中不会对数据进行任何处理,甚至不会对数据进行扫描。

Hive 要访问数据中满足条件的特定值时,需要暴力扫描整个数据,因此访问延迟较高。所以决定了 Hive 不适合在线数据查询

执行:

Hive 中大多数查询的执行是通过 Hadoop 提供的 MapReduce 来实现的。

数据库 通常有自己的执行

可扩展性:

由于 Hive 是建立在 Hadoop 之上的,因此 Hive 的可扩展性是和 Hadoop可扩展性是一致的(4k)

因此 Hive 可以支持很大规模的数据;

对应的,数据库可以支持的数据规模较小。

安装:

安装地址:

官网地址:http://hive.apache.org/

下载地址:http://archive.apache.org/dist/hive/

github地址:https://github.com/apache/hive

安装部署:

1)上传 Hive 到 Linux

2) 解压

3)修改名称: apache-hive-1.2.1-bin.tar.gz —> hive

4) 修改 /opt/module/hive/conf 目录下的:

hive-env.sh.template : hive-env.sh

更改内容: 1、export HADOOP_HOME=/opt/module/hadoop-2.8.4、

2、export HIVE_CONF_DIR=/opt/module/hive/conf

hive-log4j.properties.template : hive-log4j.properties

更改内容: hive.log.dir=/opt/module/hive/logs

5)启动集群

6)在 HDFS 上创建目录:

hadoop fs -mkdir /tmp

hadoop fs -mkdir -p /user/hive/warehouse

修改权限:

hadoop fs -chmod g+w /tmp

hadoop fs -chmod g+w /user/hive/warehouse

7)启动:hive