基于Hadoop的数据仓库之Hive
Hive的基本概念
1.1、Hive 简介
什么是 Hive,Hive 由 Facebook 实现并开源,是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据映射为一张数据库表,并提供 HQL(Hive SQL)查询功能,底层数据是存储在 HDFS 上。Hive的本质是将 SQL 语句转换为 MapReduce 任务运行,使不熟悉 MapReduce 的用户很方便地利用 HQL 处理和计算 HDFS 上的结构化的数据,适用于离线的批量数据计。
1.2、为什么使用 Hive
为什么要使用 Hive:
更友好的接口:操作接口采用类 SQL 的语法,提供快速开发的能力
更低的学习成本:避免了写 MapReduce,减少开发人员的学习成本
更好的扩展性:可自由扩展集群规模而无需重启服务,还支持用户自定义函数
1.3、Hive特点
优点:
1.可扩展性,横向扩展,Hive 可以自由的扩展集群的规模,一般情况下不需要重启服务
横向扩展:通过分担压力的方式扩展集群的规模
纵向扩展:一台服务器cpu i7-6700k 4核心8线程,8核心16线程,内存64G => 128G
2、延展性,Hive 支持自定义函数,用户可以根据自己的需求来实现自己的函数
3、良好的容错性,可以保障即使有节点出现问题,SQL 语句仍可完成执行
缺点:
1、Hive 不支持记录级别的增删改操作,但是用户可以通过查询生成新表或者将查询结
果导入到文件中(hive-2.3.2 的版本支持记录级别的插入操作)
2、Hive 的查询延时很严重,因为 MapReduce Job 的启动过程消耗很长时间,所以不能
用在交互查询系统中。
3、Hive 不支持事务(因为不没有增删改,所以主要用来做 OLAP(联机分析处理),而
不是 OLTP(联机事务处理),这就是数据处理的两大级别
1.3Hive的架构
1.4Hive的数据存储
1.Hive的存储结构包括数据库,表,视图,分区,核表数据等。数据库,表,分区等等都对应Hdfs上的一格目录。表数据对应目录下的文件。
2.Hive中所有数据都存储在Hdfs中,没有专门的数据存储格式。因为Hive是读模式。
3.只需要在创建表的时候告诉 Hive 数据中的列分隔符和行分隔符,Hive 就可以解析数据
Hive 的默认列分隔符:控制符 Ctrl + A,\x01
Hive 的默认行分隔符:换行符 \n
4.、Hive 中包含以下数据模型:
database:在 HDFS 中表现为${hive.metastore.warehouse.dir}目录下一个文件夹table:在 HDFS 中表现所属 database 目录下一个文件夹
external table:与 table 类似,不过其数据存放位置可以指定任意 HDFS 目录路径
partition:在 HDFS 中表现为 table 目录下的子目录
bucket:在 HDFS 中表现为同一个表目录或者分区目录下根据某个字段的值进行 hash 散列之后的多个文件
view:与传统数据库类似,只读,基于基本表创建
5、Hive 的元数据存储在 RDBMS 中,除元数据外的其它所有数据都基于 HDFS 存储。默认情况下,Hive 元数据保存在内嵌的 Derby 数据库中,只能允许一个会话连接,只适合简单的测试。实际生产环境中不适用,为了支持多用户会话,则需要一个独立的元数据库,使用MySQL 作为元数据库,Hive 内部对 MySQL 提供了很好的支持
6、Hive 中的表分为内部表、外部表、分区表和 Bucket。
内部表和外部表的区别:
删除内部表,删除表元数据和数据
删除外部表,删除元数据,不删除数据
分区表和分桶表的区别:
Hive 数据表可以根据某些字段进行分区操作,细化数据管理,可以让部分查询更快。同
时表和分区也可以进一步被划分为 Buckets,分桶表的原理和 MapReduce 编程中的
HashPartitioner 的原理类似
分区和分桶都是细化数据管理,但是分区表是手动添加区分,由于 Hive 是读模式,所
以对添加进分区的数据不做模式校验,分桶表中的数据是按照某些分桶字段进行 hash 散列
形成的多个文件,所以数据的准确性也高很多
- 基于Hadoop的数据仓库Hive 学习指南
- 基于Hadoop数据仓库Hive1.2部署及使用
- <关于数据仓库>基于docker的Mysql与Hadoop/Hive之间的数据转移 (使用Apache Sqoop™)
- 14.基于Hadoop的数据仓库Hive第1部分
- hive(01)、基于hadoop集群的数据仓库Hive搭建实践
- Hive -- 基于Hadoop的数据仓库分析工具
- 大数据:基于Hadoop的数据仓库Hive的基本理论简介(附通俗说明
- 基于Hadoop的数据仓库Hive 基础知识
- [完]基于Hadoop的数据仓库Hive 基础知识
- hive(01)、基于hadoop集群的数据仓库Hive搭建实践
- hadoop和hive的实践应用(二)——基于Hadoop的数据仓库工具hive搭建
- 基于Hadoop的数据仓库Hive 基础知识
- 基于Hadoop的数据仓库Hive的基本应用(一)||两种数据导入方法
- 基于Hadoop的数据仓库Hive
- Hive和SparkSQL: 基于 Hadoop 的数据仓库工具
- 15.基于Hadoop的数据仓库Hive第2部分
- 基于Hadoop2.7.3集群数据仓库Hive1.2.2的部署及使用
- 基于Hadoop的数据仓库Hive 学习指南
- 基于Hadoop的数据仓库Hive 学习指南
- 15.基于Hadoop的数据仓库Hive第3部分(Hive编程实践)