原理:
由 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