3. Adding HBase RegionServer

Use the following instructions to manually add HBase RegionServer hosts:

  1. On each of the newly added slave nodes, install HBase and ZooKeeper.

    • For RHEL/CentOS:

      yum install zookeeper hbase
    • For SLES:

      zypper install zookeeper hbase                 
  2. On each of the newly added slave nodes, add the HDP repository to yum:

    wget -nv //public-repo-1.hortonworks.com/HDP-1.2.0/repos/centos6/hdp.repo -O
    /etc/yum.repos.d/hdp.repo
    yum clean all
  3. Copy the HBase configurations to the newly added slave nodes and set appropriate permissions.

    • Option I: Copy HBase config files from an existing slave node.

      1. On any existing slave node, make a copy of the current configurations:

        tar zcvf hbase_conf.tgz /etc/hbase/conf  
        tar zcvf zookeeper_conf.tgz /etc/zookeeper/conf            
      2. Copy this file to each of the new nodes:

        rm -rf /etc/hbase/conf
        mkdir -p /etc/hbase/conf
        cd /
        tar zxvf $location_of_copied_conf_tar_file/hbase_conf.tgz
        chmod -R 755 /etc/hbase/conf
        rm -rf /etc/zookeeper/conf
        mkdir -p /etc/zookeeper/conf
        cd /
        tar zxvf $location_of_copied_conf_tar_file/zookeeper_conf.tgz
        chmod -R 755 /etc/zookeeper/conf

    • Option II: Manually add Hadoop configuration files.

      1. Download the HBase/ZooKeeper config files from here and extract these files under configuration_files -> hbase and configuration_files -> zookeeper directories to two temporary locations.

      2. Modify the configuration files:

        Table 6.5. zoo.cfg
        Variable Example Description
        server.1 $zookeeper.server1.full.hostname:2888:3888 Enter the 1st ZooKeeper hostname
        server.2 $zookeeper.server1.full.hostname:2888:3888 Enter the 2nd ZooKeeper hostname
        server.3 $zookeeper.server3.full.hostname:2888:3888 Enter the 3rd ZooKeeper hostname
        Table 6.6. hbase-site.xml
        Variable Example Description
        hbase.rootdir hdfs://{$namenode.full.hostname}:8020/apps/hbase/data Enter the HBase NameNode server
        hbase.master.info.bindAddress {hbase.master.full.hostname} Enter the HBase Master server hostname
        hbase.zookeeper.quorum server1.full.hostname,server2.full.hostname, server3.full.hostname Comma separated list of Zookeeper servers (match to what is specified in zoo.cfg but without portnumbers)

  4. On all the new slave nodes create the config directory, copy all the config files, and set the permissions:

    rm -r $HBASE_CONF_DIR ;
    mkdir -p $HBASE_CONF_DIR ;
    copy all the config files to $HBASE_CONF_DIR
    chmod a+x $HBASE_CONF_DIR/;
    chown -R $HBASE_USER:$HADOOP_GROUP $HBASE_CONF_DIR/../  ;
    chmod -R 755 $HBASE_CONF_DIR/../
    rm -r $ZOOKEEPER_CONF_DIR ;
    mkdir -p $ZOOKEEPER_CONF_DIR ;
    copy all the config files to $ZOOKEEPER_CONF_DIR 
    chmod a+x $ZOOKEEPER_CONF_DIR/;
    chown -R $ZOOKEEPER_USER:$HADOOP_GROUP $ZOOKEEPER_CONF_DIR/../  ;
    chmod -R 755 $ZOOKEEPER_CONF_DIR/../
                    
  5. Start HBase RegionServer node:

    <login as $HBASE_USER>
    /usr/lib/hbase/bin/hbase-daemon.sh --config $HBASE_CONF_DIR start regionserver
  6. On the HBase Master host machine, edit the /usr/lib/hbase/conf file and add the list of slave nodes' hostnames (separated by newline character).

  7. Optional - Enable monitoring on the newly added slave nodes using the instructions provided here.

  8. Optional - Enable cluster alerting on the newly added slave nodes using the instructions provided here.