You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+63-27Lines changed: 63 additions & 27 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,15 +39,35 @@ for contribution guidelines.
39
39
## Building and Running
40
40
41
41
Apache Polaris is organized into the following modules:
42
+
42
43
-`polaris-core` - The main Polaris entity definitions and core business logic
43
-
-`polaris-server` - The Polaris REST API server
44
-
-`polaris-eclipselink` - The Eclipselink implementation of the MetaStoreManager interface
44
+
- API modules (implementing the Iceberg REST API and Polaris management API):
45
+
-`polaris-api-management-model` - The Polaris management model
46
+
-`polaris-api-management-service` - The Polaris management service
47
+
-`polaris-api-iceberg-service` - The Iceberg REST service
48
+
- Service modules:
49
+
-`polaris-service-common` - The main components of the Polaris server
50
+
- Quarkus runtime modules:
51
+
-`polaris-quarkus-service` - The Quarkus-specific components of the Polaris server
52
+
-`polaris-quarkus-defaults` - The Quarkus-specific configuration defaults
53
+
-`polaris-quarkus-server` - The Polaris server runtime
54
+
-`polaris-quarkus-admin-tool` - The Polaris admin & maintenance tool
55
+
- Persistence modules:
56
+
-`polaris-jpa-model` - The JPA entity definitions
57
+
-`polaris-eclipselink` - The Eclipselink implementation of the MetaStoreManager interface
45
58
46
59
Apache Polaris is built using Gradle with Java 21+ and Docker 27+.
60
+
47
61
-`./gradlew build` - To build and run tests. Make sure Docker is running, as the integration tests depend on it.
48
62
-`./gradlew assemble` - To skip tests.
49
63
-`./gradlew test` - To run unit tests and integration tests.
50
-
-`./gradlew runApp` - To run the Polaris server locally on localhost:8181.
64
+
-`./gradlew polarisServerRun` - To run the Polaris server locally, with profile `prod`; the server
65
+
is reachable at localhost:8181.
66
+
-`java -Dquarkus.profile=test -jar quarkus/server/build/quarkus-app/quarkus-run.jar` - To run the
67
+
Polaris server locally, with profile `test`. With this profile, Polaris uses the `test`
68
+
Authenticator and `test` TokenBroker; this configuration is suitable for running regressions
69
+
tests, or for connecting with Spark.
70
+
51
71
-`./regtests/run_spark_sql.sh` - To connect from Spark SQL. Here are some example commands to run in the Spark SQL shell:
52
72
```sql
53
73
createdatabasedb1;
@@ -57,36 +77,52 @@ insert into db1.table1 values (1, 'a');
57
77
select*fromdb1.table1;
58
78
```
59
79
60
-
Apache Polaris supports the following optional build options:
61
-
-`-PeclipseLink=true` – Enables the EclipseLink extension.
62
-
-`-PeclipseLinkDeps=[groupId]:[artifactId]:[version],...` – Specifies one or more additional dependencies for EclipseLink (e.g., JDBC drivers) separated by commas.
63
-
64
80
### More build and run options
65
-
Running in Docker
66
-
-`docker build -t localhost:5001/polaris:latest .` - To build the image.
-`docker build -t localhost:5001/polaris:latest --build-arg ECLIPSELINK=true --build-arg ECLIPSELINK_DEPS=[groupId]:[artifactId]:[version],... .` – Enables the EclipseLink extension with one or more additional dependencies for EclipseLink (e.g. JDBC drivers) separated by commas.
70
-
-`docker run -p 8181:8181 localhost:5001/polaris:latest` - To run the image in standalone mode.
71
-
72
-
Running in Kubernetes
73
-
-`./run.sh` - To run Polaris as a mini-deployment locally. This will create one pod that bind itself to ports `8181` and `8182`.
74
-
-Optional run options:
75
-
-`./run.sh -b "ECLIPSELINK=true"` - Enables the EclipseLink extension.
76
-
-`./run.sh -b "ECLIPSELINK=true;ECLIPSELINK_DEPS=[groupId]:[artifactId]:[version],..."` – Enables the EclipseLink extension with one or more additional dependencies for EclipseLink (e.g. JDBC drivers) separated by commas.
77
-
-`kubectl port-forward svc/polaris-service -n polaris 8181:8181 8182:8182` - To create secure connections between a local machine and a pod within the cluster for both service and metrics endpoints.
78
-
- Currently supported metrics endpoints:
79
-
-localhost:8182/metrics
80
-
-localhost:8182/healthcheck
81
+
82
+
#### Running in Docker
83
+
84
+
-`./gradlew clean :polaris-quarkus-server:assemble -Dquarkus.container-image.build=true` - To
85
+
build the image locally.
86
+
-`docker run -p 8181:8181 -p 8182:8182 apache/polaris:latest` - To run the image.
87
+
88
+
#### Running in Kubernetes
89
+
90
+
-`./run.sh` - To run Polaris as a mini-deployment locally. This will create a Kind cluster,
91
+
then deploy one pod and one service. The service is available on ports `8181` and `8182`.
0 commit comments