Skip to content

Getting started

First of all, make sure to obtain a license for Polars on-premises by signing up here. You will receive a link to download our binary named polars-on-premises as well as a JSON-formatted license for running Polars on-premises.

Reading the license

The license can be read by running the following command:

$ ./polars-on-premises service --print-eula /path/to/license.json

Running the binary

The main entrypoint is as follows:

$ ./polars-on-premises service --config-path /etc/polars-cloud/config.toml

However, the service requires quite some configuration to get started. Below you can find an example scheduler and worker config, and you can find the full configuration reference here.

Configuration

The complete configuration reference can be found here.

Example scheduler config

Here is a cleaned-up example you can use after the reference tables. It keeps the scheduler single-purpose (no worker role) and turns on observability.

cluster_id = "polars-cluster"
instance_id = "scheduler"
license = "/etc/polars/license.json"
memory_limit = 1073741824 # 1 GiB

[scheduler]
enabled = true
allow_local_sinks = false
anonymous_result_location.s3.url = "s3://bucket/path/to/key"
n_workers = 4

[observatory]
enabled = true
max_metrics_bytes_total = 0

[monitoring]
enabled = true

[static_leader]
leader_instance_id = "scheduler"
observatory_service.public_addr = "192.168.1.1"
scheduler_service.public_addr = "192.168.1.1"

Example worker config

And the matching worker config. This example gives the worker a local shuffle path and enables observability.

cluster_id = "polars-cluster"
instance_id = "worker_0"
license = "/etc/polars/license.json"
memory_limit = 10737418240 # 10 GiB

[worker]
enabled = true
shuffle_location.local.path = "/opt/shuffle-data-path"

[observatory]
enabled = true
max_metrics_bytes_total = 0

[monitoring]
enabled = true

[static_leader]
leader_instance_id = "scheduler"
observatory_service.public_addr = "192.168.1.1"
scheduler_service.public_addr = "192.168.1.1"