更新时间:2025-09-18 GMT+08:00
分享

Spark on Paimon最佳实践

概述

Apache Paimon是一个流式数据湖存储技术,它提供高吞吐、低延迟的数据摄入、流式订阅和实时查询。采用开放的ORC、Parquet、Avro文件格式,与Flink、Spark等计算引擎兼容。

前提条件

  • 完成Hadoop部署并对接OBS,详情参考Hadoop对接OBS
  • 完成Spark部署。

    如果数据目录Catalog选择Hive,Spark请使用预构建的包含Hive的Spark版本,可以使用spark-xxx-bin-hadoop3.tgz或者使用以下命令构建:

    mvn -DskipTests clean package -Phive -Phive-thriftserver

    注意,spark-xxx-bin-without-hadoop.tgz预构建没有包含Hive,请避免使用。

配置Spark on Paimon环境

进入Apache Paimon官方文档,选择需要使用Paimon版本,参考对应版本文档的Engine Spark>Quick Start章节,完成Spark与Paimon的对接。

创建spark catalog

您可以根据自身业务环境选择Catalog type使用filesystem或者hive。

选项1:配置Paimon对接OBS,Catalog type使用filesystem

  1. 启动spark-sql执行Paimon Catalog配置。

    spark-sql \
      --conf "spark.driver.extraJavaOptions=-Dspark.sql.catalogImplementation=in-memory" 
      --conf "spark.sql.catalog.paimon=org.apache.paimon.spark.SparkCatalog" \
      --conf "spark.sql.catalog.paimon.metastore=filesystem" \
      --conf "spark.sql.catalog.paimon.warehouse=obs://xxx/xxx" \
      --conf "spark.sql.extensions=org.apache.paimon.spark.extensions.PaimonSparkSessionExtensions"

    或者您也可以在spark-default.conf 中配置,执行以下命令,进入配置文件编辑页面:

    vim ${SPARK_HOME}/conf/spark-defaults.conf

    在配置文件中写入以下配置项:

    spark.sql.catalogImplementation=in-memory
    spark.sql.catalog.paimon=org.apache.paimon.spark.SparkCatalog
    spark.sql.catalog.paimon.metastore=filesystem
    spark.sql.catalog.paimon.warehouse=obs://xxx/xxx
    spark.sql.extensions=org.apache.paimon.spark.extensions.PaimonSparkSessionExtensions

    修改完成后,按“Esc”,输入:wq保存并退出文件编辑。

  2. 切换到指定Catalog,命令如下:

    USE paimon;

  3. 创建数据库和表,命令如下:

    CREATE DATABASE db_xxx;
    use db_xxx;
    CREATE TABLE tbl_xxx(...);

选项2:配置Paimon对接OBS,Catalog type使用hive

  1. 启动spark-sql执行Paimon Catalog配置,命令如下:

    spark-sql \
        --conf "spark.sql.catalog.paimon=org.apache.paimon.spark.SparkCatalog" \
        --conf "spark.sql.catalog.paimon.warehouse=obs://xxx/xxx" \
        --conf "spark.sql.catalog.paimon.metastore=hive"

    或者您也可以在spark-default.conf 中配置,执行以下命令,进入配置文件编辑页面:

    vim ${SPARK_HOME}/conf/spark-defaults.conf

    在配置文件中写入以下配置项:

    spark.sql.catalog.paimon=org.apache.paimon.spark.SparkCatalog
    spark.sql.catalog.paimon.metastore=hive
    spark.sql.catalog.paimon.warehouse=obs://xxx/xxx

    修改完成后,按“Esc”,输入:wq保存并退出文件编辑。

  2. 切换到指定catalog,命令如下:

    use paimon;

  3. 创建数据库和表,命令如下:

      CREATE DATABASE db_xxx;
      use db_xxx;
      CREATE TABLE tbl_xxx(...);

相关文档