甲骨文认证体系
Vmware认证体系
AWS亚马逊
阿里云认证体系
红帽认证体系
ZStack云计算认证体系
思科认证体系
华为认证体系
CDA数据分析师认证
达梦认证体系
麒麟
定制化课程
HIVE入门
发布日期:2020-08-05 18:29:11阅读次数:




目录
一.hive概述

简介
特点
设计特点
优缺点

二.hive功能与架构


架构


数据存储模型
2.1分区和桶
2.2托管表和外部表


增强特性


一.hive概述
1.简介
Hive是hadoop当中的一个数据仓库,它是一个面向主题,集成的,不可更新的,随时间不断变化的数据集合,用于支持企业或组织的决策分析处理

面向主题:数据按照一定的主题来进行组织。例如商品推荐,基于用户在使用数据仓库的时候所关心的重点来进行数据分析。
集成的:数据仓库中的数据来源很多(关系型数据库,文本文档,其他服务器的数据)数据仓库就是对这些数据进行一个抽取,然后进行集成,放在数据仓库当中。
不可更新的:Hbase的数据就可以进行更新,但hive不可以。
因为数据仓库主要是基于历史的数据,用来查询,我们一般不会对数据仓库中的数据进行更新和删除,是随着时间推移不会产生变化的数据集合

2.特点

灵活性:
(1)采用批处理方式处理海量数据
数据仓库存储的是静态数据,对静态数据的分析适合采用批处理方式,不需要快速响应给出结果,而且数据本身也不会频繁变化。
(2)提供适合数据仓库操作的工具
Hive本身提供了一系列对数据进行提取、转换、加载(ETL)的工具,可以存储、查询和分析存储在Hadoop中的大规模数据。这些工具能够很好地满足数据仓库各种应用场景。
支持多种计算引擎:支持MapReduce,Tez,Spark等多种计算引擎。
可以直接访问HDFS文件和Hbase(这里需要注意它不能直接访问HDFS当中的数据)
易用易编程:内置很多函数,可以自定函数对数据进行计算。

3.设计特点

支持索引,但比较低效还不完善。
具有不同的存储类型,数据存储在HDFS当中。
元数据独立于数据存储之外,存储在关系型数据库中。
可以直接使用存储在hadoop当中的数据。
内置很多的函数 。

4.优缺点

优点


高可靠:即使节点出现问题SQL仍可完成执行
HiveServer是一种可选服务,允许远程客户端可以使用各种编程语言向Hive提交请求并检索结果。
类sql:类似SQL语法,内置大量函数。
可扩展:Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数
多接口:Beeline  JDBC  Thrift  Python  ODBC


缺点
延迟比较高:默认mapreduce为执行引擎,mapreduce延迟高。所以hive只适用于大数据处理,不适用于小数据的。
不支持物化视图。
不适用于OLTP。
不支持存储过程,Hive编写的东西只能当时用。

二.hive功能与架构
1.架构


MetaStore : 存储表、列和Partition等元数据。
Driver :  管理HiveQL执行的生命周期,并贯穿Hive任务整个执行期间。
Compiler : 编译HiveQL并将其转化为一系列相互依赖的Map/Reduce任务。
Optimizer : 优化器,分为逻辑优化器和物理优化器,分别对HiveQL生成的执行计划和MapReduce任务进行优化。
Executor : 按照任务的依赖关系分别执行Map/Reduce任务。
ThriftServer : 提供thrift接口,作为JDBC和ODBC的服务端,并将Hive和其他应用程序集成起来。
Clients : 包含命令行接口(CLI/Beeline) 和JDBC/ODBC 接口,为用户访问提供接口。

2.数据存储模型



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


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


分区:对应所在表所在目录下的一个子目录。


桶:对应表或分区所在路径的一个文件。


倾斜数据:数据集中于个别字段值的场景,比如按照城市分区时,80%的数据都来自某个大城市。


正常数据:不存在倾斜的数据。
2.1分区和桶


表可以分区也可以分桶,分区之后可以分桶,分桶之后不可以分区。


分区:随意分,哪一列分为一个区是随意的,会造成数据的倾斜(分布不均匀),故而为了解决数据倾斜的问题引入分桶。


分桶:保证每一个桶都有数据,避免了数据倾斜。
2.2托管表和外部表


托管表:默认建的表就是托管表,建表之后要存储数据,就是存储在托管表中。简单来说就是数据仓库进行了数据迁移,将数据迁移到这个表中


外部表:存在于仓库外面,只是由hive进行管理,他的数据不会进行迁移。用途:不同于托管表,它可以把创建数据推迟到创建表之后。


在进行删除的时候:
托管表:元数据还是数据都被删除
外部表:只有元数据被删除
选择原则:
1.如果所有的处理都由hive完成,选择创建托管表
2.如果hive对数据只能进行一部分的处理,数据处理还需要其他的工具,创建外部表
3.增强特性

Colocation (同分布):将存在关联关系的数据或可能要进行关联操作的数据存储在相同的存储节点上。文件级同分布实现文件的快速访问,避免了因数据搬迁带来的大量网络开销。
列加密:就是在读取时需要通过一些验证。
流控特性:能够避免客户端的请求过多,造成服务端的阻塞。

  想了解更多ICT知识以及ICT认证信息,推荐访问腾科教育 .