Apache Ignite Documentation

GridGain Developer Hub - Apache Ignitetm

Welcome to the Apache Ignite developer hub run by GridGain. Here you'll find comprehensive guides and documentation to help you start working with Apache Ignite as quickly as possible, as well as support if you get stuck.

 

GridGain also provides Community Edition which is a distribution of Apache Ignite made available by GridGain. It is the fastest and easiest way to get started with Apache Ignite. The Community Edition is generally more stable than the Apache Ignite release available from the Apache Ignite website and may contain extra bug fixes and features that have not made it yet into the release on the Apache website.

 

Let's jump right in!

 

Documentation     Ask a Question     Download

 

Javadoc     Scaladoc     Examples

RPM and DEB Setup

Overview

Apache Ignite can be installed from the official RPM or DEB repositories.

Validated Linux Distributions

RPM/DEB packages were validated on the following Linux distributions by Ignite community:

  • Ubuntu 14.10 and higher
  • Debian 9.3 and higher
  • CentOS 7.4.1708 and higher

The other Linux distributions should be supported as well as long as the packages can be installed ​there.

Repository Configuration

Configure Apache Ignite's RPM or DEB repository, as follows (accept ​the ​GPG key import prompt if required), including specific Linux distribution settings:

# Install dirmngr (if not already installed) for apt-key ability to retrieve remote GPG keys
sudo apt update
sudo apt install dirmngr --no-install-recommends
sudo bash -c 'cat <<EOF > /etc/yum.repos.d/ignite.repo
[ignite]
name=Apache Ignite
baseurl=http://apache.org/dist/ignite/rpm/
gpgcheck=1
repo_gpgcheck=1
gpgkey=http://apache.org/dist/ignite/KEYS
       http://bintray.com/user/downloadSubjectPublicKey?username=bintray
EOF'
sudo yum check-update
sudo bash -c 'cat <<EOF > /etc/apt/sources.list.d/ignite.list
deb http://apache.org/dist/ignite/deb/ apache-ignite main
EOF'
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 379CE192D401AB61
sudo apt update

Ignite Installation

Install the latest Apache Ignite version:

sudo yum install apache-ignite
sudo apt install apache-ignite --no-install-recommends

The installation structure looks as follows:

Folder
Mapped To
Description

/usr/share/apache-ignite

The root of Apache Ignite's installation

/usr/share/apache-ignite/bin

Bin folder (scripts and executables)

/etc/apache-ignite

/usr/share/apache-ignite/config

Default configuration files

/var/log/apache-ignite

/var/lib/apache-ignite/log

Log directory

/usr/lib/apache-ignite

/usr/share/apache-ignite/libs

Core and optional libraries

/var/lib/apache-ignite

/usr/share/apache-ignite/work

Ignite work directory

/usr/share/doc/apache-ignite

Documentation

/usr/share/license/apache-ignite-<version>

Licenses

/etc/systemd/system

systemd service configuration

Running Ignite as a Service

If running on Windows 10 WSL or Docker, you should start Apache Ignite as a stand-alone process (not as a service). More information here.

Start Apache Ignite's node with a configuration of your choice, issuing command sudo systemctl start apache-ignite@<config_name>. Note that <config_name> parameter is relative to the /etc/apache-ignite folder.

sudo systemctl start apache-ignite@default-config.xml    # start Ignite service
journalctl -fe                                           # check logs

To enable node's autostart at system boot, use:

sudo systemctl enable apache-ignite@<config name>

Running Ignite as a Stand-Alone Process

Use the commands below to start Ignite as a stand-alone process (cd to /usr/share/apache-ignite previously). To change the default configuration, you can update /etc/apache-ignite/default-config.xml file.

First, log in​ as Ignite user, as follows:

sudo -u ignite /usr/bin/env bash    # switch to ignite user

Then navigate to Ignite bin folder and start an node:

cd /usr/share/apache-ignite         # navigate to Ignite home folder
bin/ignite.sh                       # run Ignite with default configuration
sudo -u ignite /usr/bin/env bash       # switch to ignite user
cd /usr/share/apache-ignite/bin        # navigate to Ignite bin folder
./ignite.sh <path_to_custom_config>    # start Ignite with custom configuration

Running Ignite in Windows 10 WSL

Network configuration

Running Apache Ignite under Windows 10 WSL environment requires correct Windows Defender Firewall with Advanced Security configuration:

  • Run Windows Defender Firewall with Advanced Security
  • Choose Inbound Rules menu item on the left column
  • Choose New Rule... menu item on the right column
  • Choose Program checkbox and click Next
  • Enter %SystemRoot%\System32\wsl.exe into This program path field and click Next
  • Choose Allow the connection checkbox and click Next
  • Choose Domain, Private and Public checkboxes and click Next
  • Compose a name for Name field (and, optionally, description for Description field) and click Finish

The prepared rule will allow Apache Ignite nodes on a Windows 10 WSL environment be exposed to the LAN.

Starting Ignite Cluster

Due to specific network stack implementation, running several nodes in single Windows 10 WSL environment requires custom configuration (see wsl-default-config below) and startup command as follows: bin/ignite.sh config/wsl-default-config.xml -J-DNODE=<00..99>.

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>

    <bean id="ignite.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
        <property name="discoverySpi">
            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                <property name="localPort" value="475${NODE}"/>
                <property name="ipFinder">
                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">
                        <property name="addresses">
                            <list>
                                <value>127.0.0.1:47500..47599</value>
                            </list>
                        </property>
                    </bean>
                </property>
            </bean>
        </property>

        <property name="communicationSpi">
            <bean class="org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi">
                <property name="localPort" value="481${NODE}"/>
            </bean>
        </property>

    </bean>
</beans>

First, log in as ignite user, as follows:

sudo -u ignite /usr/bin/env bash

Then navigate to Ignite home folder and start required number of Ignite nodes (up to 100) locally:

# Navigate to Ignite home folder
cd /usr/share/apache-ignite

# Run several local nodes
bin/ignite.sh config/wsl-default-config.xml -J-DNODE=00 &
bin/ignite.sh config/wsl-default-config.xml -J-DNODE=01 &
...
bin/ignite.sh config/wsl-default-config.xml -J-DNODE=99 &

RPM and DEB Setup