After setting Hadoop environment in previous section, you can set hbase environment now.
In the following example, I will use custom zookeeper to manage the resource of my cluster.
$ wget http://ftp.twaren.net/Unix/Web/apache/hbase/hbase-1.0.0/hbase-1.0.0-bin.tar.gz
$ wget http://ftp.twaren.net/Unix/Web/apache/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz
$ tar -zxvf hbase-1.0.0-bin.tar.gz
$ tar -zxvf zookeeper-3.3.6.tar.gz
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>hdfs://master:60000</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value><ZOOKEEPER_HOME>/data</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master</value>
</property>
<property>
<name>dfs.support.append</name>
<value>true</value>
</property>
</configuration>
$ vi <HBASE_HOME>/conf/hbase-env.sh
-> export HBASE_HOME=<HBASE_HOME>
-> export HADOOP_HOME=<HBASE_HOME>
-> export HBASE_CLASSPATH=$HADOOP_CONF_DIR
-> HBASE_MANAGES_ZK=false
$ vi <HBASE_HOME>/conf/slaves
-> master2
-> slave1
-> slave2
-> slave3
As previous setting of hbase-env.sh
, you can see I set HBASE_MANAGES_ZK=false
to use my custom zookeeper to manage and monitor the resource of cluster.
$ vi <ZOOKEEPER_HOME>/conf/zoo.cfg
-> dataDir=<ZOOKEEPER_HOME>/data
-> clientPort=2181
-> server.1=master:2888:3888
And then add a myid
file under <ZOOKEEPER_HOME>/data
to tell zookeeper which node is the zookeeper
running on.
for example, as my zoo.cfg set server.1
=master
:2888:3888, it means this zookeeper
thread running on master
node binding 2888
port and 3888
port. So I need to tell zookeeper
which machine is that run on.
$ vi myid
-> 1
wq!
$ sudo vi /etc/profile
-> export HBASE_HOME=<HBASE_HOME>
-> export ZOOKEEPER_HOME=<ZOOKEEPER_HOME>
-> export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HBASE_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH
After following previous sections to set Hadoop
and HBase
configurations, we can commit this Docker
image to distribute cloud cluster.