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.