【赵渝强老师】Hive的体系架构

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时计算 Flink 版,1000CU*H 3个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: Hive是基于Hadoop的数据仓库平台,提供SQL-like的HQL语言进行数据分析,无需编写复杂的Java代码。Hive支持丰富的数据模型,可将SQL语句转换为MapReduce任务在Yarn上运行,底层依赖HDFS存储数据。Hive可通过CLI、JDBC和Web界面执行SQL查询。

b037.png

在Hadoop体系中提供数据分析引擎Hive。它允许使用SQL语句来分析处理数据,而不需要编程复杂的Java程序。同时Hive提供了丰富的数据模型来创建各种表结构,帮助数据分析人员建立数据模型。视频讲解如下:


Hive是基于Hadoop之上的数据仓库平台,提供了数据仓库的相关功能。Hive最早起源于FaceBook,2008年FaceBook将Hive贡献给了Apache,成为了Hadoop体系中的一个组成部分。Hive支持的语言是HQL语言,即:Hive Query Language,它是SQL语言的一个子集。随着Hive版本的提高,HQL语言支持的SQL语法也会越来越多。从另一个方面来看,可以把Hive理解为一个翻译器,默认的行为是Hive on MapReduce,也是在Hive中执行的HQL语句会被转换成一个MapReduce任务运行在Yarn之上,从而处理HDFS中的数据。下表对比的它们之间的对应关系。



Hive的底层主要依赖于HDFS和Yarn。Hive将数据存入HDFS中,并将执行的SQL语句转换成MapReduce运行在Yarn上。下图说明了Hive的体系架构。



Hive的核心是其执行引擎Hive Driver,可以把它理解成是一个翻译器。通过Hive Driver可以把SQL语句转换成MapReduce处理HDFS中的数据。由于Hive需要将数据模型的元信息保存下来,因此Hive需要一个关系型数据库的支持,官方推荐使用MySQL来存储Hive的元信息。


元信息指的是:表名、列名、列的类型、分区、桶的信息等等。通过配置JDBC相关参数,在创建表的同时由Hive Driver将元信息存入MySQL中。


Hive提供了三种不同的方式来执行SQL:


  • Hive CLI命令行方式

CLI是Command Line Interface的缩写,它是Hive的命令行客户端。Hive CLI的使用方式基本上与MySQL的命令行客户端一样,开发人员可以直接在命令行中书写SQL语句。


  • 通过JDBC方式

Hive可以被当成一个关系型数据库来使用。因此可以使用标准的JDBC程序来访问Hive,从而执行SQL语句。但是开发JDBC程序需要有数据库服务器的支持,因此Hive提供了HiveServer2。通过这个Server,JDBC程序可以将SQL最终提交给Hive Driver执行。


默认配置下HiveServer2的端口是10000,而Hive数据库的名称是default。


  • 使用Hive Web Interface

Hive提供基于Web的客户端来执行SQL。但是从Hive 2.3版本开始,Hive Web Interface就被废弃了,原因是它所提供的功能太过于简单。如果要使用Web客户端,建议使用HUE。




相关文章
|
5月前
|
存储 SQL 数据库
【赵渝强老师】OceanBase的部署架构
OceanBase数据库支持两种部署架构:无共享(Shared-Nothing,SN)模式和共享存储(Shared-Storage,SS)模式。SN模式下,各节点对等,具备高扩展性、可用性和性能,运行于普通PC服务器集群;SS模式采用存算分离架构,租户数据存储在共享对象存储上,本地缓存热点数据。两种模式均支持高可用与多副本一致性,适用于不同业务场景。
374 1
|
7月前
|
XML 存储 分布式计算
【赵渝强老师】史上最详细:Hadoop HDFS的体系架构
HDFS(Hadoop分布式文件系统)由三个核心组件构成:NameNode、DataNode和SecondaryNameNode。NameNode负责管理文件系统的命名空间和客户端请求,维护元数据文件fsimage和edits;DataNode存储实际的数据块,默认大小为128MB;SecondaryNameNode定期合并edits日志到fsimage中,但不作为NameNode的热备份。通过这些组件的协同工作,HDFS实现了高效、可靠的大规模数据存储与管理。
643 70
|
5月前
|
存储 缓存 分布式数据库
【赵渝强老师】HBase的体系架构
HBase是一种基于BigTable思想的列式存储NoSQL数据库,适合数据分析与处理。其主从架构包含HBase HMaster、Region Server和ZooKeeper。HMaster负责Region分配及表管理;Region Server执行数据读写操作,并包含WAL预写日志、Block Cache读缓存和MemStore写缓存;ZooKeeper维护集群状态并协调分布式系统工作。通过视频讲解与架构图示,详细解析各组件功能与协作机制。
205 11
|
6月前
|
存储 关系型数据库 MySQL
【赵渝强老师】TiDB的体系架构
TiDB是由PingCAP公司自主研发的开源分布式关系型数据库,支持HTAP(混合事务分析处理),具备弹性扩缩容、金融级高可用、实时分析等特性,兼容MySQL协议。其架构分为存储集群(行存TiKV与列存TiFlash)、调度集群(PD实例)和计算集群(TiDB实例)。相比传统单机数据库,TiDB优势显著:纯分布式设计、高扩展性、自动故障恢复、ACID事务支持及丰富的工具生态,适用于高可用与强一致要求的场景。
201 10
|
11月前
|
大数据
【赵渝强老师】大数据主从架构的单点故障
大数据体系架构中,核心组件采用主从架构,存在单点故障问题。为提高系统可用性,需实现高可用(HA)架构,通常借助ZooKeeper来实现。ZooKeeper提供配置维护、分布式同步等功能,确保集群稳定运行。下图展示了基于ZooKeeper的HDFS HA架构。
210 0
|
7月前
|
存储 SQL 并行计算
【赵渝强老师】达梦数据库MPP集群的架构
达梦数据库提供大规模并行处理(MPP)架构,以低成本实现高性能并行计算,满足海量数据存储和复杂查询需求。DM MPP采用完全对等无共享体系,消除主节点瓶颈,通过多节点并行执行提升性能。其执行流程包括主EP生成计划、分发任务、各EP并行处理及结果汇总返回。为确保高可用性,建议结合数据守护部署。
164 0
|
11月前
|
SQL 存储 数据库
【赵渝强老师】基于Flink的流批一体架构
本文介绍了Flink如何实现流批一体的系统架构,包括数据集成、数仓架构和数据湖的流批一体方案。Flink通过统一的开发规范和SQL支持,解决了传统架构中的多套技术栈、数据链路冗余和数据口径不一致等问题,提高了开发效率和数据一致性。
529 7
|
11月前
|
存储 Oracle NoSQL
【赵渝强老师】Oracle的体系架构
Oracle数据库的核心在于其体系架构,主要包括数据库与实例、存储结构、进程结构和内存结构。数据库由物理文件组成,实例则是内存和进程的组合。存储结构分为逻辑和物理两部分,进程结构涉及多个后台进程如SMON、PMON、DBWn等,内存结构则包含SGA和PGA。掌握这些知识有助于更好地管理和优化Oracle数据库。
325 7
|
11月前
|
SQL 存储 Oracle
【赵渝强老师】Hive的分区表
Hive的分区表与Oracle、MySQL类似,通过分区条件将数据分隔存储,提高查询效率。本文介绍了静态分区表和动态分区表的创建与使用方法,包括具体SQL语句和执行计划分析,附带视频讲解。静态分区表需显式指定分区条件,而动态分区表则根据插入数据自动创建分区。
919 1
|
11月前
|
SQL 存储 关系型数据库
【赵渝强老师】Hive的内部表与外部表
Hive是基于HDFS的数据仓库,支持SQL查询。其数据模型包括内部表、外部表、分区表、临时表和桶表。本文介绍了如何创建和使用内部表和外部表,提供了详细的步骤和示例代码,并附有视频讲解。
615 1