Here is an example basic configuration for a distributed ten node cluster. The nodes are
named example0, example1, etc., through node
example9 in this example. The HBase Master and the HDFS namenode are
running on the node example0. RegionServers run on nodes
example1-example9. A 3-node ZooKeeper ensemble runs
on example1, example2, and example3
on the default ports. ZooKeeper data is persisted to the directory
/export/zookeeper. Below we show what the main configuration files --
hbase-site.xml, regionservers, and
hbase-env.sh -- found in the HBase conf
directory might look like.
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hbase.zookeeper.quorum</name>
<value>example1,example2,example3</value>
<description>The directory shared by RegionServers.
</description>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/export/zookeeper</value>
<description>Property from ZooKeeper config zoo.cfg.
The directory where the snapshot is stored.
</description>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://example0:8020/hbase</value>
<description>The directory shared by RegionServers.
</description>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
<description>The mode the cluster will be in. Possible values are
false: standalone and pseudo-distributed setups with managed Zookeeper
true: fully-distributed with unmanaged Zookeeper Quorum (see hbase-env.sh)
</description>
</property>
</configuration>
In this file you list the nodes that will run RegionServers. In our case, these nodes
are example1-example9.
example1
example2
example3
example4
example5
example6
example7
example8
example9
The following lines in the hbase-env.sh file show how to set the
JAVA_HOME environment variable (required for HBase 0.98.5 and newer) and
set the heap to 4 GB (rather than the default value of 1 GB). If you copy and paste this
example, be sure to adjust the JAVA_HOME to suit your environment.
# The java implementation to use.
export JAVA_HOME=/usr/java/jdk1.7.0/
# The maximum amount of heap to use, in MB. Default is 1000.
export HBASE_HEAPSIZE=4096
Use rsync to copy the content of the conf
directory to all nodes of the cluster.