centos

如何在CentOS上实现HBase的高可用性

小樊
49
2025-08-04 19:39:29
栏目: 智能运维

在CentOS上实现HBase的高可用性(HA)涉及多个步骤,包括配置HBase集群、设置ZooKeeper、配置HBase的HA特性等。以下是一个基本的指南:

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
    cd apache-zookeeper-3.7.0-bin
    
  2. 配置ZooKeeper:

    • 复制示例配置文件:
      cp conf/zoo_sample.cfg conf/zoo.cfg
      
    • 编辑conf/zoo.cfg文件,添加以下内容:
      tickTime=2000
      dataDir=/var/lib/zookeeper
      clientPort=2181
      initLimit=5
      syncLimit=2
      server.1=zoo1:2888:3888
      server.2=zoo2:2888:3888
      server.3=zoo3:2888:3888
      
    • dataDir目录下创建myid文件,并写入服务器ID:
      echo "1" > /var/lib/zookeeper/myid  # 在zoo1服务器上
      echo "2" > /var/lib/zookeeper/myid  # 在zoo2服务器上
      echo "3" > /var/lib/zookeeper/myid  # 在zoo3服务器上
      
  3. 启动ZooKeeper:

    bin/zkServer.sh start
    

2. 安装和配置HBase

安装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
    cd hbase-2.4.9
    
  2. 配置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.port</name>
          <value>16030</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.hregion.memstore.flush.size</name>
          <value>134217728</value>
        </property>
        <property>
          <name>hbase.regionserver.global.memstore.size</name>
          <value>0.4</value>
        </property>
        <property>
          <name>hbase.hregion.max.filesize</name>
          <value>2147483648</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.blocksize</name>
          <value>67108864</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.writer.impl</name>
          <value>org.apache.hadoop.hbase.regionserver.wal.HLog</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.count</name>
          <value>1</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.checkpoint</name>
          <value>100</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.max</name>
          <value>1000</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.min</name>
          <value>10</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.timeout</name>
          <value>60000</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlush</name>
          <value>true</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushTimeout</name>
          <value>30000</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushSize</name>
          <value>10485760</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitter</name>
          <value>10000</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterPercent</name>
          <value>0.1</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterMin</name>
          <value>1000</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterMax</name>
          <value>5000</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandom</name>
          <value>true</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeed</name>
          <value>12345</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedSize</name>
          <value>10</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedMax</name>
          <value>100</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedMin</name>
          <value>1</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStep</name>
          <value>1</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepMax</name>
          <value>10</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepMin</name>
          <value>1</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandom</name>
          <value>true</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeed</name>
          <value>12345</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedSize</name>
          <value>10</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedMax</name>
          <value>100</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedMin</name>
          <value>1</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStep</name>
          <value>1</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepMax</name>
          <value>10</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepMin</name>
          <value>1</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandom</name>
          <value>true</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeed</name>
          <value>12345</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedSize</name>
          <value>10</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedMax</name>
          <value>100</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedMin</name>
          <value>1</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStep</name>
          <value>1</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepMax</name>
          <value>10</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepMin</name>
          <value>1</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandom</name>
          <value>true</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeed</name>
          <value>12345</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedSize</name>
          <value>10</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedMax</name>
          <value>100</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedMin</name>
          <value>1</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStep</name>
          <value>1</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepMax</name>
          <value>10</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepMin</name>
          <value>1</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandom</name>
          <value>true</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeed</name>
          <value>12345</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedSize</name>
          <value>10</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedMax</name>
          <value>100</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedMin</name>
          <value>1</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStep</name>
          <value>1</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepMax</name>
          <value>10</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepMin</name>
          <value>1</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandom</name>
          <value>true</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeed</name>
          <value>12345</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedSize</name>
          <value>10</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedMax</name>
          <value>100</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedMin</name>
          <value>1</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStep</name>
          <value>1</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepMax</name>
          <value>10</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepMin</name>
          <value>1</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandom</name>
          <value>true</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeed</name>
          <value>12345</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedSize</name>
          <value>10</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedMax</name>
          <value>100</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedMin</name>
          <value>1</value>
        </property>
        <property>
          <name>hbase.regionserver.hlog.syncer.periodicFlushJitterRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStepRandomSeedStep</name>
          <value>

0
看了该问题的人还看了