Deploying a standalone Ballista cluster using cargo install#
Another simple way to start a local cluster for testing purposes is to use cargo to install the scheduler and executor crates.
cargo install --locked ballista-scheduler
cargo install --locked ballista-executor
If clients cannot reach the executors, also install the result service, which serves them query results instead (see Fetching Query Results):
cargo install --locked ballista-result-service
With these crates installed, it is now possible to start a scheduler process.
RUST_LOG=info ballista-scheduler
The scheduler will bind to port 50050 by default.
Next, start an executor processes in a new terminal session.
RUST_LOG=info ballista-executor
The executor will bind to port 50051 by default. Additional executors can be started by manually specifying a bind port. For example:
RUST_LOG=info ballista-executor --bind-port 50054 --bind-grpc-port 50055 --bind-health-port 50056
Each executor binds three ports — Arrow Flight (--bind-port, default 50051),
gRPC (--bind-grpc-port, default 50052), and HTTP health
(--bind-health-port, default 50053) — so every port must be moved, not just
the first.