Hive架构

简介: [toc]概念按照官网翻译,Hive是一个使用SQL管理和使用基于分布式存储的数据集的数据仓库工具软件。注意形容词知道了几个特点:使用SQL数据仓库、管理数据集(表)基于HadoopHive的组件包括HCatalog和WebHCat。

[toc]

概念

按照官网翻译,Hive是一个使用SQL管理和使用基于分布式存储的数据集的数据仓库工具软件。注意形容词知道了几个特点:

  1. 使用SQL
  2. 数据仓库、管理数据集(表)
  3. 基于Hadoop

Hive的组件包括HCatalog和WebHCat。

  • HCatalog是Hadoop的表和存储管理层,它使具有不同数据处理工具(包括Pig和MapReduce)的用户能够更轻松地在网格上读写数据。
  • WebHCat提供了一种服务,可用于运行Hadoop MapReduce(或YARN),Pig,Hive作业。还可以使用HTTP(REST样式)接口执行Hive元数据操作。

架构

照例先说下架构图
组件架构

这里可以看到非常明确的组件关系。数据以文件形式存储在HDFS,执行期间用户通过cli提交DDL 或者query SQL,DDL会与MetaStore交互,其中MetaStore负责存储所有表信息(meta),二querySQL会提交给Hive QL来做执行,这个通用数据库都包含这样的模块。其中包含sql解析,执行计划生成和MR执行,会将sql以MR来执行。

MetaStore

MetaStore负责存储所有的表schema和SerDe库,还有表的HDFS地址等。Hive的表是以HDFS的文件存储的,数据模型如下:
数据模型

执行

通常的sql引擎执行sql的能力其实没有太多的要说的,hive会将sql解析为一个执行计划来执行MapReduce,比如对于一个sql

select a,count(1) from t where c=1 group by a;

Hive会将其转换为一个执行计划比如下图:
执行计划

调优

因为本质上是分布式MapReduce模式,因此在写Hive SQL时,我们要了解不同表的数据量和数据分布,在group by聚合以及join操作时避免倾斜。Hive本身LanguageManuel[6]中有对于Join Optimization的介绍,包括了MapJoin的hint以及SMB join优化等。而阿里的ODPS(MaxCompute)服务也在2018年推出了Hash Clustering 和 Range Clustering特性。

总结

这是一篇非常简略的笔记,因为本身hive就很简单,但是具体数仓ETL研发过程中的变化和策略是非常多的。开篇后,希望后续有持续的积累和记录。

图片和内容引用

[4] https://www.slideshare.net/athusoo/hive-apachecon-2008-presentation?from_action=save
[5] https://www.slideshare.net/namit_jain/hive-demo-paper-at-vldb-2009
[6] https://cwiki.apache.org/confluence/display/Hive/LanguageManual

目录
相关文章
|
4月前
|
SQL 存储 分布式计算
【大数据技术Hadoop+Spark】Hive数据仓库架构、优缺点、数据模型介绍(图文解释 超详细)
【大数据技术Hadoop+Spark】Hive数据仓库架构、优缺点、数据模型介绍(图文解释 超详细)
186 0
|
5月前
|
SQL 存储 Java
45 Hive架构
45 Hive架构
22 0
|
8月前
|
SQL 存储 分布式计算
关于数据仓库的Hive的Hive架构的beeline
数据仓库是一个面向分析的数据存储系统,其中包含了大量的历史数据,可以用于数据分析和报表生成。
149 0
|
8月前
|
SQL 存储 分布式计算
数据仓库的Hive的Hive架构的HiveServer2
数据仓库是一个面向分析的数据存储系统,其中包含了大量的历史数据,可以用于数据分析和报表生成。Hive是一个开源的数据仓库系统,基于Hadoop平台,可以存储和处理大规模的数据。HiveServer2是Hive的一个重要组成部分,负责接收来自客户端的SQL请求,并将其转换成物理执行计划,然后执行并返回结果。本文将介绍HiveServer2的架构和作用。
144 0
|
8月前
|
SQL 存储 缓存
关于数据仓库的Hive的Hive架构的Driver的SQL的解析器、编译器、执行器、优化器
数据仓库是一个面向分析的数据存储系统,其中包含了大量的历史数据,可以用于数据分析和报表生成。Hive是一个开源的数据仓库系统,基于Hadoop平台,可以存储和处理大规模的数据。在Hive中,SQL语句被解析器解析成抽象语法树(AST),然后编译器将其转换成物理执行计划,包括执行器和优化器的参与。本文将介绍Hive中SQL解析器、编译器、执行器和优化器的作用和原理。
278 0
|
8月前
|
SQL 存储 大数据
关于数据仓库的Hive的Hive架构的MetaStore元数据服务
随着大数据技术的不断发展,数据仓库成为了企业中不可或缺的一部分。而Hive作为一种开源的数据仓库系统,因其易于使用和高效处理等特点,成为了许多企业的首选。然而,对于普通用户来说,直接使用Hive的命令行工具进行操作并不方便。因此,开发者社区中涌现出了大量的Hive GUI工具,其中最为流行的就是Web GUI工具。
205 2
|
8月前
|
SQL Java 大数据
关于数据仓库的Hive的Hive架构的用户接口的JDBC/ODBC
随着大数据技术的不断发展,数据仓库成为了企业中不可或缺的一部分。而Hive作为一种开源的数据仓库系统,因其易于使用和高效处理等特点,成为了许多企业的首选。然而,对于普通用户来说,直接使用Hive的命令行工具进行操作并不方便。因此,开发者社区中涌现出了大量的Hive GUI工具,其中最为流行的就是Web GUI工具。
197 1
|
8月前
|
SQL 监控 数据可视化
关于数据仓库的Hive的Hive架构的用户接口的Web GUI
随着大数据技术的不断发展,数据仓库成为了企业中不可或缺的一部分。而Hive作为一种开源的数据仓库系统,因其易于使用和高效处理等特点,成为了许多企业的首选。然而,对于普通用户来说,直接使用Hive的命令行工具进行操作并不方便。因此,开发者社区中涌现出了大量的Hive GUI工具,其中最为流行的就是Web GUI工具。
168 0
|
9月前
|
SQL 数据库 HIVE
数据仓库的Hive的Hive架构的用户接口的CLI
Hive提供了一系列用户接口,可以方便地进行数据仓库的管理和操作。其中,CLI(命令行界面)是一种非常常用的用户接口,可以通过命令行进行Hive的管理和操作。
97 0
|
9月前
|
SQL 存储 资源调度
Hive 架构、执行原理【重要】
Hive 架构、执行原理【重要】
113 0