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%,缓存热点数据)。