Hive概述

Hive是基于Hadoop的分布式数据仓库工具,提供SQL查询功能,简化MapReduce编程。它包括解释器、编译器和优化器,元数据存储在MySQL或Derby中,数据存储在HDFS。Hive支持外部表和内部表,适用于数据仓库的统计分析,不适用于频繁的DML操作。在企业中,Hive与Spark SQL结合是常见数据分析方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hive本质是什么?

1.Hive是分布式数据仓库,同时又是查询引擎,所有Spark SQL取代只是Hive查询引擎,在企业中Hive + Spark SQL是目前最为经典的数据分析组合。

2.Hive本身是一个单机版本软件,主要负责:

   a) 把HQL翻译成Mapper(s)-Reducer-Mapper(s)代码,并且可能产生很多MapReduces的Job

   b) 把生产的MapReduce代码及相关资源打包成Jar,发布到Hadoop集群中运行(这一切都是自动的)

3.Hive的架构



Hive安装和配置

1.export 环境变量

2.vim hive-env.sh

export HADOOP_HOME

3.vim hive.site.xml

hive.site.xml指定Hive数据仓库的具体的具体存储。

4.安装MySQL

5.Hive的表有两种基本类型

外部表:数据不属于Hive数据仓库,元数据中会表达具体数据在哪里,使用的时候和内部表的使用时一样的,只是通过Hive去删除的话,此时删除的是元数据,并没有删除数据本身

内部表:这种表数据属于Hive本身,原来的数据在HDFS的其他地方,此时数据会通过HDFS移动到Hive数据仓库所在的目录下,如果删除Hive中的该表的话,数据和元数据均会被删除。


说明:

Hive默认情况下,放元数据的是Derby,遗憾的是Derby是单用户的,在生产环境下一般采用支持多用户的数据库,来进行Meta Store,且进行Master-Slave主从读写分离和备份,最常用是MySQL





数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制简而言之,数据仓库是用来做查询分析的数据库,基本不用来做插入,修改,删除。


什么是Hive

hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

Hive:数据仓库。

Hive:解释器,编译器,优化器等。

Hive:运行时,元数据存放在关系型数据库里。

Hive的架构

(1)用户接口主要有三个:CLI,Client 和WUI。其中最常用的是CLI,Cli启动的时候,会同时启动一个Hive副本。Client是Hive的客户端,用户连接至Hive Server。在启动Client模式的时候,需要指出Hive Server所在节点,并且在该节点启动Hive Server。WUI是通过浏览器访问Hive。

(2)Hive将元数据存储在数据库中,如MySQL、derby。Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。

(3)解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后有MapReduce调用执行。

(4)Hive的数据存储在HDFS中,大部分的查询、计算由MapReduce完成(包含*的查询,比如select * from tbl不会生成MapRedcue任务)。


编译器将一个Hive QL转换操作符。
操作符是Hive的最小的处理单元。
每个操作符代表HDFS的一个操作或者一道MapReduce作业。


Operator
Operator都是hive定义的一个处理过程
Operator都定义有:
protectedList<Operator<?extendsSerializable>>childOperators;
protectedList<Operator<?extendsSerializable>>parentOperators;
protectedbooleandone;// 初始化值为false


ANTLR词法语法分析工具解析HQL



Hive的三种模式:

1.单用户模式。此模式连接到一个In-memory 的数据库Derby,一般用于Unit Test。


2.单用户模式。通过网络连接到一个数据库中,是最经常使用到的模式。


3.远程服务器模式。用于非Java客户端访问元数据库,在服务器端启动MetaStoreServer,客户端利用Thrift协议通过MetaStoreServer访问元数据库。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值