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
- 启动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保存并退出文件编辑。
- 切换到指定Catalog,命令如下:
USE paimon;
- 创建数据库和表,命令如下:
CREATE DATABASE db_xxx; use db_xxx; CREATE TABLE tbl_xxx(...);
选项2:配置Paimon对接OBS,Catalog type使用hive
- 启动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保存并退出文件编辑。
- 切换到指定catalog,命令如下:
use paimon;
- 创建数据库和表,命令如下:
CREATE DATABASE db_xxx; use db_xxx; CREATE TABLE tbl_xxx(...);