Deploying a Fully-Distributed HBase Cluster
For the purpose of clarity and ease of expression, I'll be assuming that we are setting up a cluster of 3 nodes with IP Addresses.
192.168.0.1
192.168.0.2
192.168.0.3
where 192.168.0.1 would be the master and 192.168.0.2,3 would be the slaves/region servers.
HBase by default manages a ZooKeeper "cluster" for you. It will start and stop the ZooKeeper ensemble as part of the HBase start/stop process.
Step 1: Assign hostnames to all the nodes of the cluster.
192.168.0.1 master
192.168.0.2 regionserver1
192.168.0.3 regionserver2
On the Master Node(192.168.0.1) add:
192.168.0.1 master
192.168.0.2 regionserver1
192.168.0.3 regionserver2
On the Region Server 1(192.168.0.2) add:
192.168.0.1 master
192.168.0.2 regionserver1
And on the Region Server 2(192.168.0.3) add:
192.168.0.1 master
192.168.0.3 regionserver2
Step 2: Download a stable release of hbase and untar it at a suitable location on all the hbase cluster nodes.
Step 3: Edit the /conf/hbase-env.sh file on all the hbase cluster nodes to add the JAVA_HOME (for eg. /usr/lib/jvm/java-1.7.0-openjdk-amd64/) and to set the HBASE_MANAGES_ZK to true to indicate
that HBase is supposed to manage the zookeeper ensemble internally.
export JAVA_HOME=your_java_home
export HBASE_MANAGES_ZK=true
Step 4: Edit the /conf/hbase-site.xml on all the hbase cluster nodes which after your editing should look like:
<configuration>
<property>
<name>hbase.master</name>
<value>192.168.0.1:60000</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
</configuration>
Here the property 'hbase.master' reflects the host and port that the HBase master(192.168.0.1) runs at. Next is the 'hbase.rootdir' property which is a directory shared by the region servers.
Step 5: Edit the /conf/regionservers file on all the hbase cluster nodes. Add the hostnames of all the region server nodes. For eg.
regionserver1
regionserver2
2) Start your HBase Cluster
Having followed the steps above, now its time to start the deployed cluster. If your have an externally managed zookeeper cluster, make sure to start it before you proceed further.
On the master node(10.10.10.1) cd to the hbase setup and run the following command
$HBASE_HOME/bin/start-hbase.sh
This would start all the master and the region servers on respective nodes of the cluster.
3) Stop your HBase Cluster
To stop a running cluster, on the master node, cd to the hbase setup and run
$HBASE_HOME/bin/stop-hbase.sh
For the purpose of clarity and ease of expression, I'll be assuming that we are setting up a cluster of 3 nodes with IP Addresses.
192.168.0.1
192.168.0.2
192.168.0.3
where 192.168.0.1 would be the master and 192.168.0.2,3 would be the slaves/region servers.
HBase by default manages a ZooKeeper "cluster" for you. It will start and stop the ZooKeeper ensemble as part of the HBase start/stop process.
Step 1: Assign hostnames to all the nodes of the cluster.
192.168.0.1 master
192.168.0.2 regionserver1
192.168.0.3 regionserver2
On the Master Node(192.168.0.1) add:
192.168.0.1 master
192.168.0.2 regionserver1
192.168.0.3 regionserver2
On the Region Server 1(192.168.0.2) add:
192.168.0.1 master
192.168.0.2 regionserver1
And on the Region Server 2(192.168.0.3) add:
192.168.0.1 master
192.168.0.3 regionserver2
Step 2: Download a stable release of hbase and untar it at a suitable location on all the hbase cluster nodes.
Step 3: Edit the /conf/hbase-env.sh file on all the hbase cluster nodes to add the JAVA_HOME (for eg. /usr/lib/jvm/java-1.7.0-openjdk-amd64/) and to set the HBASE_MANAGES_ZK to true to indicate
that HBase is supposed to manage the zookeeper ensemble internally.
export JAVA_HOME=your_java_home
export HBASE_MANAGES_ZK=true
Step 4: Edit the /conf/hbase-site.xml on all the hbase cluster nodes which after your editing should look like:
<configuration>
<property>
<name>hbase.master</name>
<value>192.168.0.1:60000</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
</configuration>
Here the property 'hbase.master' reflects the host and port that the HBase master(192.168.0.1) runs at. Next is the 'hbase.rootdir' property which is a directory shared by the region servers.
Step 5: Edit the /conf/regionservers file on all the hbase cluster nodes. Add the hostnames of all the region server nodes. For eg.
regionserver1
regionserver2
2) Start your HBase Cluster
Having followed the steps above, now its time to start the deployed cluster. If your have an externally managed zookeeper cluster, make sure to start it before you proceed further.
On the master node(10.10.10.1) cd to the hbase setup and run the following command
$HBASE_HOME/bin/start-hbase.sh
This would start all the master and the region servers on respective nodes of the cluster.
3) Stop your HBase Cluster
To stop a running cluster, on the master node, cd to the hbase setup and run
$HBASE_HOME/bin/stop-hbase.sh
Comments
Post a Comment