ZhangZhihui's Blog  

2025年12月24日

摘要: 这是一个非常经典且容易混淆的问题。简单来说:不能。 如果 Hive 的计算引擎设置为 MapReduce,它运行的是 HiveQL,而不是 Spark SQL。虽然两者长得很像(都是 SQL),但它们的“大脑”和“执行逻辑”是完全不同的。 为了帮你彻底理清关系,我们需要区分两个经常被搞混的概念:Hi 阅读全文
posted @ 2025-12-24 23:27 ZhangZhihuiAAA 阅读(2) 评论(0) 推荐(0)
 
摘要: 在 Hadoop 生态系统中,YARN 与 MapReduce/Tez/Spark 的关系可以用一个经典的比喻来理解:YARN 是“操作系统(资源管家)”,而 MapReduce、Tez 和 Spark 是“运行在系统上的应用程序(计算工具)”。 它们之间通过“资源申请-分配-任务执行”的逻辑紧密耦 阅读全文
posted @ 2025-12-24 22:35 ZhangZhihuiAAA 阅读(17) 评论(0) 推荐(0)
 
摘要: Hive 调优是一个系统性工程,通常可以从 SQL 语法与逻辑优化、存储与数据布局、执行引擎与资源参数 以及 数据倾斜处理 四个维度展开。 1. 存储与数据布局调优(最关键) 在 Hive 中,数据如何“放置”直接决定了读取速度。 选择列式存储格式: 推荐使用 ORC 或 Parquet。它们支持列 阅读全文
posted @ 2025-12-24 22:10 ZhangZhihuiAAA 阅读(16) 评论(0) 推荐(0)
 
摘要: Hive 的 Metastore(通常存储在 MySQL 或 PostgreSQL 中)是一个典型的关系型数据库。它存储了关于数据的所有元数据(即“关于数据的数据”),例如表名、列名、分区信息以及存储路径。 Metastore 的表结构非常多(通常有 50-70 张表),但最核心的可以归纳为以下几类 阅读全文
posted @ 2025-12-24 21:59 ZhangZhihuiAAA 阅读(8) 评论(0) 推荐(0)
 
摘要: 在 Hive 中,SerDe 是 Serializer(序列化器)和 Deserializer(反序列化器)的缩写。 它是 Hive 架构中非常核心的组件,充当了 HDFS 字节流 与 Hive 表格行/列 之间的“翻译官”。 1. SerDe 的核心工作流程 Hive 并不真正“拥有”数据,它只是 阅读全文
posted @ 2025-12-24 21:48 ZhangZhihuiAAA 阅读(9) 评论(0) 推荐(0)
 
摘要: 在 PySpark 和 PyFlink 中写入 Hive 表,本质上是利用这些引擎的 Writer(写入器) 按照 Hive 的元数据规范(分区、存储格式、序列化方式)将数据生成文件,并更新 Hive Metastore。 以下是具体的实现代码与核心配置: 1. PySpark 写入 Hive 表 阅读全文
posted @ 2025-12-24 21:03 ZhangZhihuiAAA 阅读(6) 评论(0) 推荐(0)
 
摘要: 在 PySpark 和 PyFlink 中读取 Hive 表,其核心逻辑都是通过特定的 Catalog 机制连接到 Hive Metastore (HMS),获取元数据后,直接读取底层的存储文件。 以下是具体的实现方式: 1. PySpark 读取 Hive PySpark 具有原生的 Hive 支 阅读全文
posted @ 2025-12-24 20:56 ZhangZhihuiAAA 阅读(5) 评论(0) 推荐(0)
 
摘要: 在 Hive 的语境下,Catalog(目录) 是元数据管理的高级抽象层。如果你把 Hive 比作一个图书馆,那么 Database 是书架,Table 是书,而 Catalog 就是整个图书馆的索引系统和管理边界。 在 Hive 3.0 之前,元数据的顶层就是 Database;但从 Hive 3 阅读全文
posted @ 2025-12-24 19:59 ZhangZhihuiAAA 阅读(13) 评论(0) 推荐(0)
 
摘要: 在 Hive 中将表存储为不同的格式,主要分为文件级格式(ORC, Parquet)和表级格式/数据湖格式(Iceberg, Hudi, Paimon, Delta Lake)两类。 1. 文件级格式 (ORC, Parquet) 这是 Hive 最基础的存储方式,直接在 CREATE TABLE 阅读全文
posted @ 2025-12-24 19:46 ZhangZhihuiAAA 阅读(5) 评论(0) 推荐(0)
 
摘要: Hive 连接外部数据源的核心思路主要分为三类:Storage Handlers(用于数据库/NoSQL)、外部表(用于对象存储) 以及 连接器/打通工具(用于 Kafka)。 以下是针对不同数据源的详细连接方案: 1. 连接关系型数据库 (MySQL, Oracle, PostgreSQL) Hi 阅读全文
posted @ 2025-12-24 19:30 ZhangZhihuiAAA 阅读(12) 评论(0) 推荐(0)
 
摘要: Apache Doris is a real-time analytical database with an architecture simplified into two primary components: the FE (Frontend) and the BE (Backend). T 阅读全文
posted @ 2025-12-24 10:58 ZhangZhihuiAAA 阅读(6) 评论(0) 推荐(0)
 
摘要: Modern data architecture has shifted toward the "Data Lakehouse," where open table formats like Iceberg, Hudi, Paimon, and Delta Lake provide database 阅读全文
posted @ 2025-12-24 10:50 ZhangZhihuiAAA 阅读(15) 评论(0) 推荐(0)
 
摘要: frank@ZZHPC:~$ swapon --show NAME TYPE SIZE USED PRIO /dev/sdc partition 4G 0B -2 frank@ZZHPC:~$ free -h total used free shared buff/cache available M 阅读全文
posted @ 2025-12-24 09:53 ZhangZhihuiAAA 阅读(3) 评论(0) 推荐(0)
 
摘要: Massively Parallel Processing (MPP) is a computing architecture where a large number of independent processors (or "nodes") work together to solve a s 阅读全文
posted @ 2025-12-24 09:22 ZhangZhihuiAAA 阅读(6) 评论(0) 推荐(0)