Hbase安装部署详解

一、环境准备

1. 安装JDK

HBase 2.x 需要 JDK 1.8 或更高版本。

# 检查JDK
java -version

# 若未安装,以CentOS为例安装OpenJDK
sudo yum install java-1.8.0-openjdk-devel

# 设置JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH

2. 安装Hadoop(可选)

  • HBase可以独立运行(本地模式),但生产环境一般依赖HDFS。
  • 若仅测试,可跳过Hadoop安装;如需分布式部署,需先搭建好HDFS集群。

二、获取HBase

  1. Apache HBase官网下载对应版本。
  2. 解压:
tar -zxvf hbase-2.x.x-bin.tar.gz
mv hbase-2.x.x /usr/local/hbase

三、单机模式部署(Standalone)

适用于测试、开发环境。

1. 配置环境变量

export HBASE_HOME=/usr/local/hbase
export PATH=$HBASE_HOME/bin:$PATH

2. 修改配置文件

进入 $HBASE_HOME/conf 目录,主要关注以下文件:

1)hbase-env.sh
# 配置JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
2)hbase-site.xml
<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>file:///usr/local/hbase/data</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/usr/local/hbase/zookeeper</value>
  </property>
</configuration>

3. 启动HBase

start-hbase.sh

$HBASE_HOME/bin/start-hbase.sh

4. 检查服务

5. 进入HBase Shell

hbase shell

四、伪分布式部署(Pseudo-Distributed)

  • 各服务进程仍在同一台机器,但以分布式方式运行,适合测试分布式特性。

1. hbase-site.xml配置

<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://localhost:9000/hbase</value>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>localhost</value>
  </property>
</configuration>
  • hbase.rootdir 指向 HDFS 路径
  • hbase.cluster.distributed 设为 true
  • hbase.zookeeper.quorum 填写 ZooKeeper 地址

2. 启动Hadoop和HBase

  • 启动HDFS(如果用HDFS存储)
    start-dfs.sh
    
  • 启动HBase
    start-hbase.sh
    

五、分布式集群部署(生产环境)

1. 下载与分发HBase

# 任选一节点下载并解压
wget https://archive.apache.org/dist/hbase/2.4.18/hbase-2.4.18-bin.tar.gz
tar -zxvf hbase-2.4.18-bin.tar.gz
mv hbase-2.4.18 /opt/hbase

# 分发到所有节点
scp -r /opt/hbase user@node2:/opt/
scp -r /opt/hbase user@node3:/opt/

2. 集群规划

  • HMaster:1主(可配备1-2个Backup Master)
  • RegionServer:每台服务器都可以作为RegionServer
  • ZooKeeper:3台及以上

3. 配置HBase

进入/opt/hbase/conf目录,主要修改以下文件:

(1)hbase-env.sh
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export HBASE_MANAGES_ZK=false   # 使用外部ZooKeeper集群
(2)hbase-site.xml
<configuration>
  <!-- HDFS上的HBase根目录 -->
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://namenode:9000/hbase</value>
  </property>
  <!-- 分布式模式 -->
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <!-- ZooKeeper集群主机名或IP,逗号分隔 -->
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>zk1,zk2,zk3</value>
  </property>
  <!-- ZooKeeper端口,默认为2181 -->
  <property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>2181</value>
  </property>
  <!-- ZooKeeper数据目录(与ZK配置一致) -->
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/data/zookeeper</value>
  </property>
</configuration>
(3)regionservers

每行一个RegionServer主机名或IP,例如:

node1
node2
node3
(4)backup-masters(可选)

每行一个备用HMaster主机名或IP。


4. 分发配置文件

将所有配置文件同步到每台HBase节点,保证一致。


5. 启动集群

步骤1:启动HDFS集群

在Hadoop NameNode节点执行:

start-dfs.sh
步骤2:启动ZooKeeper集群

在每台ZooKeeper节点执行:

zkServer.sh start
步骤3:启动HBase集群

在HBase主节点执行:

cd /opt/hbase
bin/start-hbase.sh
  • 该命令会自动在regionservers文件列出的所有节点启动RegionServer进程。
  • 备用HMaster节点需手动启动hbase-daemon.sh start master

六、验证集群

  1. 进程检查
    • 各节点执行jps,应看到HMasterHRegionServerQuorumPeerMain等进程。
  2. Web UI
  3. HBase Shell
    bin/hbase shell
    status
    
    • 查看集群状态、RegionServer数量等

七、集群优化建议

  • 合理设计RowKey,避免单点热点。
  • 预分区(pre-split)表,提升负载均衡。
  • 合理设置JVM内存、GC参数(hbase-env.sh)。
  • 监控HBase、HDFS、ZooKeeper健康状态。
  • 定期备份,关注磁盘空间和Region分布。

八、常用运维命令

# 启动/停止HBase
start-hbase.sh
stop-hbase.sh

# 单独启动/停止RegionServer
hbase-daemon.sh start regionserver
hbase-daemon.sh stop regionserver

# 单独启动/停止Master
hbase-daemon.sh start master
hbase-daemon.sh stop master

# HBase Shell
hbase shell

九、常见问题与建议

  1. RegionServer未启动:检查hbase-site.xmlregionservers配置,查看hbase-regionserver.log日志。
  2. HMaster无法访问:检查端口、日志、HDFS和ZooKeeper是否正常。
  3. ZooKeeper连接失败:检查hbase.zookeeper.quorum配置,ZK端口是否开放。
  4. HDFS权限问题:确保HBase用户有HDFS写权限。
  5. 时钟不同步:建议所有节点配置NTP时间同步。
  6. 端口冲突:确保16010(Web UI)、16000(HMaster)、16020(RegionServer)、2181(ZooKeeper)端口未被占用。
  7. 时钟同步:集群各节点时间需同步(ntp)。
  8. 防火墙:开放相关端口。
  9. 内存与文件句柄:建议适当调大各节点的内存和文件句柄数。
  10. 数据目录权限:保证HBase、Hadoop、ZooKeeper的数据目录有正确的读写权限。

十、HBase常用操作举例

# 进入shell
hbase shell

# 创建表
create 'test', 'cf'

# 插入数据
put 'test', 'row1', 'cf:col1', 'value1'

# 查询数据
get 'test', 'row1'

# 扫描表
scan 'test'

# 删除表
disable 'test'
drop 'test'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猩火燎猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值