-
Couldn't load subscription status.
- Fork 56
Building HBase
The instructions provided below specify the steps to build HBase version 2.3.5 on Linux on IBM Z for following distributions:
- RHEL (7.8, 7.9, 8.1, 8.2, 8.3)
- SLES (12 SP5, 15 SP2)
- Ubuntu (18.04, 20.04, 21.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.1, 8.2, 8.3)
-
With IBM SDK
sudo yum install -y git wget tar make gcc ant java-1.8.0-ibm-devel
-
With OpenJDK
sudo yum install -y git wget tar make gcc ant java-1.8.0-openjdk-devel
-
With AdoptOpenJDK
sudo yum install -y git wget tar make gcc ant
- Download and install AdoptOpenJDK 8 (Eclipse OpenJ9 or HotSpot) from here.
-
-
SLES (12 SP5, 15 SP2)
-
With IBM SDK
sudo zypper install -y git wget tar make gcc ant java-1_8_0-ibm-devel
-
With OpenJDK
sudo zypper install -y git wget tar make gcc ant java-1_8_0-openjdk-devel
-
With AdoptOpenJDK
sudo zypper install -y git wget tar make gcc ant
- Download and install AdoptOpenJDK 8 (Eclipse OpenJ9 or HotSpot) from here.
-
-
Ubuntu (18.04, 20.04, 21.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 AdoptOpenJDK
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 AdoptOpenJDK 8 (Eclipse OpenJ9 or HotSpot) from here.
-
Note: At the time of creation of these build instructions, HBase 2.3.5 was verified with IBM Java 8 SDK (build 8.0.6.26), OpenJDK 8 (build 1.8.0_282-b08), AdoptOpenJDK 8 with HotSpot (build 1.8.0_282-b08) and AdoptOpenJDK 8 with OpenJ9 (build 1.8.0_282-b08).
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, 21.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://httpd-mirror.sergal.org/apache/hbase/2.3.5/hbase-2.3.5-bin.tar.gz
tar xvf hbase-2.3.5-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 AdoptOpenJDK 8 (HotSpot) on some distributions.
Use the following commands to run HBase server:
cd $SOURCE_ROOT/hbase-2.3.5
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.3.5, rfd3fdc08d1cd43eb3432a1a70d31c3aece6ecabe, Fri Apr 9 22:10:01 PDT 2021In hbase shell console, type in the following commands:
hbase(main):001:0> create 'test', 'cf'
Created table test
Took 1.3476 seconds
=> Hbase::Table - test
hbase(main):002:0> list 'test'
TABLE
test
1 row(s)
Took 0.0186 seconds
=> ["test"]
hbase(main):003:0> put 'test', 'row1', 'cf:a', 'value1'
Took 0.1770 seconds
hbase(main):004:0> put 'test', 'row2', 'cf:b', 'value2'
Took 0.0048 seconds
hbase(main):005:0> put 'test', 'row3', 'cf:c', 'value3'
Took 0.0053 seconds
hbase(main):006:0> scan 'test'
ROW COLUMN+CELL
row1 column=cf:a, timestamp=2021-04-15T18:30:35.569, value=value1
row2 column=cf:b, timestamp=2021-04-15T18:30:48.524, value=value2
row3 column=cf:c, timestamp=2021-04-15T18:31:02.213, value=value3
3 row(s)
Took 0.0307 seconds
hbase(main):007:0> get 'test', 'row1'
COLUMN CELL
cf:a timestamp=2021-04-15T18:30:35.569, value=value1
1 row(s)
Took 0.0203 secondsIf your session looks similar to the above, congrats, your standalone HBase server is operational!
https://hbase.apache.org/ https://github.com/apache/hbase https://hbase.apache.org/book.html#quickstart
The 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.