- 
                Notifications
    You must be signed in to change notification settings 
- Fork 56
Building HBase
ATTENTION!!! This package uses Log4j. Please see details here, for the updates on security vulnerabilities.
The instructions provided below specify the steps to build HBase version 2.4.12 on Linux on IBM Z for following distributions:
- RHEL (7.8, 7.9, 8.4, 8.6)
- SLES (12 SP5, 15 SP3)
- Ubuntu (18.04, 20.04, 22.04)
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.
export SOURCE_ROOT=/<source_root>/- 
RHEL (7.8, 7.9, 8.4, 8.6) - 
With IBM SDK sudo yum install -y git wget tar make gcc ant hostname java-1.8.0-ibm-devel 
- 
With OpenJDK sudo yum install -y git wget tar make gcc ant hostname java-1.8.0-openjdk-devel 
- 
With IBM Semeru Runtime (previously known as AdoptOpenJDK openj9) sudo yum install -y git wget tar make gcc ant hostname - Download and Install IBM Semeru Runtime (Java 8) from here.
 
- 
With Eclipse Adoptium Temurin Runtime (previously known as AdoptOpenJDK hostpot) sudo yum install -y git wget tar make gcc ant hostname - Download and Install Adoptium Temurin Runtime (Java 8) from here.
 
 
- 
- 
SLES (12 SP5, 15 SP3) - 
With IBM SDK sudo zypper install -y git wget tar make gcc ant gawk gzip sudo zypper install java-1_8_0-ibm-devel 
- 
With OpenJDK sudo zypper install -y git wget tar make gcc ant gawk gzip java-1_8_0-openjdk-devel 
- 
With IBM Semeru Runtime (previously known as AdoptOpenJDK openj9) sudo zypper install -y git wget tar make gcc ant gawk gzip - Download and Install IBM Semeru Runtime (Java 8) from here.
 
- 
With Eclipse Adoptium Temurin Runtime (previously known as AdoptOpenJDK hostpot) sudo zypper install -y git wget tar make gcc ant gawk gzip - Download and Install Adoptium Temurin Runtime (Java 8) from here.
 
 
- 
- 
Ubuntu (18.04, 20.04, 22.04) - 
With IBM SDK sudo apt-get update sudo apt-get install -y git wget tar make gcc libjffi-jni export LD_LIBRARY_PATH=/usr/lib/s390x-linux-gnu/jni/${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} - Download IBM Java 8 SDK binary from IBM Java 8 and follow the instructions as per the given link.
 
- 
With OpenJDK sudo apt-get update sudo apt-get install -y git wget tar make gcc libjffi-jni openjdk-8-jdk export LD_LIBRARY_PATH=/usr/lib/s390x-linux-gnu/jni/${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} 
- 
With IBM Semeru Runtime (previously known as AdoptOpenJDK openj9) sudo apt-get update sudo apt-get install -y git wget tar make gcc libjffi-jni export LD_LIBRARY_PATH=/usr/lib/s390x-linux-gnu/jni/${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} - Download and Install Adoptium Temurin Runtime (Java 8) from here.
 
- 
With Eclipse Adoptium Temurin Runtime (previously known as AdoptOpenJDK hostpot) sudo apt-get update sudo apt-get install -y git wget tar make gcc libjffi-jni export LD_LIBRARY_PATH=/usr/lib/s390x-linux-gnu/jni/${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} - Download and Install IBM Semeru Runtime (Java 8) from here.
 
 
- 
Note: At the time of creation of these build instructions, HBase 2.4.12 was verified with IBM Java 8 SDK (build 8.0.7.5), OpenJDK 8 (build 1.8.0_312), Adoptium Temurin Runtime (build 1.8.0_312-b07) and IBM Semeru Runtime (build 1.8.0_292-b10).
cd "$SOURCE_ROOT"
wget ftp://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz
tar xvfz libffi-3.2.1.tar.gz
cd libffi-3.2.1
./configure --prefix=/usr/local
make
sudo make installSet environment variable LD_LIBRARY_PATH: (Only on SLES)
export LD_LIBRARY_PATH=/usr/local/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}Set environment variable LD_LIBRARY_PATH: (Only on Ubuntu (20.04, 22.04))
export LD_LIBRARY_PATH=/usr/local/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}export JAVA_HOME=<path to java>
export PATH=$JAVA_HOME/bin:$PATHNote: HBase needs a native library (libjffi-1.2.so: java foreign language interface)
cd $SOURCE_ROOT
wget https://github.com/jnr/jffi/archive/jffi-1.2.23.tar.gz
tar -xzvf jffi-1.2.23.tar.gz
cd jffi-jffi-1.2.23
ant
export LD_LIBRARY_PATH=${SOURCE_ROOT}/jffi-jffi-1.2.23/build/jni/${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}cd $SOURCE_ROOT
wget https://archive.apache.org/dist/hbase/2.4.12/hbase-2.4.12-bin.tar.gz
tar xvf hbase-2.4.12-bin.tar.gzNote: Before running HBase, environment variable LD_LIBRARY_PATH needs to be set correctly. Please refer to Step 1.1) or 1.4) on how to set LD_LIBRARY_PATH after installing or building libjffi, and also Step 1.2) on how to set LD_LIBRARY_PATH after building libffi when using Adoptium Temurin Runtime on some distributions.
Use the following commands to run HBase server:
cd $SOURCE_ROOT/hbase-2.4.12
bin/start-hbase.shThe HBase Web UI could be accessed from http://<IP or domain name of the host>:16010 after HBase server is successfully started.
Then use the following command to run hbase shell:
bin/hbase shellThe output should contain logs similar to:
Version 2.4.12, r8382f55b15be6ae190f8d202a5e6a40af177ec76, Fri Apr 29 19:34:27 PDT 2022In hbase shell console, type in the following commands:
hbase:001:0> create 'test', 'cf'
Created table test
Took 2.5712 seconds
=> Hbase::Table - test
hbase:002:0> list 'test'
TABLE
test
1 row(s)
Took 0.0638 seconds
=> ["test"]
hbase:003:0> put 'test', 'row1', 'cf:a', 'value1'
Took 0.5492 seconds
hbase:004:0> put 'test', 'row2', 'cf:b', 'value2'
Took 0.0087 seconds
hbase:005:0> put 'test', 'row3', 'cf:c', 'value3'
Took 0.0084 seconds
hbase:006:0> scan 'test'
ROW                                      COLUMN+CELL
 row1                                    column=cf:a, timestamp=2022-05-25T06:52:53.703, value=value1
 row2                                    column=cf:b, timestamp=2022-05-25T06:53:02.219, value=value2
 row3                                    column=cf:c, timestamp=2022-05-25T06:53:06.634, value=value3
3 row(s)
Took 0.2340 seconds
hbase:007:0> get 'test', 'row1'
COLUMN                                   CELL
 cf:a                                    timestamp=2022-05-25T06:52:53.703, value=value1
1 row(s)
Took 0.0788 seconds
hbase:008:0> exit
If your session looks similar to the above, congrats, your standalone HBase server is operational!
Use the following commands to stop HBase server:
bin/stop-hbase.shThe information provided in this article is accurate at the time of writing, but on-going development in the open-source projects involved may make the information incorrect or obsolete. Please open issue or contact us on IBM Z Community if you have any questions or feedback.