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:
- Materialized Views
- Caching Service
- Atlas Integration
- Data Catalog - AWS Glue and Hive Metastore
Prerequisites
- A valid Starburst Enterprise license.
- Python 3.8.
- Java SE 11
- Verify the Trino version in the Starburst Enterprise release that you plan to use. The corresponding connector release is located here.
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
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.