部署 Polaris

本地部署

师成师成· 更新于 2026-09-29· 阅读 9 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

本地部署 Polaris

Polaris 可以通过 Docker 镜像部署,也可以作为独立进程运行。在开始之前,请确保你已满足上一页中详述的相关先决条件。

通用设置

在运行 Polaris 之前,请确保你已完成以下设置步骤:

  1. 构建 Polaris
cd ~/polaris
./gradlew \
  :polaris-server:assemble \
  :polaris-server:quarkusAppPartsBuild --rerun \
  :polaris-admin:assemble \
  :polaris-admin:quarkusAppPartsBuild --rerun \
  -Dquarkus.container-image.build=true
  • 对于独立模式:如果不需要构建 Docker 镜像,可以省略 -Dquarkus.container-image.tag 和 -Dquarkus.container-image.build 选项。

使用 Docker 运行 Polaris

开始在 Docker 中使用 Polaris 并启动 Polaris,它已打包了 Postgres 实例、Apache Spark 和 Trino。

export ASSETS_PATH=$(pwd)/getting-started/assets/
export QUARKUS_DATASOURCE_JDBC_URL=jdbc:postgresql://postgres:5432/POLARIS
export QUARKUS_DATASOURCE_USERNAME=postgres
export QUARKUS_DATASOURCE_PASSWORD=postgres
export CLIENT_ID=root
export CLIENT_SECRET=s3cr3t
docker compose -p polaris -f getting-started/assets/postgres/docker-compose-postgres.yml \
  -f getting-started/jdbc/docker-compose-bootstrap-db.yml \
  -f getting-started/jdbc/docker-compose.yml up -d

在 Polaris、Spark 和 Trino 构建并启动的过程中,你会持续看到相应的输出。最终,日志将不再滚动,屏幕上会显示一些与 Spark 相关的日志,内容大致如下:

spark-sql-1          | Spark Web UI available at http://8bc4de8ed854:4040
spark-sql-1          | Spark master: local[*], Application Id: local-1743745174604
spark-sql-1          | 25/04/04 05:39:38 WARN SparkSQLCLIDriver: WARNING: Directory for Hive history file: /home/spark does not exist.   History will not be available during this session.
spark-sql-1          | 25/04/04 05:39:39 WARN RESTSessionCatalog: Iceberg REST client is missing the OAuth2 server URI configuration and defaults to http://polaris:8181/api/catalogv1/oauth/tokens. This automatic fallback will be removed in a future Iceberg release.It is recommended to configure the OAuth2 endpoint using the 'oauth2-server-uri' property to be prepared. This warning will disappear if the OAuth2 endpoint is explicitly configured. See https://github.com/apache/iceberg/issues/10537

Docker 镜像预先配置了一个名为 quickstart_catalog 的示例目录,该目录使用本地文件系统。

将 Polaris 作为独立进程运行

你也可以通过 Gradle(包含在 Polaris 仓库中)启动 Polaris:

运行以下命令以启动 Polaris 服务器:

./gradlew run

你会看到 Polaris 构建并启动期间持续输出日志。最终,日志将停止滚动,你应当看到类似如下的信息:

INFO  [io.quarkus] [,] [,,,] (main) Apache Polaris Server <version> on JVM (powered by Quarkus <version>) started in 1.911s. Listening on: http://0.0.0.0:8181. Management interface listening on http://0.0.0.0:8182.
INFO  [io.quarkus] [,] [,,,] (main) Profile prod activated.
INFO  [io.quarkus] [,] [,,,] (main) Installed features: [...]

此时,Polaris 已经在运行了。

在本教程中使用 Gradle 启动的 Polaris 实例时,我们将启动一个仅将实体存储在内存中的 Polaris 实例。这意味着你定义的任何实体都会在 Polaris 关闭时被销毁。有关如何将 Polaris 配置为生产环境使用的更多信息,请参阅文档。

使用 ./gradlew run 命令运行 Polaris 时,根主体凭据的 CLIENT_ID 和 CLIENT_SECRET 分别为 root 和 s3cr3t。

本地安装 Apache Spark 和 Trino 用于测试

Apache Spark

如果你想通过 Apache Spark 连接到 Polaris,首先需要克隆 Spark。与前置条件中一样,请先确保已安装 git。

然后,克隆 Spark 并检出一个带版本号的分支。本指南使用 Spark 3.5。

git clone --branch branch-3.5 https://github.com/apache/spark.git ~/spark

Trino

如果你想使用 Trino 连接到 Polaris,建议通过 Docker 搭建一个 Trino 测试实例。与前置要求中一样,请先确保已安装 Docker。

docker run --name trino -d -p 8080:8080 trinodb/trino

下一步

恭喜,你现在已经成功运行了 Polaris 实例!有关如何使用 Polaris 的更多信息,请查看创建目录和使用 Polaris页面。

评论

登录后参与评论

正在加载评论…