Skip to main content
Loading

Deploying in Starburst Enterprise Platform (SEP) on Bare-Metal

These instructions describe how to deploy the Aerospike Trino connector in Starburst Enterprise on bare-metal. Starburst Enterprise is an enterprise-ready distribution of open source Trino (formerly PrestoSQL).

The Aerospike connector does not support the following Starburst Enterprise features:

Prerequisites

Deploy Starburst and Aerospike

For the following examples. This example assumes the IP address of your bare-metal server is 192.0.2.0.

Connect to your server, then move to your home directory.

ssh -l [username] 192.0.2.0
cd /home/[username]

Run the uuidgen command to capture the node ID for node.properties.

uuidgen

Make an /etc/sep directory, then copy the Starburst license key file into it.

sudo mkdir -p /etc/sep
cd /etc/sep
sudo cp /home/ubuntu/*.license .

Download Starburst Enterprise LTS version. As of publication of this documentation, Release 370-e LTS is the latest version.

Upload it to your home directory on the server.

Move to your home directory, then uncompress the Starburst file.

cd /home/VVVV
tar xvfz starburst-enterprise-370-e.1.tar.gz

Create a directory for Starburst, copy the files into it, move to that directory, then create a symlink.

sudo mkdir -p /opt/starburst
sudo mv starburst-enterprise-370-e.1 /opt/starburst
cd /opt/starburst/starburst-enterprise-370-e.1
sudo ln -s /etc/sep etc

Go to the /opt/starburst/starburst-enterprise-370-e.1/plugin/ directory and make a directory for Aerospike.

cd /opt/starburst/starburst-enterprise-370-e.1/plugin/
sudo mkdir aerospike

Copy all the JAR files from the Aerospike Trino Connector download into the new /opt/starburst/plugin/aerospike directory.

Create a /var/trino/data directory and give it read/write/execute permissions for all users.

mkdir -p /var/trino/data
sudo chmod 777 /var/trino/data

Move into the /etc/sep directory and edit the node.properties file.

/etc/sep
sudo vi node.properties

Set the following configurations. For node.id use the UUID you captured previously with the uuidgen command.

node.environment=production
node.id=XXXXXXXXXXXX ## UUID captured previously
node.data-dir=/var/trino/data

Save and exit the file.

Edit jvm.config.

sudo vi jvm.config

Now configure Trino in Starburst Enterprise. Refer to Trino Configuration for more details.

Here's a sample configuration:

-server
-Xmx16G
-XX:-UseBiasedLocking
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+ExplicitGCInvokesConcurrent
-XX:+ExitOnOutOfMemoryError
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-XX:ReservedCodeCacheSize=512M
-XX:PerMethodRecompilationCutoff=10000
-XX:PerBytecodeRecompilationCutoff=10000
-Djdk.attach.allowAttachSelf=true
-Djdk.nio.maxCachedBufferSize=2000000

Save and exit the file.

Edit config.properties.

vi config.properties

Set the cluster configurations, using one of the two following options.

Option 1: Single-Node Deployment

coordinator=true
node-scheduler.include-coordinator=true
http-server.http.port=8080
query.max-memory=50GB
query.max-memory-per-node=1GB
discovery.uri=http://[coordinator node IP address]:8080

Option 2: Multi-Node Deployment

If you plan to use one or more worker nodes, one set of configurations applies to the coordinator node, and a second set applies to each worker node.

On the coordinator node:

coordinator=true
node-scheduler.include-coordinator=true
http-server.http.port=8080
query.max-memory=50GB
query.max-memory-per-node=1GB
discovery.uri=http://[coordinator node IP address]:8080

On each worker node:

coordinator=false
query.max-memory=50GB
query.max-memory-per-node=1GB
discovery.uri=http://[coordinator node IP address]:8080

Save and exit the config.properties file.

Edit log.properties.

sudo vi log.properties

Set the following configuration.

io.trino=INFO

Save and exit the file.

Create a catalog directory and move into it.

sudo mkdir catalog
cd catalog

Create a file named aerospike.properties.

sudo vi aerospike.properties

Set your desired configurations. See Connector Configuration Properties for available settings.

Example configuration file:

connector.name=aerospike
aerospike.hostlist=xx.xx.xx.xx:3000,yy.yy.yy.yy:3000,zz.zz.zz.zz:3000
## aerospike node list
aerospike.split-number=8
aerospike.strict-schemas=false
aerospike.record-key-hidden=false
aerospike.enable-statistics=true
aerospike.insert-require-key=true
aerospike.table-desc-dir=/etc/trino/aerospike
aerospike.clientpolicy.tls.enabled=false

Save and exit the file.

By default, the Trino connector uses heuristics to rapidly infer schemas without the need for you to specify them. However, you can choose to specify the schema by creating a table definition. See Specifying Trino Schemas for more information.

Go to /usr/bin then run the Starburst launcher.

cd /usr/bin
Python3.8 /opt/starburst/starburst-enterprise-370-e.1/bin/launcher.py run

Run Starburst

Watch the Server Started messages and troubleshoot any errors that may arise.

Although we have tested connecting to Starburst Enterprise with DBeaver, we encourage you to try out other Starburst clients based on your needs. See the supported SQL statements and Examples for how to develop SQL queries to generate insights from Aerospike data.