tree: 8ee94d491ac03f0542ca05af6365124c35d49e81 [path history] [tgz]
  1. configuration/
  2. package/
  3. src/
  4. appConfig-default.json
  5. appConfig-phoenix-default.json
  6. appConfig-secured-default.json
  7. hbase-slider
  8. hbase-slider.py
  9. jmx_metrics.json
  10. links.py
  11. metainfo.xml
  12. pom.xml
  13. README.md
  14. resources-default.json
  15. timeline_metrics.json
app-packages/hbase/README.md

Create Slider App Package for HBase

appConfig-default.json and resources-default.json are not required to be packaged. These files are included as reference configuration for Slider apps and are suitable for a one-node cluster.

OPTION-I: Use a downloaded tarball OPTION-II: Use the tarball from the local repository

Note: Post 0.94 versions of hbase, tarball filenames have a -bin suffix (e.g. hbase-0.98.10.1-hadoop2-bin.tar.gz), although the untarred top level directory does not (e.g hbase-0.98.10.1-hadoop2). We suggest renaming the tar ball file to remove the -bin suffix before proceeding with either of the below options (e.g. hbase-0.98.10.1-hadoop2.tar.gz). In fact all the mvn commands below assumes you have done so, or else app create will fail.

OPTION - I

To create the app package you will need the HBase tarball and invoke mvn command with appropriate parameters.

Command:

mvn clean package -Phbase-app-package -Dhbase.version=<hbase version> -Dpkg.version=<app package version>
   -Dpkg.name=<file name of app tarball> -Dpkg.src=<folder location where the pkg is available>

Example:

mvn clean package -Phbase-app-package -Dhbase.version=0.98.5-hadoop2
  -Dpkg.version=0.98.5-hadoop2
  -Dpkg.name=hbase-0.98.5-hadoop2.tar.gz
  -Dpkg.src=/Users/user1/Downloads/0.98.5-hadoop2

App package can be found in

app-packages/hbase/target/slider-hbase-app-package-${slider.version}.zip

OPTION - II

You need the HBase version available on local maven repo to create the Slider App Package for HBase.

Download the tarball for HBase: e.g. path to tarball ~/Downloads/hbase-0.98.3-hadoop2.tar.gz

Note for Phoenix user: If you want Phoenix to be deployed, you should repackage HBase tarball such that phoenix-server.jar is contained in the lib directory of the tarball. e.g. for hbase-0.98.4.2.2.0.0-1799-hadoop2.tar.gz, phoenix-server.jar should be copied to: hbase-0.98.4.2.2.0.0-1799-hadoop2/lib

For Phoenix 4.4 and above, you need to specify “org.apache.hadoop.hbase.ipc.PhoenixRpcSchedulerFactory” for “site.hbase-site.hbase.region.server.rpc.scheduler.factory.class”. Also add “org.apache.hadoop.hbase.ipc.controller.ServerRpcControllerFactory” for “site.hbase-site.hbase.rpc.controllerfactory.class”

The version of HBase used for the app package can be adjusted by adding a flag such as

-Dhbase.version=0.98.3-hadoop2

Use the following command to install HBase tarball locally (under local workspace of HBase repo):

mvn install:install-file -Dfile=<path-to-tarball> -DgroupId=org.apache.hbase -DartifactId=hbase -Dversion=0.98.3-hadoop2 -Dclassifier=bin -Dpackaging=tar.gz

You may need to copy the hbase tarball to the following location if the above step doesn't publish the tarball:

~/.m2/repository/org/apache/hbase/hbase/0.98.3-hadoop2/

After HBase tarball is published locally in maven repository, you can use the following command:

mvn clean package -DskipTests -Phbase-app-package

App package can be found in

app-packages/hbase/target/apache-slider-hbase-${hbase.version}-app-package-${slider.version}.zip

If an HBase version older than 0.98.3 is desired, it must be installed in the local maven repo.

A less descriptive file name can be specified with

-Dapp.package.name=HBase_98dot3 which would create a file HBase_98dot3.zip.

Verifying the content

Verify the content using

zip -Tv apache-slider-hbase-*.zip

Extracting an HBase Client

The HBase app package provides scripts to assist in client interactions with an HBase instance running on Slider. These can be extracted to the HBase bin directory as follows.

unzip slider-hbase-app-package*zip hbase-slider
unzip slider-hbase-app-package*zip hbase-wrapper.py

The dir will then contain an HBase client that can be used to connect to the cluster.

Example of command that invokes HBase shell is:

SLIDER_HOME=</path/to/slider> ./hbase-slider <clusterName>