Building Apache Geode - linux-on-ibm-z/docs GitHub Wiki
Building Apache Geode
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 writable directory anywhere you'd like to place it.
Apache Geode binaries are available and can be downloaded from here. To use these binaries, Java needs to be installed on mentioned distributions.
Note: Apache Geode(v1.15.1) was verified at the time of creation of these instructions
Step 1: Install Prerequisites
-
RHEL (7.8, 7.9, 8.6, 8.7, 9.0, 9.1)
sudo yum install -y wget unzip tar java-1.8.0-openjdk-devel
-
SLES (12 SP5, 15 SP4)
sudo zypper install -y wget unzip which tar gzip java-1_8_0-openjdk-devel
-
Ubuntu (20.04, 22.04, 22.10, 23.04)
sudo apt-get update sudo apt-get install -y wget unzip tar openjdk-8-jdk
Step 2: Set Environment Variables
export JAVA_HOME=<path to java>
export PATH=$JAVA_HOME/bin:$PATH
Step 3: Start a locator, server and create a region
Extract binary tar to /<source_root>/
and follow steps given below
export SOURCE_ROOT=/<source_root>/
export PATH=$SOURCE_ROOT/<apache_geode_binary_directory>/bin:$PATH
-
Check installed Apache Geode version
gfsh version
-
To start locator and server, run following commands :
gfsh gfsh> start locator gfsh> start server
-
Create a region
gfsh> create region --name=hello --type=REPLICATE
Step 4: Verification (Optional)
Write a client application using gradle in different terminal.
-
Install Gradle
export SOURCE_ROOT=/<source_root>/ cd $SOURCE_ROOT wget https://services.gradle.org/distributions/gradle-5.5-bin.zip unzip -q gradle-5.5-bin.zip export JAVA_HOME=<path to java> export PATH=$JAVA_HOME/bin:$PATH:$SOURCE_ROOT/gradle-5.5/bin
-
Create
$SOURCE_ROOT/build.gradle
file with following contentsapply plugin: 'java' apply plugin: 'application' mainClassName = 'HelloWorld' repositories { mavenCentral() } dependencies { compile 'org.apache.geode:geode-core:1.4.0' runtime 'org.slf4j:slf4j-log4j12:1.7.24' }
-
Create directory
$SOURCE_ROOT/src/main/java
and create a file at$SOURCE_ROOT/src/main/java/HelloWorld.java
with following contentsimport java.util.Map; import org.apache.geode.cache.Region; import org.apache.geode.cache.client.*; public class HelloWorld { public static void main(String[] args) throws Exception { ClientCache cache = new ClientCacheFactory() .addPoolLocator("localhost", 10334) .create(); Region<String, String> region = cache .<String, String>createClientRegionFactory(ClientRegionShortcut.CACHING_PROXY) .create("hello"); region.put("1", "Hello"); region.put("2", "World"); for (Map.Entry<String, String> entry : region.entrySet()) { System.out.format("key = %s, value = %s\n", entry.getKey(), entry.getValue()); } cache.close(); } }
-
Build and run the HelloWorld example:
gradle run
Gradle build is successful as the application will connect to the running cluster, create a local cache, put data in the cache, and print the cached data to the console:
key = 1, value = Hello key = 2, value = World
-
Shutdown the Geode server and locator in earlier terminal:
gfsh> shutdown --include-locators=true