您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 大数据数据库HBase的集群安装部署方法
## 1. HBase概述
### 1.1 HBase简介
HBase是一个开源的、分布式的、面向列的NoSQL数据库,基于Google BigTable设计理念构建,运行在Hadoop分布式文件系统(HDFS)之上。作为Hadoop生态系统中的重要组件,HBase能够提供:
- 海量数据存储能力(PB级)
- 高并发读写性能
- 强一致性的数据访问
- 水平扩展能力
### 1.2 核心特性
| 特性 | 说明 |
|------|------|
| 列式存储 | 按列族(Column Family)物理存储,适合稀疏数据 |
| 自动分片 | Region自动分裂和合并 |
| 高可用 | 通过ZooKeeper实现故障转移 |
| 强一致性 | 单行数据ACID特性 |
| 线性扩展 | 通过增加RegionServer实现水平扩展 |
## 2. 环境准备
### 2.1 硬件要求
- **生产环境建议配置**:
- Master节点:16核CPU/32GB内存/500GB SSD
- RegionServer:32核CPU/64GB内存/多块SATA HDD
- Zookeeper节点:8核CPU/16GB内存/100GB SSD
- **测试环境最低配置**:
- 所有节点:4核CPU/8GB内存/100GB HDD
### 2.2 软件依赖
```bash
# 基础环境检查
java -version # 需JDK1.8+
ssh localhost # 配置SSH免密登录
hostname -f # 检查主机名解析
节点IP | 主机名 | 角色 |
---|---|---|
192.168.1.10 | master1 | HMaster/ZooKeeper/NameNode |
192.168.1.11 | slave1 | RegionServer/DataNode |
192.168.1.12 | slave2 | RegionServer/DataNode |
192.168.1.13 | slave3 | RegionServer/DataNode |
<!-- etc/hadoop/core-site.xml -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master1:9000</value>
</property>
<!-- etc/hadoop/hdfs-site.xml -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
# 在所有ZK节点执行
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
tar -xzf zookeeper-3.4.14.tar.gz -C /opt/
# 配置zoo.cfg
echo "
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/var/lib/zookeeper
clientPort=2181
server.1=master1:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
" > conf/zoo.cfg
# 创建myid文件
echo "1" > /var/lib/zookeeper/myid
wget https://archive.apache.org/dist/hbase/2.4.11/hbase-2.4.11-bin.tar.gz
tar -xzf hbase-2.4.11-bin.tar.gz -C /usr/local/
ln -s /usr/local/hbase-2.4.11 /usr/local/hbase
<!-- conf/hbase-site.xml -->
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master1:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master1,slave1,slave2</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/var/lib/zookeeper</value>
</property>
</configuration>
<!-- conf/regionservers -->
slave1
slave2
slave3
# 启动顺序
start-dfs.sh # 启动HDFS
zkServer.sh start # 所有ZK节点
start-hbase.sh # Master节点
# 验证服务
jps | grep -E 'HMaster|HRegionServer|QuorumPeerMain'
hbase shell
> status
<!-- 在hbase-site.xml中添加 -->
<property>
<name>hbase.master</name>
<value>master1:60000,master2:60000</value>
</property>
<property>
<name>hbase.master.loadbalance.bytable</name>
<value>true</value>
</property>
<property>
<name>hbase.regionserver.handler.count</name>
<value>30</value> <!-- 根据CPU核心数调整 -->
</property>
<property>
<name>hbase.hregion.max.filesize</name>
<value>10737418240</value> <!-- 10GB Region大小 -->
</property>
# conf/hbase-env.sh
export HBASE_HEAPSIZE=8G
export HBASE_REGIONSERVER_OPTS="-Xmx16G -Xms16G -XX:+UseG1GC"
参数 | 推荐值 | 说明 |
---|---|---|
hbase.regionserver.global.memstore.size | 0.4 | 总堆内存的40% |
hfile.block.cache.size | 0.3 | 读缓存大小 |
hbase.hstore.compactionThreshold | 3 | 触发压缩的StoreFile数量 |
hbase> status 'detailed'
hbase> balancer
# Region合并
hbase> merge_region 'ENCODED_REGIONNAME1','ENCODED_REGIONNAME2'
# 手动触发Major Compaction
hbase> major_compact 'table_name'
# 查看日志位置
tail -f logs/hbase-*-master-*.log
grep -i error logs/hbase-*-regionserver-*.log
# 常见错误:
# 1. ZooKeeper连接失败 - 检查zk服务状态
# 2. HDFS权限问题 - 设置hbase用户权限
# 3. 端口冲突 - 检查60000/16020端口
写入缓慢:
hbase.regionserver.hlog.blocksize
读取延迟高:
<property>
<name>hbase.security.authentication</name>
<value>kerberos</value>
</property>
<property>
<name>hbase.security.authorization</name>
<value>true</value>
</property>
滚动升级步骤:
注意事项:
最佳实践提示:生产环境建议部署至少3个Master节点和5个以上RegionServer节点,ZooKeeper集群建议使用专用节点且节点数为奇数。 “`
注:本文档基于HBase 2.4版本编写,不同版本配置可能存在差异。实际部署时应参考对应版本的官方文档。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。