Hive的基本概念
- 开发者: Facebook实现并开源
- 作用: 基于Hadoop的一个数据仓库工具,可以将结构化的数据映射为一张数据库表,并提供HQL(Hive SQL)查询功能,底层数据是存储在HDFS上。
- 本质: 将SQL语句转换为MapReduce任务运行,使不熟悉Mapreduce的用户很方便地利用HQL处理和计算HDFS上的结构化的数据,使用于离线的批量数据计算。
Hive 依赖于 HDFS 存储数据,Hive 将 HQL 转换成 MapReduce 执行 所以说 Hive 是基于 Hadoop 的一个数据仓库工具,实质就是一款基于 HDFS 的 MapReduce 计算框架,对存储在 HDFS 中的数据进行分析和管理
hbase 和 hive 的区别
hbase: 数据库
hive : 数据仓库
区别:1、数据库,对于数据会做精细化的管理,具有事务的概念 数据仓库,存储数据的格式就类似打包,没有事务的概念 2、操作方式的区别: 数据库:NoSQL语法 put get scan delele 数据仓库: SQL方言 Hive的SQL === HQL hibernate:HQL 3、用途的区别: 数据库:OLTP 联机事务处理 增删改 数据仓库: OLAP 联机分析处理 查询 hive是数据仓库,它根本就不支持 update和delete 但是支持insert 4、模式上的区别 数据库: 写模式 hbase无严格模式 : 仅有的模式校验只有 表名和列簇的名称 数据仓库: 读模式
Hive的特点
优点
- 可扩展性,横向扩展,Hive 可以自由的扩展集群的规模,一般情况下不需要重启服务 横向扩展:通过分担压力的方式扩展集群的规模 纵向扩展: 一台服务器cpu i7-6700k 4核心8线程, 8核心16线程,内存64G => 128G
- 延展性,Hive 支持自定义函数,用户可以根据自己的需求来实现自己的函数
- 良好的容错性,可以保障即使有节点出现问题,SQL 语句仍可完成执行
缺点
- Hive 不支持记录级别的增删改操作,但是用户可以通过查询生成新表或者将查询结 果导入到文件中(当前选择的 hive-2.3.2 的版本支持记录级别的插入操作)
- Hive 的查询延时很严重,因为 MapReduce Job 的启动过程消耗很长时间,所以不能 用在交互查询系统中。
- Hive 不支持事务(因为不没有增删改,所以主要用来做 OLAP(联机分析处理),而 不是 OLTP(联机事务处理),这就是数据处理的两大级别)