温馨提示×

CentOS如何配置HBase的高可用

小樊
40
2025-11-14 05:35:42
栏目: 智能运维

在CentOS上配置HBase的高可用性(HA)涉及多个步骤,包括设置ZooKeeper集群、配置HBase集群以及确保故障转移机制正常工作。以下是一个基本的指南:

1. 安装和配置ZooKeeper集群

HBase依赖ZooKeeper来管理集群的状态和协调。

安装ZooKeeper

  1. 下载并解压ZooKeeper:

    wget https://downloads.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
    tar -xzf apache-zookeeper-3.7.0-bin.tar.gz
    mv apache-zookeeper-3.7.0-bin /opt/zookeeper
    
  2. 创建ZooKeeper数据目录和日志目录:

    mkdir -p /var/lib/zookeeper/data
    mkdir -p /var/log/zookeeper
    
  3. 配置ZooKeeper: 复制示例配置文件并进行修改:

    cp /opt/zookeeper/conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg
    

    编辑/opt/zookeeper/conf/zoo.cfg,添加以下内容:

    tickTime=2000
    dataDir=/var/lib/zookeeper/data
    clientPort=2181
    initLimit=5
    syncLimit=2
    server.1=zoo1:2888:3888
    server.2=zoo2:2888:3888
    server.3=zoo3:2888:3888
    
  4. 启动ZooKeeper: 在每个节点上启动ZooKeeper:

    /opt/zookeeper/bin/zkServer.sh start
    

2. 安装和配置HBase

  1. 下载并解压HBase:

    wget https://downloads.apache.org/hbase/2.4.9/hbase-2.4.9-bin.tar.gz
    tar -xzf hbase-2.4.9-bin.tar.gz
    mv hbase-2.4.9 /opt/hbase
    
  2. 配置HBase: 编辑/opt/hbase/conf/hbase-site.xml,添加以下内容:

    <configuration>
      <property>
        <name>hbase.rootdir</name>
        <value>hdfs://namenode:8020/hbase</value>
      </property>
      <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
      </property>
      <property>
        <name>hbase.zookeeper.quorum</name>
        <value>zoo1,zoo2,zoo3</value>
      </property>
      <property>
        <name>hbase.zookeeper.property.clientPort</name>
        <value>2181</value>
      </property>
      <property>
        <name>hbase.master.info.port</name>
        <value>16000</value>
      </property>
      <property>
        <name>hbase.regionserver.info.port</name>
        <value>16020</value>
      </property>
      <property>
        <name>hbase.ipc.server.listen.address</name>
        <value>0.0.0.0</value>
      </property>
      <property>
        <name>hbase.regionserver.handler.count</name>
        <value>100</value>
      </property>
      <property>
        <name>hbase.regionserver.wal.codec</name>
        <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.blocksize</name>
        <value>64M</value>
      </property>
      <property>
        <name>hbase.regionserver.global.memstore.size</name>
        <value>0.4</value>
      </property>
      <property>
        <name>hbase.regionserver.global.memstore.lower.limit</name>
        <value>0.39</value>
      </property>
      <property>
        <name>hbase.regionserver.global.memstore.upper.limit</name>
        <value>0.41</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.count</name>
        <value>1</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.writer.impl</name>
        <value>org.apache.hadoop.hbase.regionserver.wal.HLogWriterFactory</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.checkpoint</name>
        <value>1024</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.max</name>
        <value>1024</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.min</name>
        <value>1</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.period</name>
        <value>30000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.size</name>
        <value>10485760</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.enabled</name>
        <value>true</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logsize</name>
        <value>10485760</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.multiplier</name>
        <value>1.5</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.period</name>
        <value>300000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.size</name>
        <value>104857600</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.jitter</name>
        <value>0.1</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.max</name>
        <value>10</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.min</name>
        <value>1</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.period.ms</name>
        <value>300000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.size.mb</name>
        <value>100</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.jitter.ms</name>
        <value>30</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.max.mb</name>
        <value>1000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.min.mb</name>
        <value>1</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.period.ms</name>
        <value>300000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.size.mb</name>
        <value>100</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.jitter.ms</name>
        <value>30</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.max.mb</name>
        <value>1000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.min.mb</name>
        <value>1</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.period.ms</name>
        <value>300000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.size.mb</name>
        <value>100</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.jitter.ms</name>
        <value>30</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.max.mb</name>
        <value>1000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.min.mb</name>
        <value>1</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.period.ms</name>
        <value>300000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.size.mb</name>
        <value>100</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.jitter.ms</name>
        <value>30</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.max.mb</name>
        <value>1000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.min.mb</name>
        <value>1</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.period.ms</name>
        <value>300000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.size.mb</name>
        <value>100</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.jitter.ms</name>
        <value>30</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.max.mb</name>
        <value>1000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.min.mb</name>
        <value>1</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.period.ms</name>
        <value>300000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.size.mb</name>
        <value>100</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.jitter.ms</name>
        <value>30</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.max.mb</name>
        <value>1000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.min.mb</name>
        <value>1</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.period.ms</name>
        <value>300000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.size.mb</name>
        <value>100</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.jitter.ms</name>
        <value>30</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.max.mb</name>
        <value>1000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.min.mb</name>
        <value>1</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.period.ms</name>
        <value>300000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.size.mb</name>
        <value>100</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.jitter.ms</name>
        <value>30</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.max.mb</name>
        <value>1000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.min.mb</name>
        <value>1</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.period.ms</name>
        <value>300000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.size.mb</name>
        <value>100</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.jitter.ms</name>
        <value>30</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.max.mb</name>
        <value>1000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.min.mb</name>
        <value>1</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.period.ms</name>
        <value>300000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.size.mb</name>
        <value>100</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.jitter.ms</name>
        <value>30</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.max.mb</name>
        <value>1000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.min.mb</name>
        <value>1</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.period.ms</name>
        <value>300000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.size.mb</name>
        <value>100</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.jitter.ms</name>
        <value>30</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.max.mb</name>
        <value>1000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.min.mb</name>
        <value>1</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.period.ms</name>
        <value>300000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.size.mb</name>
        <value>100</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.jitter.ms</name>
        <value>30</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.max.mb</name>
        <value>1000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.min.mb</name>
        <value>1</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.period.ms</name>
        <value>300000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.size.mb</name>
        <value>100</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.jitter.ms</name>
        <value>30</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.max.mb</name>
        <value>1000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.min.mb</name>
        <value>1</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.period.ms</name>
        <value>300000</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.size.mb</name>
        <value>100</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.jitter.ms</name>
        <value>30</value>
      </property>
      <property>
        <name>hbase.regionserver.hlog.syncer.logroll.max.mb</name>
        <value>10

0