paimon实战-- 基于hive-catalog搭建paimon计算与存储环境

简介

Apache Paimon 作为新一代 流批一体数据湖存储 ,在实时写入、近实时更新、主键表等场景下表现突出。相比 Iceberg / Hudi,Paimon 更偏向 Streaming-first 的设计,非常适合实时数仓与湖仓融合架构。

本文基于真实生产环境落地经验,详细拆解一套:

Hive Catalog 统一管理 Paimon 元数据

Flink / Spark / Hive 多引擎安全、稳定访问同一份 Paimon 数据湖

一、为什么选择 Hive Catalog 管理 Paimon 元数据?

Paimon 支持多种 Catalog:

  • filesystem catalog

  • hive catalog

  • rest catalog(新)

1️⃣ filesystem catalog 的局限

虽然 filesystem catalog 部署简单,但在生产中存在明显问题:

  • 元数据仅存于文件系统

  • 多引擎并发访问一致性差

  • 不支持 Hive / Spark SQL 原生发现表

  • 运维治理能力弱

不适合多引擎、多人协作的生产环境


2️⃣ Hive Catalog 的优势(生产首选)

使用 Hive Metastore 作为 Paimon 的 Catalog:

  • 统一元数据中心(表 / schema / 分区)

  • Flink / Spark / Hive 共享同一套表定义

  • 支持 Hive / Spark SQL 直接查 Paimon 表

  • 成熟稳定,运维体系完善

本质上:Hive Metastore 只管元数据,数据仍由 Paimon 管理

二、整体架构设计

1️⃣ 架构总览

复制代码
        +-------------+
        |  Hive SQL   |
        +------+------+
               |
        +------+------+        +------------------+
        | Hive Meta  | <----> |  Paimon Metadata |
        |  Store     |        +------------------+
        +------+------+                 |
               |                        |
     +---------+----------+             |
     |                    |             |       
+----+-----+        +-----+----+     +----------+----+
| Flink SQL|        | Spark SQL|     |   HDFS / S3   |
+----------+        +----------+     +---------------+
  • Hive Metastore:统一元数据服务

  • Paimon:负责数据文件、快照、索引

  • HDFS / OSS / S3:数据与表目录存储

  • Flink / Spark / Hive:多引擎访问


三、基础环境准备

1️⃣ 组件版本建议(生产验证)

组件 推荐版本
Paimon 0.7.x / 0.8.x
Flink 1.17 / 1.18
Spark 3.3+
Hive Metastore 2.3.x / 3.1.x
Hadoop 3.x

⚠️ 注意:Spark 访问 Paimon 不依赖 Hive 执行引擎,只使用 Metastore。


2️⃣ Hive Metastore 要求

  • 独立部署 HMS(推荐)

  • MySQL / PostgreSQL 作为元数据库

  • 所有引擎 网络可达 HMS


四、Paimon + Hive Catalog 部署配置

1️⃣ 创建 Warehouse 目录

复制代码
hdfs:///warehouse/paimon

该目录下每个 database 对应一个子目录。


(1)准备依赖

将以下 jar 放入 Flink lib:

  • paimon-flink-*.jar

  • hive-exec-*.jar

  • hive-metastore-*.jar


sql 复制代码
CREATE CATALOG paimon_hive WITH (
  'type' = 'paimon',
  'metastore' = 'hive',
  'uri' = 'thrift://hms:9083',
  'warehouse' = 'hdfs:///warehouse/paimon'
);
复制代码
USE CATALOG paimon_hive;

sql 复制代码
/* primary key */
CREATE TABLE my_table_pk (
      user_id BIGINT,
      item_id BIGINT,
      behavior STRING,
      dt STRING,
      hh STRING,
      PRIMARY KEY (dt, hh, user_id) NOT ENFORCED
);

📌 表定义会同步写入 Hive Metastore


五、Spark 访问 Hive Catalog 下的 Paimon 表

1️⃣ Spark 依赖准备

将以下 jar 放入 Spark classpath:

  • paimon-spark-3.3-*.jar

  • hive-metastore-*.jar


2️⃣ Spark SQL Catalog 配置

sql 复制代码
CREATE CATALOG paimon_hive
USING paimon
OPTIONS (
  'metastore' = 'hive',
  'uri' = 'thrift://hms:9083',
  'warehouse' = 'hdfs:///warehouse/paimon'
);
复制代码
USE paimon_hive;

3️⃣ Spark 查询 Paimon 表

sql 复制代码
SELECT dt, SUM(amount)
FROM dwd_order
GROUP BY dt;

📌 Spark 直接读取 Paimon 数据文件和快照。


六、Hive 访问 Paimon 表

Hive 不适合写入 Paimon,仅建议作为查询引擎。

1️⃣ Hive 依赖

  • paimon-hive-connector.jar

  • hive-exec-*.jar


2️⃣ Hive 外表映射

sql 复制代码
CREATE EXTERNAL TABLE dwd_order (
  order_id BIGINT,
  user_id BIGINT,
  amount DECIMAL(10,2)
)
PARTITIONED BY (dt STRING)
STORED BY 'org.apache.paimon.hive.PaimonStorageHandler'
LOCATION 'hdfs:///warehouse/paimon/default.db/dwd_order';

之后即可使用 Hive SQL 查询。

相关推荐
躺柒1 小时前
读数据架构知识体系指南01关系数据仓库(上)
数据仓库·架构·数据分析·spark·数据湖·关系数据库·企业数据仓库
qingwufeiyang_5303 天前
IceBerg学习笔记2
数据仓库·数据湖
凤山老林8 天前
实战笔记:Spring Boot 结合 Flink CDC 与 Iceberg 落地实时数据湖
数据湖·flink cdc
StarRocks_labs14 天前
StarRocks 如何查询 Paimon 半结构化数据?Variant、Shredding 与 SQL 实践
starrocks·sql·paimon·variant·shredding
SelectDB技术团队15 天前
Apache Doris 5.0 年度版本前瞻(一):构建统一的多模湖仓实时分析平台
大数据·doris·数据湖·湖仓一体·lakehouse·湖仓分析·多模分析
StarRocks_labs20 天前
StarRocks × Fluss × Paimon:流湖仓分析与 ETL 闭环
starrocks·flink·jni·native·paimon·湖仓·fluss
StarRocks_labs21 天前
基于 Fluss、Paimon 与 StarRocks 构建淘天集团湖流一体数据链路
starrocks·olap·schema·paimon·fluss·湖流一体
StarRocks_labs22 天前
StarRocks x Fluss x Paimon 湖流一体方案:构建秒级响应、湖流一体的实时数据引擎
starrocks·kafka·lambda·查询·paimon·fluss·湖流一体
StarRocks_labs23 天前
StarRocks 全模态能力导读:连接内容理解、混合检索与业务分析
starrocks·paimon·业务分析·多模态处理·混合检索·全模态能力·内容处理