Hive软件架构及关键组件解析

Hive 组件安装配置实验操作 Hive 组件安装配置,配置 Hive 组件,配置 MySQL 数据库 root 的密码。 阅读详情

Hive 的软件架构是一个经典的客户端-服务端模型,核心设计理念是将 HiveQL (类 SQL 查询语言) 转换成底层的计算框架任务(如 MapReduce, Tez, Spark),并在 Hadoop 分布式文件系统 (HDFS) 上执行。它的主要目标是提供数据摘要、查询和分析能力,同时隐藏了底层分布式计算的复杂性。

以下是 Hive 的关键组件及其交互关系:

  1. 用户接口/客户端:

    • CLI: 命令行界面,最基础直接的交互方式。
    • JDBC/ODBC: 提供 Java 数据库连接和开放数据库连接标准接口,允许应用程序(如 BI 工具:Tableau, Power BI)连接 Hive。
    • Hue: 基于 Web 的图形用户界面,常用于 Hadoop 生态系统,包含 Hive 编辑器。
    • Web UI: Hive 2.x 之后提供了基础的 Web 界面(通常运行在端口 10002)来提交查询和监控作业。
    • Thrift Server: 允许不同编程语言的客户端通过 Thrift RPC 协议与 Hive 交互。
  2. Hive 驱动:

    • 这是 Hive 的核心组件,负责接收客户端提交的查询请求(HiveQL 或命令),并协调整个查询生命周期。它包含几个关键子组件:
      • 解析器: 对输入的 HiveQL 字符串进行词法分析、语法分析,生成抽象语法树。
      • 语义分析器/类型检查器: 检查 AST 中的语义正确性(如表、列是否存在,数据类型是否匹配),并利用 Metastore 中的元数据进行验证。
      • 逻辑计划生成器: 将经过验证的 AST 转换成逻辑执行计划(一个由操作符树组成的 DAG - 有向无环图)。这些操作符代表关系代数操作(如 Filter, Join, Group By, Select)。
      • 优化器: 对逻辑计划应用一系列优化规则(如谓词下推、列剪裁、分区剪裁、Join 优化、MapJoin 优化等),生成更高效的优化后的逻辑计划。
      • 物理计划生成器: 将优化后的逻辑计划转换成物理执行计划。这个计划指定了如何执行每个逻辑操作符,以及使用哪种计算引擎(MapReduce, Tez, Spark)。它生成一个由物理操作符组成的 DAG。
      • 执行引擎: 负责执行物理计划。它:
        • 将物理计划 DAG 提交给底层的计算框架(如 YARN 来调度 MapReduce 或 Tez 作业)。
        • 与计算框架(如 MapReduce 或 Tez)交互,监控作业执行状态。
        • 收集最终结果并返回给客户端。
      • Hive 执行引擎选项:
        • MapReduce: 传统的、最兼容但通常较慢的引擎。
        • Tez: 基于 DAG 的引擎,避免了 MapReduce 的多次读写磁盘开销,性能显著优于 MR,是 Hive 推荐的默认引擎。
        • Spark: 使用 Apache Spark 作为执行引擎,利用其内存计算和 DAG 优化能力,提供高性能,尤其适合迭代和交互式查询。
  3. 元存储:

    • 这是 Hive 的核心系统目录,存储所有 Hive 的元数据。
    • 存储内容: 数据库、表、列及其类型的信息、表的分区信息、表数据所在的 HDFS 目录位置、表的存储格式(如 TextFile, ORC, Parquet)、表的属性(如 serde)、视图信息、权限信息等。
    • 重要性: 解耦了元数据与计算,使得多个 Hive 会话(甚至其他工具如 Spark SQL, Impala, Presto)可以共享同一份元数据定义。没有 Metastore,Hive 无法工作。
    • 后端存储: 通常使用关系型数据库(如 MySQL, PostgreSQL)作为 Metastore 的持久化存储。Hive 自带 Derby 数据库,但仅适用于单用户测试环境,生产环境必须使用独立的 RDBMS。
  4. Hadoop 核心:

    • Hadoop 分布式文件系统: Hive 表数据最终存储在 HDFS 上。Hive 不管理数据存储本身,而是管理数据在 HDFS 上的组织方式(目录结构)和元数据。
    • YARN: Hadoop 的资源管理和作业调度框架。当使用 MapReduce 或 Tez 作为执行引擎时,Hive 将作业提交给 YARN 来分配集群资源并执行计算任务。

数据流概览:

  1. 用户通过 CLI/JDBC/ODBC/WebUI 等接口提交 HiveQL 查询。
  2. 驱动接收查询。
  3. 解析器进行词法语法分析,生成 AST。
  4. 语义分析器结合 Metastore 中的元数据验证查询语义。
  5. 逻辑计划生成器创建逻辑执行计划。
  6. 优化器优化逻辑计划。
  7. 物理计划生成器将优化后的逻辑计划转换为特定执行引擎(MR/Tez/Spark)的物理计划。
  8. 执行引擎将物理计划提交给底层的计算框架(通过 YARN)。
  9. 计算框架(MR/Tez/Spark)在 YARN 管理下,从 HDFS 读取输入数据。
  10. 计算框架执行任务,处理数据。
  11. 计算结果写回 HDFS(对于 INSERT 等操作)或返回给执行引擎(对于 SELECT 查询)。
  12. 执行引擎将最终结果返回给用户接口/客户端。

关键架构特点:

  • Schema-on-Read: 与传统数据库的 Schema-on-Write 不同,Hive 在数据写入时不强制校验,而是在查询读取时根据 Metastore 中的元数据解释数据格式。这提供了极大的灵活性,但也要求数据格式与元数据定义匹配。
  • 计算与存储分离: Hive 专注于查询处理和计算逻辑,数据持久化存储在 HDFS 上。
  • 元数据独立: Metastore 作为独立服务存在,支持多客户端共享和高可用。
  • 执行引擎可插拔: 支持 MapReduce, Tez, Spark 等多种执行引擎,适应不同性能需求。
  • 可扩展性: 可以处理 PB 级别的数据,利用 Hadoop 集群的横向扩展能力。

演进:

  • LLAP: Hive 2.0 引入了 LLAP,它是一个长期运行的服务进程,缓存元数据和热数据在内存中,并与执行引擎紧密集成,显著提升了交互式查询的性能。
  • Hive on Spark: 更深度地集成 Spark 作为执行引擎,利用 Spark 的内存计算优势。
  • ACID 事务支持: Hive 0.14 开始支持有限的 ACID 事务(INSERT, UPDATE, DELETE),主要针对 ORC 格式的表,增强了其在数据仓库场景下的能力(如缓慢变化维处理)。

总而言之,Hive 的架构巧妙地利用 Hadoop 的存储和计算能力,通过 Metastore 管理元数据,将类 SQL 查询转换成分布式计算任务,为大数据分析提供了一个强大且熟悉的接口。

Hive 组件安装配置 3.3.6 将以下位置的 ${system:java.io.tmpdir}/${system:user.name} 替换为“/usr/local/src/hive/tmp”目录及其子目录。将/usr/local/src/hive/conf 文件夹下 hive-default.xml.template 文件,更名为 hive-site.xml。修改 MySQL 数据库配置,在/etc/my.cnf 文件中添加 MySQL 数据库配置项。启动 MySQL 数据库并查询 MySQL 数据库状态。 阅读详情

相关推荐

hive组件安装实验报告

(1)关闭Linux系统防火墙,并将防火墙设定为系统开机并不自动启动。# 关闭防火墙服务# 设置防火墙服务开机不启动(2)卸载Linux系统自带的MariaDB。1)首先查看Linux系统中MariaDB的安装情况。# 查询已安装的mariadb软件包以上结果显示Linux系统中已经按照了mariadb-libs-5.5.52-2.el7.x86_64软件包, 需要将其卸载。2)卸载MariaDB软件包。# 卸载mariadb软件包。

2302_78688673的博客 1489

【Hive面试必知】Hive架构深度解析:核心组件、工作原理与交互关系全揭秘

Hive并非简单的SQL到MapReduce的翻译器,而是一个完整的、多层次的数据处理平台,它巧妙地将关系型数据库的概念映射到分布式存储和计算环境中。与传统数据库相比,Hive采用了"读时模式"(Schema-on-Read)而非"写时模式",这意味着数据在加载时不需要严格验证,而是在查询时应用表结构,这种设计极大地提高了数据加载的灵活性和效率。理解Hive架构对于大数据开发者至关重要,它不仅能帮助正确使用Hive,还能在出现问题时快速定位系统瓶颈,为性能优化提供理论基础。DAG执行,减少中间落盘。

IT成长日记的博客 2126

数仓工具—Hive关键字(11)

关键字是任何一门语言中都要的一些字符,这些字符都有特殊的含义,一般情况下用户不能直接使用的,因为编译器对关键字是有特殊处理的。 Hive有一些保留的关键字,我们在执行一些语句时,不能将这些关键字作为标识符(Identifier),比如建表语句的表名或者字段名

5万+

Hive 组件安装部署

Hive 组件需要基于 Hadoop 系统进行安装。因此,在安装 Hive 组件前,需要确保 Hadoop 系统能够正常运行。本章节内容是基于之前已部署完毕的 Hadoop 全分布系统,在 master 节点上实现 Hive 组件安装。

2401_83387625的博客 1699

Vivado工程芯片型号更换全流程:从IP更新到生成新bit文件(避坑指南)

本文详细介绍了Vivado工程中更换芯片型号的全流程,包括IP更新、约束文件适配和生成新bit文件的关键步骤。特别针对FPGA开发中常见的兼容性问题提供避坑指南,帮助开发者高效完成芯片迁移,确保设计稳定性和性能优化。

weixin_42549451的博客 297

Python与numpy版本兼容性排查指南

本文详细解析了Python与numpy版本兼容性问题,提供了快速诊断和解决版本冲突的实用方法。通过查看版本信息、使用官方兼容性对照表以及降级或升级环境等方案,帮助开发者有效避免常见的报错问题,如'ImportError'和'AttributeError'。文章还介绍了使用虚拟环境和requirements.txt等工程实践,确保项目依赖的稳定性。

weixin_29089057的博客 318

Hive 软件架构

Hive 的软件架构 = SQL 解析器 + 元数据管理 + 可插拔执行引擎 + 分布式存储抽象它通过解耦查询逻辑与物理执行,实现了“一次建模,多引擎运行”的灵活性,成为企业离线数仓的基石。虽然新兴引擎(如 Trino、Doris)在交互式场景崛起,但 Hive 在ETL、批处理、大规模数据加工领域仍不可替代。📌学习建议:理解 Hive 架构,重点掌握Metastore 作用、执行计划生成过程、Tez/Spark 引擎差异,这对调优和排错至关重要。

走过冬季 1354

C#报表,使用微软rdlc模板,生成Excel, PDF, Word, Image文件,使用自定义对象做数据集不连接数据库

我项目是用vs2017 建的,.NET farmwork 4.7.2 这种报表可以用于任何模式的应用,web,桌面,因为这只是生成一个文件或者文件流 步骤比较详细啰嗦,其中有讲到rdlc怎么新建设计,如果已经会设计rdlc了的可以直接跳到底部看代码的执行结果, 底部还有源码下载链接,百度盘 首先控制台安装报表包 新建rdlc 报表 建立rdlc里要用的数据模型 模型建完,或者修改都要重新...

qq_35955916的博客 5202

【Hive入门】Hive架构与组件深度解析:从核心组件到生态协同

通过本文的系统解析,您应该已经掌握Hive各组件的运维要点以及与HDFS/YARN的协同原理。良好的Hive运维=合理的架构设计+适当的参数调优+持续的监控告警。建议定期进行组件健康检查,保持Hive服务的最佳状态。Hive作为Hadoop生态中的数据仓库工具,其架构设计完美融合了传统数据库概念与大数据技术栈。

IT成长日记的博客 1346

保姆级教程:中科蓝讯Downloader配置详解,从软硬开关机到EQ调音一步到位

本文详细介绍了中科蓝讯Downloader的配置流程,从硬件初始化到音频调优的全方位指南。涵盖软硬开关机选择、电源管理、DAC校准、EQ调音等关键步骤,帮助开发者高效完成配置并避免常见问题。特别适合需要精确控制音频设备和电源管理的中科蓝讯芯片开发者。

weixin_33670786的博客 308

腾讯2020 unreal虚幻面试题

解析一下,腾讯的unreal客户端面试题: 1.lua性能优化的方向 申请的内存,是造成卡顿的原因之一,在C++与lua交互中,如果参数或者返回值有类变量,那么这个变量不会再交互的栈中存放数据,而会通过申请内存,再指定在交互,这样就造成卡顿,因此可以通过把C++的对象的每个参数分开单独传递,可以解决问题,当时我们游戏改完这个问题后,整体提升了2帧。 其实,主要是Tick循环中,减少与C++的交互,需要的数据不要每帧都去拿,其次,经常拿的一些数据(比方说主角信息),可以做一个lua缓存,...

qq_17347313的博客 1万+

Hive架构、组件

Hive架构原理

喻师傅的学习笔记 2493

《QGIS空间数据处理与高级制图》【目录】

《QGIS空间数据处理与高级制图》是一本面向GIS技术人员和学生的进阶手册,重点提升数据处理效率和专业制图标准化水平。全书涵盖空间数据预处理、矢量编辑、栅格处理、坐标系统应用和符号化设计等核心内容。书中详细介绍了批量数据转换、拓扑检查、遥感影像处理、自定义坐标系创建等实用技能,并提供了模型构建器和PyQGIS脚本实现自动化操作。通过大量实战案例和问题排查指南,帮助读者从基础使用进阶到专业应用,适合测绘、规划、环保等行业的GIS从业者参考使用。

LuckyHanMo的博客 372

HIVE关键字清单

因项目需要识别出Hive的关键字,特从Hive官网中扣下来的。如坚持使用关键字,文章最末有解决方案。 Keywords, Non-reserved Keywords and Reserved Keywords Keywords ADD,ADMIN,AFTER,ALL,ALTER,ANALYZE,AND,ARCHIVE,ARRAY,AS,ASC,AUTHORIZATION,BEFORE,BETWEEN, BIGINT,BINARY,BOOLEAN,BOTH,BUCKET,BUCKETS,

SunWuKong_Hadoop的博客 4552

经典的YOLOv3和YOLOV5算法详解及代码复现

yolov3和yolov5算法详解及代码复现

hasakie的博客 769

RandLA-Net Tensorrt 推理 c++

RandLA-Net 实现 Tensorrt 部署.

J。 1108

hive关键字处理方式

Hive的关键字包括Keywords, Non-reserved Keywords and Reserved Keywords Keywords ADD,ADMIN,AFTER,ALL,ALTER,ANALYZE,AND,ARCHIVE,ARRAY,AS,ASC,AUTHORIZATION,BEFORE,BETWEEN, BIGINT,BINARY,BOOLEAN,BOTH,BUCKET,BUCKETS,BY,CASCADE,CASE,CAST,CHANGE,CHAR,CLUSTER, CLUST

遥望...... 3993

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【Hive入门】Hive架构深度解析:核心组件与执行机制全揭秘

Hive作为Hadoop生态系统中最重要的数据仓库工具,其架构设计完美体现了"SQL on Hadoop"的核心思想。

IT成长日记的博客 1005

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

hadoop,hive组件安装

MySQL 数据库安装后的默认密码保存在/var/log/mysqld.log 文件中,在该文件中以 password 关键字搜索默认密码。/opt/software/apache-hive-2.0.0-bin.tar.gz 路解压到/usr/local/src 路径下。将/usr/local/src/hive/conf 文件夹下 hive-default.xml.template 文件,更名为。(3)修改 MySQL 数据库配置,在/etc/my.cnf 文件中添加 MySQL 数据库配置项。

z1523364690的博客 2144

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

部署Hive组件

部署Hive组件 此文以Hadoop 3.2.2、Hive 3.1.2版本为例! 如未指定,下述命令在所有节点执行! 一、系统资源及组件规划 节点名称 系统名称 CPU/内存 网卡 磁盘 IP地址 OS NameNode namenode 2C/4G ens33 128G 192.168.0.11 CentOS7 Secondary NameNode secondarynamenode 2C/4G ens33 128G 192.168.0.12 CentOS7 ResourceMan

mengshicheng1992的博客 584

Hive 源码解析一:Driver

解析hive的命令行客户端如何处理sql文

小王是个弟弟 3186

hive中常用的关键字

hive数据表 13.1.使用"-put"加载数据(只适用内部表和外部表) hadoop fs -put 文件 /user/hive/warehouse/数据库名.db/表名 (将Linux本地中的数据加载到hive中) 13.2.使用"-mv|-cp"加载数据(只适用内部表和外部表) hadoop fs -mv/-cp /文件路径 /user/hive/warehouse/数据库名.db...

曾哥的博客 1万+

深度解析 HDFS与Hive的关系

特性HDFSHive存储对象文件(Block)表(逻辑)元数据内部内存 & FsImage访问方式SQL容错机制Block 副本、NN HA依赖 HDFS 容错执行模式存储为主执行为主(借助 MapReduce/Tez/Spark)阶段类型特征编译阶段类似数据库编译器语法 → 语义 → 优化 → 物理计划执行阶段类似大数据任务Tez/Spark/MR 执行 DAG,有效并行计算元数据阶段类似数据库 Catalog所有数据路径均依赖 Metastore。

lrj41781196的博客 1985

Hive源码解析—之—Hive的入口

Hive源码解析—之—hive的入口: 初衷:hi,大家好,我叫红门,在hive方面是个菜鸟,现在读hive源码希望能够更了解底层,尤其是hive与Hadoop切换这块。但在读hive源码时发现比Hadoop源码难读一些,虽然Hadoop源码量比较大,但是整体很规范,命名规

hit_kongquan的专栏 3202
上一篇: UDF、UDTF、UDAF区别详解
下一篇: Flink软件架构及核心机制详解
走过冬季
博客等级 码龄9年 1609粉丝 341原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

走过冬季

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值