Skip to content

Ignite_Recip_Src

Cnaik edited this page Jan 11, 2019 · 1 revision

Building Apache Ignite

The instructions provided below specify the steps to build Apache Ignite version 2.7.0 on Linux on IBM Z for the following distributions:

  • RHEL (7.4, 7.5, 7.6)
  • SLES (12 SP3, 15)
  • Ubuntu (16.04, 18.04)

The binary for Apache Ignite version 2.7.0 can be downloaded from here. Please note that, starting of server as mentioned in Step 5 below is the only verification performed on the binary.

General Notes:

  • When following the steps below please use a standard permission user unless otherwise specified.
  • A directory /<source_root>/ will be referred to in these instructions, this is a temporary writeable directory anywhere you'd like to place it.

Step 1: Install the dependencies

1.1) Install Build Dependencies

  • RHEL (7.4, 7.5, 7.6)

    sudo yum install -y wget git tar zip unzip
  • SLES (12 SP3, 15)

    sudo zypper install -y git wget tar zip unzip
  • Ubuntu (16.04, 18.04)

    sudo apt-get update
    sudo apt-get install -y maven wget git tar zip unzip

1.2) Download and install Maven (for RHEL and SLES )

  cd /<source_root>/
  wget https://archive.apache.org/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
  tar zxf apache-maven-3.3.9-bin.tar.gz
  export PATH=/<source_root>/apache-maven-3.3.9/bin:$PATH

1.3) Download and install AdoptOpenJDK 8 from here
Note: At the time of creation of these build instructions Apache Ignite was verified with AdoptOpenJDK version (build 1.8.0_192-b12_openj9) .

1.4) Build and install gcc 6.3.0 (for RHEL only)

cd /<source_root>/
sudo yum install -y wget tar make flex gcc gcc-c++ gcc-devel.s390 binutils-devel bzip2
wget ftp://gcc.gnu.org/pub/gcc/releases/gcc-6.3.0/gcc-6.3.0.tar.gz  
tar -xvzf gcc-6.3.0.tar.gz  
cd gcc-6.3.0/  
./contrib/download_prerequisites  

cd /<source_root>/  
mkdir gcc_build  
cd gcc_build/  
../gcc-6.3.0/configure --prefix="/opt/gcc" --enable-shared --with-system-zlib --enable-threads=posix --enable-__cxa_atexit --enable-checking --enable-gnu-indirect-function --enable-languages="c,c++" --disable-bootstrap --disable-multilib

Note: By changing the prefix, you can specify a different installation directory. Make sure to use the same directory in below commands

make  
sudo make install  
export PATH=/opt/gcc/bin:$PATH  
sudo ln -sf /opt/gcc/bin/gcc /usr/bin/gcc
export C_INCLUDE_PATH=/opt/gcc/lib/gcc/s390x-ibm-linux-gnu/6.3.0/include  
export CPLUS_INCLUDE_PATH=/opt/gcc/lib/gcc/s390x-ibm-linux-gnu/6.3.0/include  
sudo ln -sf /opt/gcc/lib64/libstdc++.so.6 /lib64/libstdc++.so.6 

Step 2: Download the source code

Download the Apache Ignite v2.7.0 source code from here under /<source_root>/

Step 3: Build Apache Ignite

  • Install following jars manually
cd /tmp
wget http://clojars.org/repo/ring-cors/ring-cors/0.1.5/ring-cors-0.1.5.jar
cd /<source_root>/apache-ignite-2.7.0-src
mvn install:install-file -Dfile=/tmp/ring-cors-0.1.5.jar -DgroupId=ring-cors -DartifactId=ring-cors -Dversion=0.1.5 -Dpackaging=jar

cd /tmp
wget http://central.maven.org/maven2/net/minidev/json-smart/2.3/json-smart-2.3.jar
cd /<source_root>/apache-ignite-2.7.0-src
mvn install:install-file -Dfile=/tmp/json-smart-2.3.jar -DgroupId=net.minidev -DartifactId=json-smart -Dversion=2.3-SNAPSHOT -Dpackaging=jar
  • Build the package without running tests
cd /<source_root>/apache-ignite-2.7.0-src  
mvn clean package -DskipTests  

Step 4: Run basic test suite (Optional)

cd /<source_root>/apache-ignite-2.7.0-src   
mvn surefire:test -pl :ignite-core -am -Dmaven.test.failure.ignore=true -DfailIfNoTests=false -Dtest=IgniteBasicTestSuite -Dmaven.javadoc.skip=true    

Note: GridMessageCollectionTest.testMarshal->doTestMarshal failure can be ignored as per https://issues.apache.org/jira/browse/IGNITE-10806

Step 5: Start the server

cd /<source_root>/apache-ignite-2.7.0-src     
bin/ignite.sh  

References: