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
+38-27Lines changed: 38 additions & 27 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,15 +39,30 @@ 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 run` - To run the Polaris server locally; the server is reachable at
65
+
localhost:8181. This is also suitable for running regression tests, or for connecting with Spark.
51
66
-`./regtests/run_spark_sql.sh` - To connect from Spark SQL. Here are some example commands to run in the Spark SQL shell:
52
67
```sql
53
68
createdatabasedb1;
@@ -56,37 +71,33 @@ create table db1.table1 (id int, name string);
56
71
insert intodb1.table1values (1, 'a');
57
72
select*fromdb1.table1;
58
73
```
74
+
-`env POLARIS_HOST=localhost ./regtests/run.sh` - To run regression tests locally, see more options [here](./regtests/README.md).
75
+
### More build and run options
59
76
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.
77
+
#### Running in Docker
63
78
64
-
### 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
79
+
-`./gradlew clean :polaris-quarkus-server:assemble -Dquarkus.container-image.build=true` - To
80
+
build the image locally.
81
+
-`docker run -p 8181:8181 -p 8182:8182 apache/polaris:latest` - To run the image.
82
+
83
+
The Polaris codebase contains some docker compose examples to quickly get started with Polaris,
84
+
using different configurations. Check the `./getting-started` directory for more information.
85
+
86
+
#### Running in Kubernetes
87
+
88
+
-`./run.sh` - To run Polaris as a mini-deployment locally. This will create a Kind cluster,
89
+
then deploy one pod and one service. The service is available on ports `8181` and `8182`.
0 commit comments