1. Installing xGT

Running xGT on-premises can eliminate the need to move sensitive data off-premises (e.g., into a cloud repository) and, depending on the server configuration, can speed up the ingestion of large volumes of data.

1.1. Supported Environments

The Rocketgraph xGT server runs on an x86-64 platform running enterprise Linux distributions. The reference implementation is RHEL 9.3 distributed via an RPM. For information about running xGT on other Linux distributions contact gettingstarted@rocketgraph.com.

Required RHEL 9.3 Packages

Package Name

Minimum Version

apr

1.6.0

apr-utils

1.6.0

bzip2-libs

1.0.6

hwloc-libs

1.11.8

krb5-libs

1.15.1

numactl

2.0.12

openssl-libs

1.0.2k

zlib

1.2.7

Note that the required packages will be installed as dependencies when installing the xGT distribution. However, for those sites without direct internet access, pre-installing these packages is required.

1.1.1. Linux Server Configuration

Running with the Transparent Huge Pages (THP) enabled will allow xGT to manage large data buffers much more efficiently than if THP is disabled. If possible, we recommend that THP is enabled.

To determine if THP is enabled, run the following command:

$ cat /sys/kernel/mm/transparent_hugepage/enabled

which, if enabled, produces a result such as: [always] madvise never.

If THP is currently not enabled and the administrator wishes to enable it, the following command should be run (as root):

$ echo always > /sys/kernel/mm/transparent_hugepage/enabled

1.1.2. Python Environment

The xGT server (xgtd) is a C++ daemon and does not require Python to run. Python is only needed on the server host if you intend to run xGT client scripts directly there. Many deployments don’t — the server is locked down to just the daemon and clients run elsewhere (workstations, notebook hosts, etc.). See Installing the Client for client-side install on whatever host you choose.

The rest of this section applies only if you do want to run client scripts on the server itself.

xGT clients require Python 3.10 - 3.14. Rocky 9’s default python3 is Python 3.9, which is below that range, so running xGT scripts on the server requires installing a supported version of Python alongside the system Python. dnf and other system tools continue to use the unchanged /usr/bin/python3 (3.9).

1.1.2.1. Installing a Supported Python

The Rocky 9 AppStream repository provides several supported Python versions. The examples below use Python 3.12; substitute another supported version (3.10, 3.11, 3.13, or 3.14) if you prefer. The system python3 (3.9) is left untouched and continues to be used by dnf and other system tooling.

$ sudo dnf install python3.12 python3.12-pip

If you plan to use Kerberos authentication (the optional gssapi Python package), also install the build dependencies:

$ sudo dnf install python3.12-devel krb5-devel gcc

These are required because gssapi is built from source against the system Kerberos libraries when pip installed.

1.1.2.2. Setting Up a Virtual Environment

We recommend installing xGT into a Python virtual environment so its dependencies are isolated from the system Python and from any other applications:

$ python3.12 -m venv ~/xgt-env
$ source ~/xgt-env/bin/activate

Inside the activated environment, python and pip refer to the venv’s Python 3.12; the system python3 (3.9) is unaffected.

1.1.2.3. Required Python Packages

These are installed automatically when xGT is installed via pip:

Required Python Packages

Pip Package Name

Minimum Version

grpcio

1.73.1

isodate

0.6.1

numpy

1.22.0

protobuf

6.30.0

pyarrow

20.0.0

1.1.2.4. Optional Python Packages

These add capability beyond the core xGT client. Install separately when needed.

Optional Python Packages

Pip Package Name

Minimum Version

Description

jupyter

Allows using Jupyter Notebooks as an interactive environment to drive xGT.

pandas

0.24.2

Allows importing / exporting data to / from pandas frames.

gssapi

1.6.0

Allows Kerberos connections.

1.1.2.5. Installing xGT

Inside the activated virtual environment, install the xGT client and its required packages:

$ pip install xgt

To install xGT together with the optional packages:

$ pip install xgt[extra]

Pip will install the most recent versions compatible with the Python version in the venv.

For more details on installing the xGT client (whether on the server or elsewhere), see Installing the Client.

If installing on a site without direct internet access, dependencies for the xGT Python client can be downloaded as wheel files, copied to the installation site and used when installing the Python package. It’s recommended that the machine used to download the wheel files have the same operating system, architecture, pip version and Python version to obtain compatible wheel files. To download the wheel files on a machine with internet access do:

$ pip download xgt

Copy all the .whl files to the installation site in a specific folder.

Then when installing the Python package do:

$ pip install --no-index --find-links /PATH-TO-WHEEL-DIRECTORY xgt-WHEEL-NAME.whl

The pip version may need to be updated as well and can be downloaded and installed similarly:

$ pip download pip
$ pip install PIP-WHEEL-NAME.whl

1.1.3. Assistance

To acquire a license for Rocketgraph xGT or for questions about configuring Rocketgraph xGT, contact gettingstarted@rocketgraph.com.

1.2. Licensing

The server component of xGT, called the xgtd process, is distributed as an encrypted executable licensed on a specific server. The server is required to have a valid license in order to run.

Detailed information about licensing is provided in License Management System.

The following steps are required to get xGT installed on your server with a node-locked license.

  • Step 1: Install the license tool and get host-specific information of the intended platform. Download the RPM provided as link by Rocketgraph (typically provided by email).

    Then install it:

    sudo dnf install xgt-license-tools-X.Y.Z-1.x86_64.rpm
    /opt/xgtd/bin/lmxendutil -hostid
    

    A sample output from such a run:

    /opt/xgtd/bin/lmxendutil -hostid
    LM-X End-user Utility v5.0
    Copyright (C) 2002-2021 X-Formation. All rights reserved.
    
    ETHERNET: ens3
    HostID: 000C2BC32G83
    
    ETHERNET: ens4
    HostID: 0A42F8D4C3F0
    
    HOSTNAME: wyvern
    HostID: wyvern
    
    USERNAME: jacob
    HostID: jacob
    
    IPADDRESS: 192.128.121.148
    HostID: 192.128.121.148
    
    IPADDRESS: 192.138.111.*
    HostID: 192.138.111.*
    
    IPADDRESS: 192.118.*.*
    HostID: 192.118.*.*
    

    It may also help to capture the following information:

    $ free -h
    $ lscpu
    

    Capture the entire output and send that to gettingstarted@rocketgraph.com.

  • Step 2: Install the license.

    Rocketgraph creates a license specific for the machine your xgtd server is running on. You will receive a license from us.

    When you receive the license, put it in /etc/xgtd/licenses/ on the xgtd server machine. It should be named xgtd.lic.

  • Step 3: Download and install the electronic distribution.

    Download the RPM provided as link by Rocketgraph (typically provided by email).

    sudo dnf install xgt-server-X.Y.Z-1.x86_64.rpm
    

    Of course, the name of your distribution may be different than the one shown here.

  • Step 4: Run the xgtd server.

    To start xgtd:

    $ systemctl start xgtd
    

    To check the status of xgtd:

    $ systemctl status xgtd
    

    Note that if the installation has been successful, you should see something like this:

    $ systemctl status xgtd
    ● xgtd.service - xgtd
       Loaded: loaded (/etc/systemd/system/xgtd.service; disabled; vendor preset: disabled)
       Active: active (running) since Fri 2020-11-06 19:05:40 UTC; 2s ago
     Main PID: 9060 (xgtdBinary)
       CGroup: /system.slice/xgtd.service
               ├─9060 /opt/xgtd/bin/xgtd -c /etc/xgtd/xgtd.conf -p 4367
               └─9061 /opt/xgtd/bin/xgtd -c /etc/xgtd/xgtd.conf -p 4367
    
    Nov 06 19:05:40 xgtd-server-host systemd[1]: Started xgtd.
    

    To stop xgtd:

    $ systemctl stop xgtd
    

    Note that it may be necessary to prepend sudo to these commands in your environment.

    If the systemctl start xgtd command has been performed followed by a systemctl status xgtd, and the report says that the xgtd process has failed, it may be helpful to look in /var/log/xgtd/ for logging and auditing output or use journalctl -u xgtd.

    For licensing error messages check LM-X Error Messages.

1.3. Site xGT Administration

The setup and configuration for Rocketgraph xGT can be done by someone with root or sudo privilege on the local server.

It is also possible to establish non-root xGT administrators by adding local Linux users to the xgtd group.

This command adds a user to the xgtd group:

$ sudo usermod -aG xgtd SomeLinuxUser

Note that this must be done after the RPM installation process is complete as described in section Installing xGT .

Any user that is in the xgtd group is able to update the xGT site configuration files. Also, such a user is able to start, stop, restart, and get status of the xgtd service:

$ sudo systemctl start xgtd
$ sudo systemctl status xgtd
$ sudo systemctl restart xgtd
$ sudo systemctl stop xgtd