Table of Contents | ||||
---|---|---|---|---|
|
...
Pre-requisites
1. Ensure you have the syndeia-cloud-3.
45
_janusgraph_setup.zip
(or latest service pack) downloaded to your home directory (or home directory's Downloads folder) from the download/license instructions sent out by our team.
Note: the .ZIP will pre-create a separate folder for its contents when extracted so there is no need to pre-create a separate folder for it.
2. Ensure you satisfy Janusgraph's pre-requisites, ie: have (Open|Oracle)JDK/JRE + Apache Cassandra (& optionally Elasticsearch) installed. Re. CPU, memory, HD space, etc. this will depend on how much data you expect to store, query, and graph.
3. If using a firewall, and JG will be on a separate server from SC, ensure the following port is accessible (consult your local network admin if required): TCP port 8182 (this is the port to listen to for client connections).
Note: If required by your IT department, perform any other standard configuration, server hardening (ie: enabling & configuring local firewall, etc.)
4. Ensure you have Apache Commons Daemon installed from https://archive.apache.org/dist/commons/daemon/binaries/windows/commons-daemon-1.2.3-bin-windows.zip.
Note, if you followed the Note from step 11 from Download, Install, & Run Apache Cassandra, you should already have this installed.
To avoid any issues on Windows, it is recommended you do NOT extract it to a path that contains any spaces in any of the directory names.
...
Downloading & Extracting JanusGraph
...
2. Download Janusgraph 0.31 5.3 from https://github.com/JanusGraph/janusgraph/releases/tag/v0.5.3.1, ie: wget https://github.com/JanusGraph/janusgraph/releases/download/v0.5.3.1/janusgraph-0.5.3.1-hadoop2full.zip;
Note, releases currently seem to be all suffixed with “...-hadoop2...
” despite being applicable for all databases, even cassandra, so download the one suffixed with “...-hadoop2.zip
”
3. Download Syndeia Cloud's JanusGraph setup package from the Downloads page.
4. Unzip the JanusGraph package into /opt
, ie: JG_build_ver=0.5.3.1-hadoop2full; unzip janusgraph-
${JG_build_ver}
.zip -d /opt/
...
5. Unzip Syndeia Cloud's JanusGraph setup packages into /opt/icx
, ie: unzip syndeia-cloud-3.4.SP1_2021-10-14_janusgraph_setup.5.zip
-d /opt/icx/
Tip | ||||
---|---|---|---|---|
| ||||
When completed, confirm all of the following are true via the Cygwin Terminal before proceeding: (The tools used and the network locations used are site-dependent.)
|
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
cd /opt/icx/syndeia-cloud-3.45_janusgraph_setup/bin ./syndeia-cloud-3.45_janusgraph_setup_windows.bash |
...
- Create/update janusgraph-current
symlink to specified version, default = 0.5.3.1
- Create a new syndeia_admin
superuser in Cassandra with a password you specify
- Create a new syndeia_cloud_graph
and syndeia_cloud_graph_config
keyspaces
- GRANT ALL PERMISSIONS ON KEYSPACE syndeia_cloud_graph TO syndeia_admin
- GRANT ALL PERMISSIONS ON KEYSPACE syndeia_cloud_graph_config TO syndeia_admin
- Install & run a Groovy JanusGraph setup script to set storage params for your graph and build indexes
- Create a renamed copy of the file
as /opt/janusgraph
onf/janusgraph-cql-configurationgraph.properties-<
release_ver>/c
janusgraph-cql-configurationgraph-syndeia.properties
with:
graph.graphname=syndeia_cloud_graph_config
Add storage.username=syndeia_admin
Add storage.password=
<password_specified>storage.hostname=<
your_Cassandra_host>
- If you installed Elasticsearch on the same machine, add index.search.backend=elasticsearch
and index.search.hostname=localhost
to use Elasticsearch for search indexing
- Create a renamed copy of the file /opt/janusgraph
-<
release_ver>/
conf/gremlin-server/gremlin-server-configuration.yaml
as gremlin-server-configuration-syndeia.yaml
and set ConfigurationManagementGraph
to point to janusgraph-cql-configurationgraph-syndeia.properties
.
- Install service file for JanusGraph service
- Start JanusGraph service
Note: use *NIX style paths, ie: /
vs \
& from the C:\cygwin64
= / (FS root). You will also be prompted for your cassandra
account password (default = cassandra
), to set your syndeia_admin
password and the FQDN of your Cassandra host.
Avoid all of these special characters: \?*[]+#&.{}$
when choosing your syndeia_admin
password.
Tip | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||
When completed, confirm all of the following are true before proceeding or when trying to determine if the JanusGraph service is properly configured and operating. (The tools used and the network locations used are site-dependent.)
|
...
9. To view the logs for JanusGraph, use less /opt/janusgraph-0.5.3.1-hadoop2full/log/gremlin-server.log
. To follow the log files, you can use tail -f /opt/janusgraph-0.5.3.1-hadoop2full/log/gremlin-server.log
in the Cygwin terminal. You should see output similar to the following (abridged) text:
Note, for your convenience you may wish to create a symlink to /opt/janusgraph-0.5.3
.1-
hadoop2full/log
/
from /var/log
, ie: ln -nfs
/opt/janusgraph-0.5.3.1-hadoop2full/log
/ /var/log/janusgraph
...
14. Follow "Things to Consider in a Multi-Node JanusGraph Cluster" https://docs.janusgraph.org/v0.35/basics/multi-node/
...
Adding new nodes to an existing single-node
...
18. RDP to the IP (or the FQDN of the new node if DNS has already propagated).
19. Verify the Cassandra “datacenter” name (default = dc1
) from the CLI by running nodetool status
and then from Cassandra CQLSH increment the Replication Factor (RF) for your JanusGraph keyspace(s):
Code Block | ||
---|---|---|
| ||
ALTER KEYSPACE syndeia_cloud_graph WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', '<datacenter_name>' : <total_number_of_nodes> }; -- where <datacenter_name> = the name of the datacenter as shown via nodetool status, and <total_number_of_nodes> = total # of nodes (in the cluster) ALTER KEYSPACE syndeia_cloud_graph_config WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', '<datacenter_name>' : <total_number_of_nodes> }; -- where <datacenter_name> = the name of the datacenter as shown via nodetool status, and <total_number_of_nodes> = total # of nodes (in the cluster) |
20. Follow "Things to Consider in a Multi-Node JanusGraph Cluster" https://docs.janusgraph.org/v0.35/basics/multi-node/
21. Repeat steps 15 ~ 20 for each additional cluster node.
...
Code Block | ||||
---|---|---|---|---|
| ||||
$ ./gremlin.bat \,,,/ (o o) -----oOOo-(3)-oOOo----- SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/opt/janusgraph-0.5.3.1-hadoop2full/lib/slf4j-log4j12-1.7.12.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/opt/janusgraph-0.5.3.1-hadoop2full/lib/logback-classic-1.1.2.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] plugin activated: janusgraph.imports plugin activated: tinkerpop.server plugin activated: tinkerpop.utilities 20:19:16 WARN org.apache.hadoop.util.NativeCodeLoader - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable plugin activated: tinkerpop.hadoop plugin activated: tinkerpop.spark plugin activated: tinkerpop.tinkergraph gremlin> |
...
Code Block | ||||
---|---|---|---|---|
| ||||
:remote connect tinkerpop.server conf/remote.yaml session :remote console graph = ConfiguredGraphFactory.open('syndeia_cloud_graph'); // should return: ==>standardjanusgraph[cql:[cassandra.mydomain.com]] g = graph.traversal(); g.V(); g.E(); |
The last 2 commands above should not return any results since the graph (syndeia_cloud_graph
) is empty - no vertices or edges.
23.45. Type :quit
Page break macro |
---|
...