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's 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 we run RegionServers on all but the head node
example1
which is carrying the HBase Master and
the HDFS namenode
example1 example3 example4 example5 example6 example7 example8 example9
Below we use a diff to show the differences
from default in the hbase-env.sh
file. Here we
are setting the HBase heap to be 4G instead of the default
1G.
$ git diff hbase-env.sh diff --git a/conf/hbase-env.sh b/conf/hbase-env.sh index e70ebc6..96f8c27 100644 --- a/conf/hbase-env.sh +++ b/conf/hbase-env.sh @@ -31,7 +31,7 @@ export JAVA_HOME=/usr/lib//jvm/java-6-sun/ # export HBASE_CLASSPATH= # The maximum amount of heap to use, in MB. Default is 1000. -# export HBASE_HEAPSIZE=1000 +export HBASE_HEAPSIZE=4096 # Extra Java runtime options. # Below are what we set by default. May only work with SUN JVM.
Use rsync to copy the content of the
conf
directory to all nodes of the
cluster.