1. HBase启动失败(Master/RegionServer无法启动)
start-hbase.sh后,jps无HMaster或HRegionServer进程,或日志报错“Server is not running yet”。hbase-env.sh中明确设置JAVA_HOME(如export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_441),并确保source ~/.bashrc生效。hbase-site.xml中的对应端口(如<property><name>hbase.master.port</name><value>16010</value></property>)。start-dfs.sh),且hbase.rootdir(如hdfs://localhost:9000/hbase)配置正确。hbase.zookeeper.quorum(如localhost)配置正确,且Zookeeper服务正常(zkServer.sh status)。2. 无法连接HBase Master(16010端口无法访问)
http://localhost:16010报错“Connection refused”,或hbase shell连接时报错“Connection refused”。jps确认HMaster是否存在,若不存在,查看HMaster日志(位于logs目录)排查具体错误(如端口冲突、HDFS不可用)。ufw)可能阻止16010端口,需执行sudo ufw allow 16010/tcp开放端口。hbase-site.xml中的hbase.master.port是否与实际启动端口一致,或hbase.zookeeper.quorum是否指向正确的Zookeeper地址。3. 数据目录权限问题(启动时报“Permission denied”)
hbase.rootdir指定的HDFS目录或本地目录)有读写权限。若使用本地目录(如/tmp/hbase-${user.name}/hbase),需执行sudo chown -R $USER:$USER /tmp/hbase-${user.name};若使用HDFS目录,需确保HDFS用户(如hadoop)有权限(hdfs dfs -chmod -R 755 /hbase)。4. Java版本不兼容
java -version检查当前Java版本,若不符合要求,通过sudo apt install openjdk-11-jdk安装正确版本,并在hbase-env.sh中设置JAVA_HOME。5. RegionServer启动后长时间处于“Initializing”状态
jps显示HRegionServer进程存在,但HMaster界面显示RegionServer状态为“Initializing”,无法正常服务。hdfs dfsadmin -report显示“Live datanodes”不为0),或重启HDFS(stop-dfs.sh && start-dfs.sh)。hbase-site.xml中的hbase.zookeeper.quorum和hbase.zookeeper.property.clientPort(默认2181)配置是否正确,或Zookeeper服务是否延迟。hbase.regionserver.handler.count设置过高),需调整hbase-env.sh中的HBASE_HEAPSIZE(如export HBASE_HEAPSIZE=2G)。6. 表操作异常(如“TableNotFoundException”“NamespaceNotFoundException”)
create 'test', 'cf'或get 'test', 'row1'时报错“Table not found”或“Namespace does not exist”。list命令查看所有表)。my_ns:test),需先创建命名空间(create_namespace 'my_ns')。HMaster和RegionServer均处于“running”状态(jps确认),再执行表操作。7. 写入/读取性能差(延迟高、吞吐量低)
put命令响应慢,读取时get或scan命令耗时久,监控显示RegionServer负载高。HBASE_HEAPSIZE设置为4G及以上)。hbase.regionserver.handler.count(如30,增加处理线程数)、hbase.hregion.max.filesize(如10G,减少Region分裂次数)、hfile.block.cache.size(如0.4,增加读缓存比例)。snappy,hbase.hregion.compress设置为true)。setCacheBlocks(false)禁用批量读取的缓存,使用Filter(如SingleColumnValueFilter)减少不必要的数据扫描,避免全表扫描。