温馨提示×

HBase集群在Ubuntu上怎么搭建

小樊
39
2025-10-23 03:54:40
栏目: 智能运维

HBase集群在Ubuntu上的搭建步骤(以3节点为例)

1. 准备工作

  • 系统要求:Ubuntu 20.04及以上(建议),每节点至少4核CPU、8GB内存、100GB存储、千兆网络。
  • 软件依赖:JDK 1.8+(sudo apt install openjdk-8-jdk -y)、SSH(sudo apt install ssh -y)、Hadoop集群(可选,若使用HDFS存储)、Zookeeper集群(可选,若使用外部ZK)。
  • 环境检查:确认Java版本(java -version)、SSH连通性(ssh localhost能免密登录)。

2. 下载并解压HBase

  • 在主节点(如master)下载HBase(选择稳定版本,如2.4.10):
    wget https://archive.apache.org/dist/hbase/2.4.10/hbase-2.4.10-bin.tar.gz
  • 解压至/usr/local并重命名:
    tar -zxvf hbase-2.4.10-bin.tar.gz && sudo mv hbase-2.4.10 /usr/local/hbase
  • 分发到所有RegionServer节点(slave1slave2):
    scp -r /usr/local/hbase/ user@slave1:/usr/local/ && scp -r /usr/local/hbase/ user@slave2:/usr/local/

3. 配置环境变量

  • 编辑主节点的~/.bashrc(或/etc/profile),添加以下内容:
    export HBASE_HOME=/usr/local/hbase
    export PATH=$PATH:$HBASE_HOME/bin
    export HBASE_LOG_DIR=/usr/local/hbase/logs  # 日志目录(可选)
    
  • 生效配置:source ~/.bashrc,并验证hbase version能正确输出版本信息。

4. 配置HBase核心文件

  • hbase-env.sh$HBASE_HOME/conf/
    取消以下注释并修改(若使用外部ZK,需设置HBASE_MANAGES_ZK=false):
    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64  # 实际JDK路径
    export HBASE_MANAGES_ZK=true  # 使用HBase内置ZK(默认)
    export HBASE_LOG_DIR=/usr/local/hbase/logs  # 日志目录
    
  • hbase-site.xml$HBASE_HOME/conf/
    添加以下核心配置(根据是否使用HDFS调整hbase.rootdir):
    <configuration>
        <!-- 分布式模式 -->
        <property>
            <name>hbase.cluster.distributed</name>
            <value>true</value>
        </property>
        <!-- HDFS存储路径(若使用HDFS) -->
        <property>
            <name>hbase.rootdir</name>
            <value>hdfs://master:9000/hbase</value>  # 需与Hadoop的fs.defaultFS一致
        </property>
        <!-- Zookeeper集群地址(若使用外部ZK) -->
        <property>
            <name>hbase.zookeeper.quorum</name>
            <value>master,slave1,slave2</value>
        </property>
        <!-- Zookeeper数据目录 -->
        <property>
            <name>hbase.zookeeper.property.dataDir</name>
            <value>/usr/local/hbase/zk</value>
        </property>
        <!-- 关闭HDFS追加支持(若HDFS未开启sync) -->
        <property>
            <name>dfs.support.append</name>
            <value>true</value>
        </property>
    </configuration>
    
  • regionservers$HBASE_HOME/conf/
    列出所有RegionServer节点(每行一个IP或主机名):
    slave1
    slave2
    

5. 配置SSH免密登录(可选但推荐)

  • 在主节点生成SSH密钥:ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
  • 将公钥复制到所有节点(包括主节点自身):
    ssh-copy-id user@master && ssh-copy-id user@slave1 && ssh-copy-id user@slave2
  • 测试免密登录:ssh user@slave1(无需输入密码)。

6. 启动HBase集群

  • 启动顺序:先启动Hadoop集群(start-dfs.shstart-yarn.sh,若使用HDFS),再启动Zookeeper集群(zkServer.sh start,若使用外部ZK),最后启动HBase:
    start-hbase.sh
  • 验证启动状态
    • 查看HBase进程:jps(主节点应有HMaster,RegionServer节点应有HRegionServer)。
    • 访问Web UI:http://master:16010(默认端口16010,需确保防火墙开放)。

7. 测试集群功能

  • 进入HBase Shell:hbase shell
  • 创建表:create 'test_table', 'cf'(表名test_table,列族cf)。
  • 插入数据:put 'test_table', 'row1', 'cf:col1', 'value1'
  • 查询数据:get 'test_table', 'row1'(查看row1的数据),scan 'test_table'(扫描全表)。
  • 删除表(可选):disable 'test_table'drop 'test_table'

注意事项

  • 版本兼容性:HBase需与Hadoop、Zookeeper版本兼容(如HBase 2.4.x兼容Hadoop 3.x、Zookeeper 3.5.x+)。
  • 资源调整:根据集群规模调整hbase.regionserver.handler.count(RegionServer处理线程数,默认30,可调整为100+)、hbase.heapsize(JVM堆大小,默认1GB,可调整为4GB+)。
  • 高可用性:若需HBase高可用,可配置backup-masters文件(指定备用Master节点,如slave1),并确保ZK集群为奇数节点(3或5节点)。

0