AnzoGraph Requirements
This topic lists the minimum requirements and recommendations to follow for setting up static AnzoGraph host servers and cluster environments.
Hardware Requirements
The following guidelines apply to individual AnzoGraph servers. Your Cambridge Semantics Customer Success manager can help you identify an overall AnzoGraph deployment configuration that is appropriate for your solution and use cases.
Component | Minimum | Recommended | Guidelines |
---|---|---|---|
RAM | 16 GB (for small-scale testing only) | 200+ GB | AnzoGraph needs enough RAM to store data, intermediate query results, and run the server processes. Cambridge Semantics recommends that you allocate 3 to 4 times as much RAM as the planned data size.
Do not overcommit RAM on a VM or on the hypervisor/container host. For more information about determining the server and cluster size that is ideal for hosting AnzoGraph, see Sizing Guidelines for In-Memory Storage. |
Disk Space & Type | 20 GB HDD | 200+ GB SSD | AnzoGraph requires 10 GB for internal requirements. The amount of additional disk space required for any load file staging, data persistence, or logs depends on the size of the data to be loaded. For persistence, Cambridge Semantics recommends that you have twice as much disk space on the local AnzoGraph file system as RAM on the server. |
vCPU | 2 | 32 | Once you provision sufficient RAM and a high-performing I/O subsystem, performance depends on CPU capabilities. A greater number of cores can make a dramatic difference in the performance of file loads and concurrent queries. Intel processors are preferred, but AnzoGraph is supported on newer Epyc AMD processors. AnzoGraph does not run on older AMD processors. |
Networking | 10gbE | 20+gbE | Not applicable for single server installations.
Since AnzoGraph is high performance computing (HPC) Massively Parallel Processing (MPP) OLAP engine, inter-cluster communications bandwidth dramatically affects performance. AnzoGraph clusters require optimal network bandwidth. In a switched network, make sure that all NICs link to the same Top Of Rack or Full-Crossbar Modular switch. If possible, enable SR-IOV and other HW acceleration methods and dedicated layer 2 networking that guarantees bandwidth. |
Shared File System | N/A | N/A | The Anzo file store (shared file system) must be accessible from each AnzoGraph server in the cluster. For more information about the shared file system, see Deploying the Shared File System. |
Clusters and Virtual Environments
AnzoGraph requires that all elements of the infrastructure provide the same quality of service (QoS). Do not run AnzoGraph on the same server as any other software, including anti-virus software, except when in single-server mode and with an expectation of lowered performance. Providing the same QoS is especially important when using AnzoGraph in a clustered configuration. If any of the servers in the cluster perform additional processing, the cluster becomes unbalanced and may perform poorly. A single poor performing server degrades the other servers to the same performance level. All nodes require the same hardware specification and configuration. Also use static IP addresses or make sure that DHCP leases are persistent.
To ensure the maximum and most reliable QoS for CPU, memory, and network bandwidth, do not co-locate other virtual machines or containers (such as Docker containers) on the same hypervisor or container host. For hypervisor-managed VMs, configure the hypervisor to reserve the available memory for the AnzoGraph server. For clusters, make sure there is enough physical RAM to support all of the AnzoGraph servers, and reserve the memory via the hypervisor.
In addition, running memory compacting services such as Kernel Same-page Merging (KSM) impacts CPU QoS significantly and does not benefit AnzoGraph. Live migrations also impact the performance of VMs while they get migrated. While live migration can provide value for planned host maintenance, AnzoGraph performance may be impacted if live migrations occur frequently. For more information about Kernel Same-page Merging, see https://en.wikipedia.org/wiki/Kernel_same-page_merging.
Advanced configurations may benefit from CPU pinning on the hypervisor host and disabling CPU hyper-threading. For more information about CPU pinning, see https://en.wikipedia.org/wiki/Processor_affinity. For information about hyper-threading, see https://en.wikipedia.org/wiki/Hyper-threading.
Cambridge Semantics can provide benchmarks to establish relative cluster performance metrics and validate the environment.
Software Requirements
The table below lists the software requirements for AnzoGraph servers. Instructions for installing each of the required software components are included in the AnzoGraph installation instructions. See Deploying a Static AnzoGraph Cluster for more information.
Component | Requirement | Guidelines |
---|---|---|
Operating System | RHEL 7.9, CentOS 7.9 | AnzoGraph is not supported on RHEL/CentOS 8. |
GNU Compiler Collection | Installed on all host servers | Install the latest version of the GCC tools for your operating system. GCC installation instructions are included in Complete the Pre-Installation Configuration. |
OpenJDK 11 | Installed on all host servers | AnzoGraph uses a Java client interface to access Data Sources for data profiling, remote sources for data blending, and Elasticsearch for Unstructured Pipelines. Java Development Kit version 11 is required for using the Java client. OpenJDK installation instructions are included in Complete the Pre-Installation Configuration. |
Enterprise-Level Anzo Service User Account | Created | It is important to work with your IT organization to create an Anzo service user account at the enterprise level. The service user account needs to be associated with a central directory server (LDAP) so that it is available across Anzo environments and is managed in accordance with the permissions policies of your company. For more information, see Anzo Service Account Requirements. |
Optional Software
Program | Description |
---|---|
vim | Editor for creating or changing files. |
sudo | Enables users to run programs with alternate security privileges. |
net-tools | Networking utilities. |
psutil | Python system and process utilities for retrieving information on running processes and system usage. |
tuned | Linux system service to apply tuning. |
wget | Utility for downloading files over a network. |
Google SDK | For virtual servers on Google Cloud Engine (GCE). Command line tool to enable syncing of data from Google storage. You can download the latest version from Google: https://cloud.google.com/sdk/. |
Firewall Requirements
AnzoGraph servers communicate via TCP/IP sockets. AnzoGraph communicates with Anzo via the secure, encrypted, gRPC-based Anzo protocol. Since AnzoGraph is SPARQL-compliant, you also have the option to use standard SPARQL HTTP/S protocol for communication.
For AnzoGraph clusters, all servers in the cluster must be in the same network. Make sure that all instances are in the same VLAN, security group, or placement group.
Open the TCP ports listed in the table below. This image shows a visual representation of the communication ports:
Port | Description | Access Needed... |
---|---|---|
5700 | The Anzo protocol (gRPC) port for secure communication between AnzoGraph and Anzo. |
|
5600 | AnzoGraph's SSL system management port. |
|
9100 | AnzoGraph's internal fabric communications port. |
|
7070 (optional) | Optional SPARQL service HTTP port to enable if you want to give external applications access to AnzoGraph over HTTP. |
|
8256 (optional) | Optional SPARQL service HTTPS port to enable if you want to give external applications SSL access to AnzoGraph and/or use the command line interface, azgi. |
|