温馨提示×

HBase集群在CentOS如何搭建

小樊
44
2025-12-05 22:46:35
栏目: 智能运维

在 CentOS 上搭建 HBase 集群

一 环境规划与准备

  • 节点规划(示例三台):
    • node01:HDFS NameNode、HBase Master
    • node02:HDFS DataNode、HBase RegionServerBackup Master
    • node03:HDFS DataNode、HBase RegionServer
  • 基础依赖与版本建议:
    • Java 8(OpenJDK 8 或 Oracle JDK 8)
    • Hadoop ≥ 2.7(示例使用 3.3.x
    • ZooKeeper ≥ 3.4(示例使用 3.5.x/3.6.x
    • 所有节点间可通过主机名互相访问,建议配置 SSH 免密登录,并启用 NTP 做时间同步
  • 基础检查命令:
    • 查看 Java:java -version
    • 主机名互通:ping node02ping node03
    • 时间同步:timedatectl statussudo ntpdate -s time.nist.gov

二 安装与配置 Hadoop HDFS

  • 安装 Hadoop(示例放置于 /usr/local/hadoop):
    • 下载并解压(以 3.3.1 为例):
      wget https://downloads.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
      tar -xzvf hadoop-3.3.1.tar.gz -C /usr/local/
      sudo mv /usr/local/hadoop-3.3.1 /usr/local/hadoop
      
    • 配置环境变量(/etc/profile 或 ~/.bashrc):
      export HADOOP_HOME=/usr/local/hadoop
      export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
      
  • 关键配置(示例,按实际主机名与路径调整):
    • core-site.xml:
      <configuration>
        <property>
          <name>fs.defaultFS</name>
          <value>hdfs://node01:8020</value>
        </property>
      </configuration>
      
    • hdfs-site.xml(启用 HDFS HA 时替换为对应配置;此处为单 NameNode 示例):
      <configuration>
        <property>
          <name>dfs.replication</name>
          <value>2</value>
        </property>
        <property>
          <name>dfs.namenode.name.dir</name>
          <value>/data/hdfs/namenode</value>
        </property>
        <property>
          <name>dfs.datanode.data.dir</name>
          <value>/data/hdfs/datanode</value>
        </property>
      </configuration>
      
    • workers(或 slaves):
      node02
      node03
      
  • 启动 HDFS(首次需格式化 NameNode):
    hdfs namenode -format
    start-dfs.sh
    
  • 验证:jps 应看到 NameNode/DataNode 进程;访问 http://node01:9870 查看 HDFS Web UI。

三 安装与配置 ZooKeeper 集群

  • 安装 ZooKeeper(示例放置于 /usr/local/zookeeper):
    • 下载并解压(以 3.5.9 为例):
      wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz
      tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz -C /usr/local/
      sudo mv /usr/local/apache-zookeeper-3.5.9-bin /usr/local/zookeeper
      
    • 配置环境变量:
      export ZOOKEEPER_HOME=/usr/local/zookeeper
      export PATH=$PATH:$ZOOKEEPER_HOME/bin
      
  • 配置 zoo.cfg(/usr/local/zookeeper/conf/zoo.cfg):
    tickTime=2000
    dataDir=/var/lib/zookeeper
    clientPort=2181
    server.1=node01:2888:3888
    server.2=node02:2888:3888
    server.3=node03:2888:3888
    
  • myid 文件(各节点唯一,与 server.x 对应):
    • node01:echo "1" > /var/lib/zookeeper/myid
    • node02:echo "2" > /var/lib/zookeeper/myid
    • node03:echo "3" > /var/lib/zookeeper/myid
  • 启动与验证:
    # 各节点
    $ZOOKEEPER_HOME/bin/zkServer.sh start
    $ZOOKEEPER_HOME/bin/zkServer.sh status
    
    应看到 Mode: leaderMode: follower

四 安装与配置 HBase 集群

  • 安装 HBase(示例放置于 /opt/hbase):
    • 下载并解压(以 2.5.5 为例):
      wget https://dist.apache.org/repos/dist/release/hbase/2.5.5/hbase-2.5.5-bin.tar.gz
      tar -zxvf hbase-2.5.5-bin.tar.gz -C /opt/
      sudo ln -s /opt/hbase-2.5.5 /opt/hbase
      
    • 配置环境变量:
      export HBASE_HOME=/opt/hbase
      export PATH=$PATH:$HBASE_HOME/bin
      
  • 配置 hbase-env.sh(/opt/hbase/conf/hbase-env.sh):
    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
    export HBASE_MANAGES_ZK=false
    # 可按需调整堆内存
    # export HBASE_HEAPSIZE=8G
    
  • 配置 hbase-site.xml(/opt/hbase/conf/hbase-site.xml):
    <configuration>
      <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
      </property>
      <property>
        <name>hbase.rootdir</name>
        <value>hdfs://node01:8020/hbase</value>
      </property>
      <property>
        <name>hbase.zookeeper.quorum</name>
        <value>node01,node02,node03</value>
      </property>
      <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/var/lib/zookeeper</value>
      </property>
      <property>
        <name>hbase.master.info.port</name>
        <value>16010</value>
      </property>
    </configuration>
    
  • 配置集群节点:
    • regionservers(/opt/hbase/conf/regionservers):
      node02
      node03
      
    • 高可用(可选,/opt/hbase/conf/backup-masters):
      node02
      
  • 分发配置到各节点:
    for h in node02 node03; do
      scp -r /opt/hbase/conf $h:/opt/hbase/
    done
    
  • 启动与验证:
    # 先确保 HDFS 与 ZooKeeper 已启动
    start-hbase.sh
    
    # 各节点 jps 应看到:
    # Master:HMaster
    # RegionServer:HRegionServer
    # 若启用 HBASE_MANAGES_ZK=false,则不会看到 HQuorumPeer
    
    # Web UI:http://node01:16010
    hbase shell
    > status
    
    常见故障排查要点:
    • 无法连接 ZooKeeper:核对 hbase.zookeeper.quorum 与 ZooKeeper 集群状态
    • RegionServer 起不来:检查 HDFS 目录权限、可用内存与 GC 日志
    • 写入延迟高:增加 RegionServer 数量、检查网络与磁盘 IO。

0