Install Aerospike Graph Service
Overviewโ
This page describes how to install Aerospike Graph Service (AGS) in a Docker container for use with an Aerospike database.
Prerequisitesโ
An Aerospike feature key file which has the
graph-service
key enabled. Click here to sign up for an AGS trial, or contact your Aerospike account manager.A running Aerospike Database instance, version 6.2.0.7 or later. You can use an existing instance, or start one in a Docker container. See Install with Docker to set up an Aerospike Database with Docker.
Verify the IP address of your Aerospike database. If you are running Aerospike in a Docker container, get the IP address with the following command:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' AEROSPIKE-CONTAINER-ID
Replace
AEROSPIKE-CONTAINER-ID
with the Docker container ID of your Aerospike container.
Aerospike database environment requirementsโ
If access control is enabled on the Aerospike database, the user which runs the server process must have the following privileges:
truncate
,sys-admin role
,sindex-admin
,read-write
.AGS cannot run in an Aerospike namespace which has a default time-to-live (
default-ttl
) configured. This configuration option is not enabled by default, but if it is present in the Aerospike database configuration AGS quits with an error.
Run AGS with Dockerโ
Download the AGS Docker image. Docker is a containerization service.
Pull from Docker:
docker pull aerospike/aerospike-graph-service
OR
Pull from the Google Container Registry:
docker pull gcr.io/aerospike-prod/aerospike-graph-service
Run the AGS Docker container.
docker run -p8182:8182 -e [OPTIONS] aerospike/aerospike-graph-service
The options you pass to your Docker command specify how AGS will connect to your Aerospike database and what kind of indexes to create. For a complete list of available options, see Configuration Options.
You can either specify configuration options with a properties file (recommended) or with environment variables using Docker command-line arguments.
In the following example, the AGS Docker image runs with these configuration options:
aerospike.client.namespace: test
aerospike.client.host: aerospike-devel-cluster-host1:3000, aerospike-devel-cluster-host2:3000
aerospike.graph.index.vertex.properties: property1, property2
aerospike.graph.index.vertex.label.enabled: truedocker run -p8182:8182 -e aerospike.client.namespace="test" \
-e aerospike.client.host="aerospike-devel-cluster-host1:3000, aerospike-devel-cluster-host2:3000" \
-e aerospike.graph.index.vertex.properties=property1,property2 \
-e aerospike.graph.index.vertex.label.enabled=true \
aerospike/aerospike-graph-serviceJava optionsโ
Aerospike Graph is constrained by the amount of memory available to the Java Virtual Machine (JVM) in its Docker container, which is 80% of memory available to the Docker container by default. You can set the amount of memory available to the JVM by setting the
aerospike.graph-service.heap.max
andaerospike.graph-service.heap.min
configuration options.In the following example, the Docker container's JVM can use up to 32GB of memory:
docker run -p 8182:8182 \
-e aerospike.graph-service.heap.max="32768m" \
-e aerospike.client.host="172.17.0.1" \
aerospike/aerospike-graph-serviceTo use other Java options, set the
JAVA_OPTIONS
Docker environment variable with the-e
command line argument. For example, to set thejavax.net.ssl.trustStore
option:-e JAVA_OPTIONS=" -Djavax.net.ssl.trustStore=/data/certs/Platinum/myTrustStore"
noteThe leading space before the Java option is required.
Properties file optionsโ
You can run the AGS Docker image with a properties file named
aerospike-graph.properties
. Create it and store it locally. Reference it when you start the AGS Docker image.The following properties file uses options equivalent to those in the Docker command:
aerospike.client.host=aerospike-devel-cluster-host1:3000, aerospike-devel-cluster-host2:3000
aerospike.client.namespace=test
aerospike.graph.index.vertex.label.enabled=true
aerospike.graph.index.vertex.properties=property1,property2To use a properties file when running the AGS Docker image, use the
-v
flag to create a volume bind. In the following example, the full path to the properties file is/home/graph-user/graph/conf/aerospike-graph.properties
.The filepath after the
:
,/opt/aerospike-graph/aerospike-graph.properties
, is the correponding properties file in the AGS Docker container.docker run -p 8182:8182 \
-v /home/graph-user/graph/conf/aerospike-graph.properties:/opt/aerospike-graph/aerospike-graph.properties \
aerospike/aerospike-graph-serviceExpected output
The AGS Docker container runs a Gremlin server instance, so you will see some Gremlin server initialization messages after the container starts. The messages look similar to the following:
Server config:
aerospike.client.host=172.17.0.1
aerospike.client.port=3000
aerospike.client.namespace=test
aerospike.graph.data.model=packed
[INFO] o.a.t.g.s.GremlinServer - 3.6.3
\,,,/
(o o)
-----oOOo-(3)-oOOo-----
[INFO] o.a.t.g.s.GremlinServer - Configuring Gremlin Server from /opt/aerospike-graph/conf/docker-default/aerospike-gremlin-server.yaml
[INFO] o.a.t.g.s.u.MetricManager - Configured Metrics ConsoleReporter configured with report interval=180000ms
...
...
...
[INFO] o.a.t.g.s.GremlinServer$1 - Channel started at port 8182.
If you've successfully completed these steps, you're ready to start using AGS. See Basic usage to get started on interacting with your graph data.