Deploying GeoMesa HBase on Cloudera CDH 5.XΒΆ
Warning
Ensure that the CDH version you are using contains a compatible version of HBase. As of this writing, the latest CDH release is 5.16.x containing HBase 1.2, which is no longer supported by GeoMesa.
Note
In the following commands, replace ${VERSION}
with the appropriate GeoMesa and Scala versions
(e.g. 2.12-3.3.0
)
Download and extract the GeoMesa HBase distribution, as detailed in Setting up the HBase Command Line Tools. In the following steps,
GEOMESA_HBASE_HOME
refers to the extracted directorygeomesa-hbase_${VERSION}/
.Unpack, and add/modify GeoMesa environment variables in the files
$GEOMESA_HBASE_HOME/conf/*-env.sh
:
setvar HADOOP_HOME /opt/cloudera/parcels/CDH/lib/hadoop
setvar HADOOP_CONF_DIR /etc/hadoop/conf
hadoopCDH="1"
setvar HADOOP_COMMON_HOME /opt/cloudera/parcels/CDH/lib/hadoop
setvar HADOOP_HDFS_HOME /opt/cloudera/parcels/CDH/lib/hadoop-hdfs
setvar YARN_HOME /opt/cloudera/parcels/CDH/lib/hadoop-yarn
setvar HADOOP_MAPRED_HOME /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce
setvar ZOOKEEPER_HOME /opt/cloudera/parcels/CDH/lib/zookeeper
Copy
$GEOMESA_HBASE_HOME/dist/hbase/geomesa-hbase-distributed-runtime_$VERSION.jar
to HDFS underhdfs:///hbase/lib
Create
geomesa-site.xml
under$GEOMESA_HBASE_HOME/conf
and add (change[name_node]
to your HDFS name node hostname, and set your GeoMesa version, e.g2.12-3.3.0
):
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>geomesa.hbase.coprocessor.path</name>
<value>hdfs://[name_node]:8020/hbase/lib/geomesa-hbase-distributed-runtime_${VERSION}.jar</value>
<description>HDFS or local path to GeoMesa-HBase Coprocessor JAR. If a local path is provided it must be
the same for all region servers. A path provided through the DataStore parameters will always
override this property.
</description>
<final>false</final>
</property>
</configuration>
Symlink
hbase-site.xml
to the GeoMesa conf dir:
ln -s /etc/hbase/conf.cloudera.hbase/hbase-site.xml $GEOMESA_HBASE_HOME/conf/hbase-site.xml
Modify
$GEOMESA_HBASE_HOME/conf/dependencies.sh
to sethbase_version
to1.2.0
at the top of the script.Run the
install-dependencies.sh
script, which will download JARs to thelib
folder:
$GEOMESA_HBASE_HOME/bin/install-dependencies.sh
Add additional JARs from CDH HBase to the GeoMesa classpath:
ln -s /opt/cloudera/parcels/CDH/lib/hbase/lib/metrics-core-2.2.0.jar \
$GEOMESA_HBASE_HOME/lib/metrics-core-2.2.0.jar;
ln -s /opt/cloudera/parcels/CDH/lib/hbase/lib/htrace-core-3.2.0-incubating.jar \
$GEOMESA_HBASE_HOME/lib/htrace-core-3.2.0-incubating.jar;
All Set! Test client tools by ingesting the provided example data:
$GEOMESA_HBASE_HOME/bin/geomesa-hbase ingest -c example-csv -s example-csv \
-C example-csv $GEOMESA_HBASE_HOME/examples/ingest/csv/example.csv