HBase自带Web界面和Shell命令,是最基础的监控方式,适合快速查看集群状态。
http://<master-host>:16010/master-status(替换为Master节点IP/主机名),可查看集群整体状态、RegionServer列表、表分布及Region数量等信息。hbase shell),常用命令包括:
status 'simple':查看集群基本状态(Master/RegionServer数量、运行时间);list_regions:列出所有RegionServer及其管理的Region;describe 'your_table_name':查看表的Schema及配置信息。HBase通过JMX暴露详细性能指标(如内存使用、GC次数、请求延迟),需配置JMX并使用客户端查看。
hbase-site.xml,添加以下配置(指定Master/RegionServer的JMX端口):<property><name>hbase.regionserver.jmx.port</name><value>16020</value></property>
<property><name>hbase.master.jmx.port</name><value>16030</value></property>
jconsole(JDK自带)连接JMX端口,命令示例:jconsole service:jmx:rmi:///jndi/rmi://<master-host>:16030/jmxrmi
连接后可查看线程、内存、类加载、GC等指标,实时监控Master/RegionServer状态。第三方工具提供更强大的可视化、告警及历史数据分析功能,适合生产环境。
prometheus.yml,添加HBase JMX Exporter任务(需提前下载并配置HBase JMX Exporter,暴露指标端口):scrape_configs:
- job_name: 'hbase'
static_configs:
- targets: ['<master-host>:16020', '<regionserver-host>:16020']
gmetad.conf添加HBase集群数据源,gmond.conf配置节点信息,通过Web界面查看集群资源使用情况(CPU、内存、磁盘、网络)及HBase特定指标。通过Java代码调用HBase Admin API,可编程获取集群状态(如Master运行状态、RegionServer数量),适合集成到自定义监控系统中。
示例代码:
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
public class HBaseStatusChecker {
public static void main(String[] args) throws Exception {
Configuration config = HBaseConfiguration.create();
config.set("hbase.zookeeper.quorum", "your_zookeeper_quorum"); // 替换为ZooKeeper地址
try (Connection connection = ConnectionFactory.createConnection(config);
Admin admin = connection.getAdmin()) {
System.out.println("Master running: " + admin.isMasterRunning());
System.out.println("RegionServers: " + admin.getRegionServers().size());
}
}
}
编译运行后,可输出Master状态及RegionServer数量。
以上方法覆盖了从基础到高级的HBase监控需求,可根据集群规模(如小规模用自带工具,大规模用Prometheus+Grafana)、运维习惯选择合适的方案。