Hive概述

网友投稿 961 2022-05-29

1.     Hive介绍

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL的查询功能。

Hive基本原理是将HQL语句自动转换成可以在计算引擎上执行的任务。

Hive 在加载数据过程中不会对数据进行任何的修改,只是将数据移动到HDFS 中Hive 设定的目录下。

2.     Hive应用场景

Hive适合于数据仓库应用程序,进行静态数据分析,不需要快速响应给出结果,而且数据本身不会频繁变化。Hive不支持OLTP(联机事务处理),更接近OLAP(联机分析技术)工具。

3.     Hive与传统数据库比较

Hive不推荐进行记录级别的插入、更新和删除。

Hive支持struct,map和array集合数据类型。破坏标准格式会增大数据冗余,导致消耗不必要的磁盘空间,可能造成数据不一致。但是在大数据系统中,按数据集进行封装可以减少寻址次数,提升查询速度,提高吞吐量。

Hive是读时模式。保存表数据时不对数据进行校验,从而提高加载速度,在查询时验证,不符合格式的数据设置为NULL。

Hive不支持OLTP(联机事务处理),更接近OLAP(联机分析技术)工具。因为Hive任务的启动过程需要较长时间, Hive查询延时比较严重。

4.     Hive架构

Hive概述

MetaStore:存储表,列和分区等元数据,为关系型数据库。

Driver:管理HiveQL执行的生命周期并贯穿Hive任务整个执行期间。

Compiler :编译HiveQL并将其转化为一系列相互依赖的任务。

Optimizer:优化器,分为逻辑优化器和物理优化器,分别对HiveQL生成的执行计划和任务进行优化。

Executor:按照任务的依赖关系分别执行任务。

ThriftServer:提供thrift接口,作为JDBC和ODBC的服务端,并将Hive和其他应用程序集成起来。

Clients:包含命令行接口(CLI/Beeline) 和JDBC/ODBC 接口,为用户访问提供接口。

WebHcat:负责对外提供DDL、提交任务等REST API服务。

5.     Hive数据存储模型

Hcatalog:Hadoop的表和存储管理层,它使使用不同数据处理工具的用户能够更轻松地在网格上读写数据。

数据库:创建表时如果不指定数据库,则默认为default数据库。

表:物理概念,实际对应HDFS上的一个目录。

分区:对应所在表所在目录下的一个子目录,分区可以很明显的提高查询效率。

桶:对应表或分区所在路径的一个文件,数据按照某个字段的值Hash后放入某个桶中,桶内可排序。

倾斜数据:数据集中于个别字段值的场景。

正常数据:不存在倾斜的数据。

6.     Hive编译流程

Parser将HQL转换成抽象语法树。

Semantic Analyzer将抽象语法树转换成查询块。

Logic Plan Generator将查询块转换成逻辑查询计划。

LogicalOptimizer优化逻辑查询计划。

Physical Plan Generator将逻辑计划转换成物理计划。

PhysicalOptimizer优化物理计划。

mrs Hive EI企业智能

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:计算机网络发展的四个阶段
下一篇:为了弥补没有毕业照的遗憾,我用AI为学长学姐们“定制”了一套毕业照
相关文章