Try Starburst Enterprise with Docker #

You can install Starburst Enterprise platform (SEP) in a Docker container and run it on any Docker host. This is especially useful as a test or demo environment or to evaluate SEP.

This page presumes you have Docker installed and running, and presumes some familiarity with Docker commands. For Mac and Windows evaluations, make sure you have Docker Desktop installed and running.

With custom configuration of the containers for the SEP coordinator and worker nodes, you can run a set of Docker containers to implement a Linux-hosted SEP cluster on your local network or on a cloud provider. However, this is not recommended. Instead, Starburst offers a full Kubernetes deployment option, including Docker containers and Helm charts for SEP, Apache Ranger, and Hive Metastore Service.

Docker image features #

The default SEP image has the following characteristics:

  • There is no Trino CLI command installed in the Docker image itself. You can, of course, run the CLI on the host.
  • The jvm.config file is set to use 1G maximum.
  • The following catalogs are installed:
    • jmx
    • memory
    • system
    • tpcds
    • tpch

Initial run of SEP on Docker #

Starburst provides a Docker image on Docker Hub that contains a trial configuration of SEP. Use the following command to download and run this image:

docker run -d -p 8080:8080 --name sepdock starburstdata/starburst-enterprise:latest

If you know you need a particular release, substitute its number for latest. For example, starburstdata/starburst-enterprise:354-e. For release 350 and earlier, you must use the identifier starburstdata/presto:350-e.

The docker run options have the following meanings:

Option Meaning
–d Detach
–p Map ports as hostport:containerport
‑‑name  Provide a name for the image to use in subsequent Docker commands

To make sure the server starts in Docker, continually view the Docker logs until you see “======== SERVER STARTED ========”.

docker logs sepdock
docker logs sepdock
...

Use the docker ps command to verify that the your sepdock service is running. Run docker ps -a to locate a server that failed to start.

Verify the server #

To verify that your Docker-hosted SEP server is operating as expected, run the Web UI as described in Verify the server.

Run queries #

To run queries against your server, use the Trino CLI as described in CLI.

Add custom configuration #

The Starburst-provided Docker image gives you a certain set of configuration files. But the whole point of running Starburst Enterprise is to query your own data sources. How do you provide your own configuration files to the Docker-hosted server?

Starburst does not recommend going into the Docker image to change configuration files there. Those changes would be lost the next time Starburst updated the public Docker image to a new version, which your next docker run command would automatically download and use.

Instead, you can map the etc directory used by the SEP instance running in Docker to a local directory. Once configured, the Docker-hosted SEP uses the local etc directory as its primary source of configuration files, and ignores the default settings in the Docker image.

To do this requires one extra docker run option. If your Docker-hosted SEP is running now, first stop and remove it:

docker stop sepdock
docker rm sepdock

Populate the local etc directory #

Create a local directory to contain your custom SEP configuration files. For example:

mkdir -p /home (or /Users)/<username>/sepdock

Substitute your ** in this command.

The simplest way to test your local etc directory is to use the set of configuration files provided as examples for the O’Reilly book Trino: The Definitive Guide.

Download these samples from their GitHub location either as a zip file or a git clone.

Unzip or clone the files into a local directory, such as /home (or /Users)/<username>/bookfiles. From there, copy the entire etc directory from the single-installation sample to your /home (or /Users)/<username>/sepdock directory. For example:

cd /home/<username>/bookfiles/single-installation
rsync -av etc /home/<username>/sepdock/

or

cd /Users/<username>/bookfiles/single-installation
rsync -av etc /Users/<username>/sepdock/

Edit local configuration files #

Navigate to your local etc directory. For example:

cd /home (or /Users)/<username>/sepdock/etc

Inspect the configuration files provided there for suitability with Docker. For example, the jvm.config file sets -Xmx16G, which might be too large for Docker running on Docker Desktop on Mac or Windows. Set that to a lower value such as -Xmx2G.

Restart to use the local etc directory #

The docker run command has another useful option:

Option Meaning
‑‑volume Specify a directory in the container to mount to a host directory

The syntax for the ‑‑volume option is:

localPath:containerPath:options

Specify localPath first, followed by containerPath, separated by a colon. No options are needed. Options are described in Docker documentation.

If your Docker-hosted server is running, stop and remove it:

docker stop sepdock
docker rm sepdock

Make sure you’re still in the /home (or /Users)/<username>/sepdock/etc directory. Then rerun the Docker image, this time including a ‑‑volume option that maps the current directory to the etc directory inside the Docker image, /usr/lib/presto/etc.

cd /home (or /Users/username/sepdock/etc
docker run -d -p 8080:8080 --volume $PWD:/usr/lib/presto/etc --name sepdock starburstdata/starburst-enterprise:latest

Continually view the Docker logs as before, waiting to see “======== SERVER STARTED ========”:

docker logs sepdock
...
docker logs sepdock
...

Verify that the server is running by using the Web UI as described in Verify the server.

To run queries, connect the Trino CLI to the Docker-hosted SEP instance. Run the show catalogs;, show schemas;, and show tables; commands to confirm the assets of the server.

Configure custom data sources #

The local etc directory feature described in the previous section lets you work locally to make changes to your Docker environment.

Continue adding new catalogs and configuring features that customize connections to the data sources you need SEP to see.

Next steps #

You need a cluster of servers to use SEP in production or even for better testing. Do not attempt this with the Docker container only. Instead use Kubernetes and the Starburst Kubernetes deployment support, including Docker containers and Helm charts for SEP, Apache Ranger, Hive Metastore Service, and our cache service.