Install Presto
The install presto command scaffolds a Presto deployment using the Presto Helm chart. It generates scripts and a values.yaml in a local presto/ directory. Once installed, use easy-db-lab presto start and easy-db-lab presto stop to manage it.
Presto is stateless — it does not use persistent volumes. Queries run in-memory on app (type=app) nodes.
Prerequisites
- Cluster is up (
easy-db-lab up) - App nodes are provisioned (at least one
ServerType.Stressnode) kubectlandhelmare available in your PATH (or run via the easy-db-lab container)- Environment is sourced:
source env.sh
Quick Start
easy-db-lab kit install presto
easy-db-lab presto start
Flags
| Flag | Default | Description |
|---|---|---|
--workers | app node count | Number of Presto worker pods |
What Gets Generated
presto/
├── README.md # Usage instructions for this cluster
├── values.yaml # Helm values for the Presto chart
├── catalogs/
│ ├── cassandra.properties # Cassandra connector config
│ └── clickhouse.properties # ClickHouse JDBC connector config
└── bin/
├── start.sh # Deploy sequence
├── stop.sh # Teardown sequence
└── update-catalogs.sh # Re-renders Presto catalog config from running kits
Managing Presto
After installation, use the CLI to start and stop:
# Deploy Presto
easy-db-lab presto start
# Tear down Presto
easy-db-lab presto stop
start
helm upgrade --install presto prestodb/presto -f values.yaml
# update-catalogs.sh runs automatically after helm install
kubectl wait --for=condition=Ready pods -l app=presto,component=coordinator --timeout=180s
No platform create-pvs step — Presto is stateless.
stop
helm uninstall presto
Automatic Catalog Management
Presto has built-in support for two catalogs that wire up automatically:
- Cassandra — uses the Cassandra connector, pointing at the cluster's Cassandra nodes
- ClickHouse — uses the ClickHouse JDBC connector, pointing at the cluster's ClickHouse nodes
When either of those kits starts or stops, Presto detects the change via a post-workload-start
/ post-workload-stop hook and re-renders its catalog configuration automatically. No restart
of Presto is needed.
# Start Cassandra — Presto wires up the cassandra catalog automatically
easy-db-lab cassandra start
# Start ClickHouse — Presto wires up the clickhouse catalog automatically
easy-db-lab kit install clickhouse
easy-db-lab clickhouse start
You do not need to restart Presto or manually update any config when adding or removing either kit.
Node Placement
Presto workers are scheduled on type=app nodes using nodeSelector: type: app. The coordinator runs on the control plane or app nodes depending on cluster size.
Connecting
After easy-db-lab presto start completes, the Presto coordinator is accessible within the cluster. Use kubectl port-forward or the SOCKS5 proxy to connect from your workstation:
kubectl port-forward svc/presto 8080:8080
Then connect with any Presto-compatible client at localhost:8080.
Adding Presto Catalogs for Custom Kits
If you install a custom kit via --from and want Presto to connect to it, drop a
presto-catalog.properties file in the kit's installed directory:
my-kit/
├── bin/
│ ├── start.sh
│ └── stop.sh
└── presto-catalog.properties # Presto picks this up automatically
The file follows the standard Presto connector properties format:
connector.name=jdbc
connection-url=jdbc:postgresql://localhost:5432/mydb
connection-user=presto
connection-password=
update-catalogs.sh scans all sibling kit directories for this file. When found, the catalog
is added to Presto's configuration under a name matching the kit directory name. No restart of
Presto is required — the script runs helm upgrade with the merged catalog values.