HBase 高可用集群配置

Posted 车斗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HBase 高可用集群配置相关的知识,希望对你有一定的参考价值。

HBase 高可用集群配置

基于最新的 hbase-2.4.2 版本。3台机器组成 HBase HA 集群,运行的进程如下:

    flink01       HMaster
    flink02       HMaster, HRegionServer
    flink03                      HRegionServer

环境变量(/etc/profile.d/hacl-hbase-env.sh):

export HBASE_HOME=/opt/hacl/hbase-2.4.2
export HBASE_CONF_DIR=$HBASE_HOME/conf
export PATH=$PATH:$HBASE_HOME/bin

配置文件 $HBASE_CONF_DIR/hbase-site.xml 中,下面的项一定要配置:

    hbase.wal.provider: filesystem

这里 hbase.rootdir 的配置要与 $HADOOP_CONF_DIR/hdfs-site.xml 中的 dfs.nameservices(=hacl) 一致:

    hbase.rootdir: hdfs://hacl/hbase

使用了外部 zookeeper, 下面的项一定要配置 $HBASE_CONF_DIR/hbase-env.sh :

export HBASE_MANAGES_ZK=false
export HBASE_CLASSPATH=/opt/hacl/hadoop-3.3.0/etc/hadoop

配置文件 $HBASE_CONF_DIR/masters:

flink01

配置文件 $HBASE_CONF_DIR/backup-masters:

flink02

配置文件 $HBASE_CONF_DIR/regionservers:

flink02
flink03

必须将 hadoop-ha 的 $HADOOP_CONF_DIR 目录里的配置文件 hdfs-site.xml 和 core-site.xml 复制到 $HBASE_CONF_DIR 目录下:

    # cd $HBASE_CONF_DIR
    # ln -s $HADOOP_CONF_DIR/hdfs-site.xml hdfs-site.xml
    # ln -s $HADOOP_CONF_DIR/core-site.xml core-site.xml

完整的 hbase-site.xml 内容如下(hbase.zookeeper.quorum必须指定host列表,不要加端口号,不然与phoenix整合会出现错误。端口就2181吧,没办法,谁让开源的东西写的那么不负责任呢!):

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://hacl/hbase</value>
  </property>
  <property>
    <name>hbase.tmp.dir</name>
    <value>/hacl/hbase/tmp</value>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>flink01,flink02,flink03</value>
  </property>
  <property>
    <name>hbase.regionserver.handler.count</name>
    <value>30</value>
  </property>
  <property>
    <name>zookeeper.session.timeout</name>
    <value>30000</value>
  </property>
  <property>
    <name>dfs.namenode.avoid.read.stale.datanode</name>
    <value>true</value>
  </property>
  <property>
    <name>dfs.namenode.avoid.write.stale.datanode</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.wal.provider</name>
    <value>filesystem</value>
  </property>
  <property>
    <name>zookeeper.znode.parent</name>
    <value>/hbase</value>
  </property>
</configuration>

hadoop-ha 的 hdfs-site.xml 有关的配置如下:

 <property>
    <name>dfs.nameservices</name>
    <value>hacl</value>
 </property>

hadoop-ha 的 core-site.xml 配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://hacl</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/hacl/hadoop/tmp</value>
  </property>
  <property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
  </property>
  <property>
    <name>fs.trash.interval</name>
    <value>1440</value>
  </property>
  <property>
    <name>fs.trash.checkpoint.interval</name>
    <value>30</value>
  </property>
  <property>
    <name>ha.zookeeper.quorum</name>
    <value>flink01:2181,flink02:2181,flink03:2181</value>
  </property>
</configuration>

启动 HBase 集群,运行命令 (如果不能正常启动,则配置存在错误):

    start-hbase.sh

查看 jps 进程:

    flink01       HMaster
    flink02       HMaster, HRegionServer
    flink03       HRegionServer

关闭 HBase 集群,运行命令,(如果不能正常关闭进程,则配置存在错误):

    stop-hbase.sh

清空 hbase 的数据

通常在安装过程中发现错误,需要初始化 HBase 数据才这样做。

    首先关闭 hbase 集群:
     stop-hbase.sh

    如果运行上面的命令,某个 HMaster 无法中止,在该机器上执行:
       # hbase-daemon.sh stop master

    同样的,如果 HRegionServer 无法中止,执行:
       # hbase-daemon.sh stop regionserver

    确保所有节点的 HMaster, HRegionServer 进程都已经中止退出。执行下面的命令将删除全部 HDFS 和 ZK 上的 HBase 内容:
      # hbase clean --cleanAll

    警告:相当于删除 hdfs 上的 /hbase 目录和 zookeeper 上的 /hbase ZNode。这会删除全部 HBase 的数据,回到 HBase 刚安装的状态。

以上是关于HBase 高可用集群配置的主要内容,如果未能解决你的问题,请参考以下文章

HBase 高可用集群配置

HBase 高可用集群整合 Phoenix 配置

HBase 高可用集群整合 Phoenix 配置

最新Hadoop-2.7.2+hbase-1.2.0+zookeeper-3.4.8 HA高可用集群配置安装

hadoop集群高可用的配置以及hbase的环境配置

HA高可用+hive+hbase+sqoop+kafka+flume+spark安装部署