CentOS环境下HBase管理指南
在CentOS上管理HBase前,需完成以下依赖安装与环境配置:
sudo yum install java-1.8.0-openjdk-devel
安装,安装后通过java -version
验证版本(需显示1.8.x)。wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz
),解压后配置zoo.cfg
(设置dataDir
、clientPort
及集群节点server.x
信息),启动Zookeeper(./bin/zkServer.sh start
)。core-site.xml
(设置HDFS NameNode地址)、hdfs-site.xml
(设置HDFS数据目录)。wget http://mirror.bit.edu.cn/apache/hbase/stable/hbase-2.4.9-bin.tar.gz
),解压至指定目录(如/opt/hbase
)。/etc/profile
,添加HBASE_HOME
(HBase安装目录)与PATH
(包含$HBASE_HOME/bin
),执行source /etc/profile
使配置生效。JAVA_HOME
(JDK安装路径),若不使用HBase内置ZooKeeper,添加export HBASE_MANAGES_ZK=false
。hrootdir
(HBase数据存储路径,如hdfs://namenode:9000/hbase
)、hbase.cluster.distributed
(集群模式,设为true
)、hbase.zookeeper.quorum
(ZooKeeper集群地址,如zookeeper1,zookeeper2,zookeeper3
)、hbase.zookeeper.property.dataDir
(ZooKeeper数据目录,如/var/lib/zookeeper
)。hadoop001
、hadoop002
)。./bin/start-hbase.sh
启动HBase集群(该命令会自动启动HMaster、ZooKeeper及所有RegionServer)。jps
命令查看进程:Master节点应显示HMaster
、HQuorumPeer
(ZooKeeper进程),RegionServer节点应显示HRegionServer
。./bin/hbase shell
),执行status 'simple'
查看集群状态(显示“0 active master, X servers”即为正常)。16010
,如http://master-ip:16010
),查看集群拓扑、表信息及性能指标。hbck
检查集群一致性(./bin/hbck
),使用HBase Shell执行scan '表名'
、count '表名'
等命令查询数据。regionservers
文件,同步配置到所有节点,在新节点上启动RegionServer(./bin/start-regionserver.sh
),HBase会自动分配Region。regionservers
文件中移除节点,停止该节点的RegionServer进程,HBase会将原RegionServer的Region迁移至其他节点。hbase shell
中执行snapshot '表名', '快照名'
),或使用ExportSnapshot
工具导出至HDFS(./bin/hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -copy-to hdfs://namenode:9000/hbase_backup -snapshot 快照名
)。create '表名', '列簇名', {NUMREGIONS => 10, SPLITALGO => 'HexStringSplit'}
)以均匀分布数据。/var/log/hbase/hmaster.log
)、RegionServer日志(/var/log/hbase/regionserver.log
)记录关键错误信息,是故障定位的核心依据。hbase.regionserver.heapsize
)、磁盘空间是否耗尽(清理hbase.data.dir
目录);若无法连接ZooKeeper,检查ZooKeeper服务状态及网络连通性。hbase-site.xml
中的内存参数,如hbase.regionserver.handler.count
(增加处理请求的线程数,默认30,可根据节点配置调整至100+)、hbase.regionserver.heapsize
(RegionServer堆内存,建议设置为物理内存的70%,如8GB内存设为5GB)、hbase.regionserver.global.memstore.upperLimit
(MemStore上限,默认0.4,可调整至0.5以减少刷写次数)。hbase.hregion.max.filesize
(单个Region最大文件大小,默认10GB,可增大至20GB以减少Region数量)、hbase.hstore.compactionThreshold
(触发Compaction的最小文件数,默认3,可调整至5以减少IO压力)、hbase.regionserver.thread.compaction.large
(大Compaction线程数,默认1,可调整至2~4以加速Compaction)。Put
对象批量提交)、过滤器(Scan
时添加SingleColumnValueFilter
减少数据传输)、关闭自动刷新(table.setAutoFlush(false)
,手动调用flushCommits()
)以提高写入性能;读取时设置合理的扫描范围(Scan
的startRow
与stopRow
),避免全表扫描。hfile.compression
设为SNAPPY
,减少存储空间与IO开销)、调整块缓存(hbase.regionserver.block.cache.size
设为堆内存的30%~50%,缓存热点数据)。