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 查询。

相关推荐
StarRocks_labs1 天前
StarRocks 接入 Paimon C++:让湖上查询进入原生执行链路
starrocks·c++·sql·jni·paimon·auto·湖上查询
SelectDB技术团队2 天前
存算分离建表与 Storage Vault 配置全流程:日志集群从建库到弹性扩缩容的命令链
elasticsearch·日志·数据湖·apache doris·日志数据·数据库选型·多模湖仓
俊哥大数据7 天前
基于 FlinkSQL + Paimon + Doris 的车联网流批一体湖仓实践 —— 第 1 章 业务背景与传统 Lambda 架构痛点
大数据·doris·湖仓一体·flinksql·paimon
俊哥大数据7 天前
基于 FlinkSQL + Paimon + Doris 的车联网流批一体湖仓实践 —— 第 2 章 流批一体湖仓总体架构与三条分区契约铁律
flink·doris·湖仓一体·paimon
俊哥大数据7 天前
基于 FlinkSQL + Paimon + Doris 的车联网流批一体湖仓实践 —— 第 4 章 Kafka 企标报文入湖(ODS 表设计)
flink·doris·湖仓一体·paimon·流批一体
俊哥大数据7 天前
基于 FlinkSQL + Paimon + Doris 的车联网流批一体湖仓实践 —— 第 3 章 Paimon 1.4 湖仓底座与 Catalog 配置
flink·doris·湖仓一体·paimon
躺柒9 天前
读数据架构知识体系指南16数据网格(上)
数据仓库·架构·数据分析·数据湖·数据架构·关系数据库
躺柒11 天前
读数据架构知识体系指南14数据编织
大数据·数据仓库·数据分析·数据湖·数据编织
躺柒12 天前
读数据架构知识体系指南13现代数据仓库
大数据·数据分析·数据湖·mdm·rdm
俊哥大数据17 天前
Flink1.20.3 实时消费 Kafka 数据并解析入湖 Paimon1.4.2 全流程实战
分布式·flink·kafka·数据湖·paimon