Setting Up
System Requirements
This section describes the platform requirements for machines running GridGain. GridGain system requirements scale depending on the size of the cluster.
JDK |
Oracle JDK 8, 11, 17 or 21 |
OS |
Linux (any flavor), Windows (10 and up). For Docker environment, we provide Linux docker containers. |
ISA |
x86-64, SPARC, PowerPC |
Network |
No restrictions (10G recommended) |
Running GridGain with Java 11 or later
To run GridGain with Java 11 or later:
-
Set the
JAVA_HOME
environment variable to point to the Java installation directory. -
Pass specific flags to JVM to make proprietary SDK APIs available. These APIs If you use the start-up script
ignite.sh
(orignite.bat
for Windows), you do not need to do anything because these flags are already set up in the script. Otherwise, provide the following parameters to the JVM of your application:--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED --add-exports=java.base/sun.nio.ch=ALL-UNNAMED --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED --add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED --illegal-access=permit
--add-opens=java.base/jdk.internal.misc=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED --add-opens=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED --add-opens=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.math=ALL-UNNAMED --add-opens=java.sql/java.sql=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.security.cert=ALL-UNNAMED --add-opens=java.base/sun.security.x509=ALL-UNNAMED --add-opens=java.base/sun.security.ssl=ALL-UNNAMED
Using Binary Distribution
-
Download the appropriate binary package from GridGain downloads.
-
Unzip the archive into a directory.
-
(Optional) Set the
IGNITE_HOME
environment variable to point to the installation folder and make sure there is no trailing/
in the path.
Using Maven
The easiest way to start developing with GridGain is to use Maven.
-
Add GridGain’s External Repository to the maven configuration file (see the configuration example below).
-
Set the
gridgain.version
property to the actual version you want to use. -
Add the
gridgain-core
orgridgain-ultimate
dependency if you want to use GridGain Enterprise or Ultimate Edition.
<properties>
<gridgain.version>8.9.14</gridgain.version>
</properties>
<repositories>
<repository>
<id>GridGain Repository</id>
<url>https://www.gridgainsystems.com/nexus/content/repositories/external</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.gridgain</groupId>
<artifactId>ignite-core</artifactId>
<version>${gridgain.version}</version>
</dependency>
<dependency>
<groupId>org.gridgain</groupId>
<artifactId>ignite-spring</artifactId>
<version>${gridgain.version}</version>
</dependency>
<dependency>
<groupId>org.gridgain</groupId>
<artifactId>ignite-indexing</artifactId>
<version>${gridgain.version}</version>
</dependency>
</dependencies>
<properties>
<gridgain.version>8.9.14</gridgain.version>
</properties>
<repositories>
<repository>
<id>GridGain Repository</id>
<url>https://www.gridgainsystems.com/nexus/content/repositories/external</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.gridgain</groupId>
<artifactId>ignite-core</artifactId>
<version>${gridgain.version}</version>
</dependency>
<dependency>
<groupId>org.gridgain</groupId>
<artifactId>ignite-spring</artifactId>
<version>${gridgain.version}</version>
</dependency>
<dependency>
<groupId>org.gridgain</groupId>
<artifactId>ignite-indexing</artifactId>
<version>${gridgain.version}</version>
</dependency>
<!-- GridGain Enterprise Edition features -->
<dependency>
<groupId>org.gridgain</groupId>
<artifactId>gridgain-core</artifactId>
<version>${gridgain.version}</version>
</dependency>
</dependencies>
<properties>
<gridgain.version>8.9.14</gridgain.version>
</properties>
<repositories>
<repository>
<id>GridGain Repository</id>
<url>https://www.gridgainsystems.com/nexus/content/repositories/external</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.gridgain</groupId>
<artifactId>ignite-core</artifactId>
<version>${gridgain.version}</version>
</dependency>
<dependency>
<groupId>org.gridgain</groupId>
<artifactId>ignite-spring</artifactId>
<version>${gridgain.version}</version>
</dependency>
<dependency>
<groupId>org.gridgain</groupId>
<artifactId>ignite-indexing</artifactId>
<version>${gridgain.version}</version>
</dependency>
<!-- GridGain Ultimate Edition features. -->
<dependency>
<groupId>org.gridgain</groupId>
<artifactId>gridgain-ultimate</artifactId>
<version>${gridgain.version}</version>
</dependency>
</dependencies>
Using Docker
If you want to run GridGain in Docker, refer to the Docker Deployment section.
Configuring Work Directory
GridGain uses a work directory to store your application data (if you use the Native Persistence feature), index files, metadata information, logs, and other files. The default work directory is as follows:
-
$IGNITE_HOME/work
, if theIGNITE_HOME
system property is defined. This is the case when you start GridGain using thebin/ignite.sh
script from the distribution package. -
./ignite/work
, this path is relative to the directory where you launch your application.
There are several ways you can change the default work directory:
-
As an environmental variable:
export IGNITE_WORK_DIR=/path/to/work/directory
-
In the node configuration:
<bean class="org.apache.ignite.configuration.IgniteConfiguration"> <property name="workDirectory" value="/path/to/work/directory"/> <!-- other properties --> </bean>
IgniteConfiguration igniteCfg = new IgniteConfiguration(); //setting the work directory igniteCfg.setWorkDirectory("/path/to/work/directory");
var cfg = new IgniteConfiguration { WorkDirectory = "/path/to/work/directory" };
IgniteConfiguration cfg; cfg.igniteHome = "/path/to/work/directory";
Enabling Modules
GridGain ships with a number of modules that provide various functionality. You can enable modules one by one, as required.
All modules are included in the binary distribution, but by default they are disabled (except for ignite-core
, ignite-spring
, ignite-indexing
, and ignite-opencensus
).
Modules can be found in the lib/optional
directory of the distribution package (each module is located in a separate sub-directory).
Depending on how you use GridGain, you can enable modules using one of the following methods:
-
If you use the binary distribution, move the
lib/optional/{module-dir}
to thelib
directory before starting the node. -
Add libraries from
lib/optional/{module-dir}
to the classpath of your application. -
Add a module as a Maven dependency to your project.
<dependency> <groupId>org.gridgain</groupId> <artifactId>ignite-indexing</artifactId> <version>${gridgain.version}</version> </dependency>
The following modules are available:
Module’s artifactId | Description |
---|---|
gridgain-bulkload |
Support for SQL |
gridgain-sql |
Support for JSON functions. See JSON Functions for details. |
ignite-aop |
GridGain AOP module provides capability to turn any Java method to a distributed closure by adding @Gridify annotation to it. |
ignite-aws |
Cluster discovery on AWS S3. Refer to Amazon S3 IP Finder for details. |
ignite-cassandra-serializers |
The GridGain Cassandra Serializers module provides additional serializers to store objects as BLOBs in Cassandra. The module could be used as in conjunction with the GridGain Cassandra Store module. |
ignite-cassandra-store |
GridGain Cassandra Store provides a CacheStore implementation backed by the Cassandra database. |
ignite-cloud |
GridGain Cloud provides Apache jclouds implementations of the IP finder for TCP discovery. |
ignite-direct-io |
GridGain Direct IO is a plugin that provides a page store with the ability to write and read cache partitions in O_DIRECT mode. |
ignite-gce |
GridGain GCE provides Google Cloud Storage based implementations of IP finder for TCP discovery. |
ignite-hibernate-core |
|
ignite-hibernate_4.2 |
GridGain Hibernate provides Hibernate L2 cache implementation based on GridGain In-Memory Data Grid. |
ignite-hibernate_5.1 |
GridGain Hibernate provides Hibernate L2 cache implementation based on GridGain In-Memory Data Grid. |
ignite-indexing |
|
ignite-jcl |
Support for the Jakarta Common Logging (JCL) framework. |
ignite-jta |
Integration of GridGain transactions with JTA. |
ignite-kafka |
GridGain Kafka Streamer provides capability to stream data from Kafka to GridGain caches. |
ignite-kubernetes |
GridGain Kubernetes module provides a TCP Discovery IP Finder that uses a dedicated Kubernetes service for IP addresses lookup of GridGain pods containerized by Kubernetes. |
ignite-log4j2 |
Support for Log4j2 |
ignite-ml |
GridGain ML Grid provides machine learning features and relevant data structures and methods of linear algebra, including on heap and off heap, dense and sparse, local and distributed implementations. Refer to the Machine Learning documentation for details. |
ignite-osgi |
This module provides bridging components to make GridGain run seamlessly inside an OSGi container such as Apache Karaf. |
ignite-osgi-karaf |
This module contains a feature repository to facilitate installing GridGain into an Apache Karaf container. |
ignite-osgi-paxlogging |
This module is an OSGi fragment that exposes the following packages from the Pax Logging API bundle:
These packages are required when installing the ignite-log4j bundle, and are not exposed by default by the Pax Logging API - the logging framework used by Apache Karaf. |
ignite-rest-http |
GridGain REST-HTTP starts a Jetty-based server within a node that can be used to execute tasks and/or cache commands in grid using HTTP-based RESTful APIs. |
ignite-schedule |
This module provides functionality for scheduling jobs locally using UNIX cron-based syntax. |
ignite-slf4j |
Support for SLF4J logging framework. |
ignite-spring-data |
GridGain Spring Data provides an integration with Spring Data framework. |
ignite-spring-data_2.0 |
GridGain Spring Data 2.0 provides an integration with Spring Data 2.0 framework. |
ignite-ssh |
The GridGain SSH module provides capabilities to start GridGain nodes on remote machines via SSH. |
ignite-tensorflow |
The GridGain TensorFlow Integration Module allows using TensorFlow with GridGain. In this scenario GridGain will be a data source for any TensorFlow model training. |
ignite-urideploy |
GridGain URI Deploy module provides capabilities to deploy tasks from different sources such as File System, HTTP, or even Email. |
ignite-web |
GridGain Web allows you to start nodes inside any web container based on servlet and servlet context listener. In addition, this module provides capabilities to cache web sessions in a GridGain cache. |
ignite-zookeeper |
GridGain ZooKeeper provides a TCP Discovery IP Finder that uses a ZooKeeper directory to discover other GridGain nodes. |
Configuration Recommendations
Below are some recommended configuration tips aimed at making it easier for you to operate a GridGain cluster or develop applications with GridGain.
Setting Work Directory
If you are going to use either binary distribution or Maven, you are encouraged to set up the work directory for GridGain. The work directory is used to store metadata information, index files, your application data (if you use the Native Persistence feature), logs, and other files. We recommend you always set up the work directory.
Recommended Logging Configuration
Logs play an important role when it comes to troubleshooting and finding what went wrong. Here are a few general tips on how to manage your log files:
-
Do not store log files in the
/tmp
folder. This folder is cleared up every time the server is restarted. -
Make sure that there is enough space available on the storage where the log files are stored.
-
Archive old log files periodically to save on storage space.
© 2024 GridGain Systems, Inc. All Rights Reserved. Privacy Policy | Legal Notices. GridGain® is a registered trademark of GridGain Systems, Inc.
Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are either registered trademarks or trademarks of The Apache Software Foundation.