ubuntu

ubuntu里hbase集群搭建指南

小樊
47
2025-09-19 06:23:00
栏目: 智能运维

Ubuntu环境下HBase集群搭建指南

一、准备工作

1. 系统要求

2. 软件依赖

3. 节点规划

二、环境配置

1. 安装Java

在所有节点执行以下命令安装OpenJDK 8:

sudo apt update
sudo apt install -y openjdk-8-jdk
# 验证安装
java -version  # 应输出Java 1.8.x版本信息

2. 安装SSH并配置免密登录

在Master节点生成SSH密钥,并分发公钥到所有RegionServer节点:

# 生成密钥(默认保存在~/.ssh/id_rsa)
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
# 分发公钥到RegionServer节点(替换为用户和IP)
ssh-copy-id user@regionserver1_ip
ssh-copy-id user@regionserver2_ip
# 测试免密登录
ssh user@regionserver1_ip  # 应无需密码直接登录
ssh user@regionserver2_ip

3. 安装Hadoop(可选,若使用HDFS)

若需将HBase数据存储在HDFS上,需提前部署Hadoop集群:

# 下载并解压Hadoop(以3.3.6为例)
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -xzvf hadoop-3.3.6.tar.gz -C /usr/local/
# 配置Hadoop核心文件(core-site.xml、hdfs-site.xml等)
# 启动Hadoop集群
hadoop namenode -format  # 格式化NameNode
start-dfs.sh             # 启动HDFS
start-yarn.sh            # 启动YARN(可选)

三、下载与解压HBase

在Master节点下载HBase(以2.5.7为例),并解压到指定目录:

# 下载HBase
wget https://dlcdn.apache.org/hbase/2.5.7/hbase-2.5.7-bin.tar.gz
# 解压到/usr/local/
tar -xzvf hbase-2.5.7-bin.tar.gz -C /usr/local/
# 创建软链接(可选,方便后续操作)
ln -s /usr/local/hbase-2.5.7 /usr/local/hbase
# 配置环境变量
echo 'export HBASE_HOME=/usr/local/hbase' >> ~/.bashrc
echo 'export PATH=$PATH:$HBASE_HOME/bin' >> ~/.bashrc
source ~/.bashrc  # 使环境变量生效

四、配置HBase核心文件

进入HBase的conf目录,修改以下配置文件:

1. hbase-site.xml(核心配置)

<configuration>
    <!-- 指定HBase存储路径(若使用HDFS,替换为HDFS地址;若伪分布式,用file://) -->
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://namenode_ip:9000/hbase</value>  <!-- 生产环境用HDFS -->
        <!-- <value>file:///usr/local/hbase/data</value> -->  <!-- 伪分布式测试用 -->
    </property>
    
    <!-- 开启分布式模式 -->
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    
    <!-- 指定ZooKeeper集群地址(逗号分隔) -->
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>master_ip,regionserver1_ip,regionserver2_ip</value>
    </property>
    
    <!-- ZooKeeper数据目录 -->
    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/usr/local/zookeeper/data</value>
    </property>
    
    <!-- Region最大文件大小(超过则分裂,默认10GB) -->
    <property>
        <name>hbase.hregion.max.filesize</name>
        <value>20G</value>
    </property>
    
    <!-- MemStore刷写阈值(默认128MB,可根据内存调整) -->
    <property>
        <name>hbase.hregion.memstore.flush.size</name>
        <value>256M</value>
    </property>
</configuration>

2. hbase-env.sh(环境配置)

# 设置HBase最大堆内存(根据节点内存调整,如Master用8GB,RegionServer用16GB)
export HBASE_HEAPSIZE=16G
# 关闭HBase自带的ZooKeeper(若使用独立集群)
export HBASE_MANAGES_ZK=false
# 配置Master和RegionServer的JVM参数(可选)
export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -Xmx8G -Xms8G"
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -Xmx16G -Xms16G"

3. regionservers(RegionServer列表)

conf目录下创建或修改regionservers文件,添加所有RegionServer节点的IP或主机名:

regionserver1_ip
regionserver2_ip

五、启动HBase集群

1. 启动ZooKeeper(若使用独立集群)

在所有RegionServer节点启动ZooKeeper(HBase自带ZooKeeper,若HBASE_MANAGES_ZK=false则无需此步):

# 进入HBase的zk目录
cd /usr/local/hbase/bin
# 启动ZooKeeper集群(每个节点执行)
./zkServer.sh start
# 验证状态
./zkServer.sh status  # 应显示"Mode: leader"或"Mode: follower"

2. 启动HBase集群

在Master节点执行以下命令启动集群:

# 启动HBase集群
start-hbase.sh
# 验证启动状态(查看Master和RegionServer进程)
jps  # 应显示HMaster和HRegionServer进程

3. 验证集群状态

六、常见问题排查

1. 节点无法启动

2. 内存不足

3. ZooKeeper连接失败

七、后续优化建议

0
看了该问题的人还看了