Apache HBase是一个分布式、可伸缩的数据存储。当您需要随机、实时地读取/写入访问大数据时,HBase是您开源的和非关系的数据库。Apache HBase在Hadoop和HDFS之上提供了类似 Google的Bigtable功能。
Application Manager致力于帮助Apache HBase管理员监控集群的区域分布。让我们来看看通过监控Apache HBase您能收集哪些性能指标,以及如何确保您的HBase数据库在Application Manager中正常运行:
支持的版本:HBase 版本 1.x
监测Apache HBase的先决条件:
JMX MBean用于收集HBase指标。要启用JMX,请打开 HBase/conf/HBase-env.sh 并取消注释/添加以下JVM参数。
export HBase_JMX_BASE="-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
export HBase_MASTER_OPTS="$HBase_MASTER_OPTS $HBase_JMX_BASE -Dcom.sun.management.jmxremote.port=10101"
export HBase_REGIONSERVER_OPTS="$HBase_REGIONSERVER_OPTS $HBase_JMX_BASE -Dcom.sun.management.jmxremote.port=10102"
使用REST API添加新的Apache HBase监视器:点击此处
注意:
如果您在启用JMX之后无法添加监视器,请尝试提供以下参数:
-Djava.rmi.server.hostname=[YOUR_IP]
点击监视器 选项卡,之后到监视器类别视图。点击数据库 表下的HBase。显示的是分发到三个选项卡的HBase批量配置视图:
点击监视器名称,查看以下选项卡下列出的所有服务器详细信息:
| 参数 | 描述 |
|---|---|
| HBase MASTER概述 | |
| Average Load | 每个区域服务器服务的区域平均数量。 |
| Dead Region Servers Count | 死区服务器的数量。 |
| Region Servers Count | 在线区域服务器的数量。 |
| Cluster Requests / Min | 每分钟从所有区域服务器到集群的请求总数。 |
| HBase JVM 指标 | |
| Total Heap Memory | 计算总堆内存,以MB为单位。 |
| Used Heap Memory | 计算所使用的堆内存,以MB为单位。 |
| Committed Heap Memory | 计算提交的堆内存,以MB为单位。 |
| Total Garbage Collections | JVM垃圾回收的总数。 |
| 内存详细信息 | |
| Free Physical Memory Size | 空闲物理内存的数量,以兆字节为单位。 |
| Free Swap Space Size | 空闲交换空间的总量,以兆字节为单位。 |
| Total Physical Memory Size | 物理内存总量,以兆字节为单位。 |
| Total Swap Space Size | 交换空间的总量,以兆字节为单位。 |
| Committed Virtual Memory Size | 保证运行进程可用的虚拟内存的数量,以兆字节为单位。 |
| 线程详细信息 | |
| Timed Waiting Threads Count | 等待另一个线程执行,指定的最多等待时间的线程数。 |
| Waiting Threads Count | 等待另一个线程执行特定操作的线程数。 |
| Blocked Threads Count | 等待监视器锁阻塞线程的数量。 |
| Runnable Threads Count | 在JVM中执行的线程数 |
| 参数 | 描述 |
|---|---|
| IPC 详细信息 | |
| Number of Open Connections | 在RPC层打开连接的数量。 |
| Total Call Time | 总调用时间,包括排队和处理进程时间。 |
| Number of Active RPC Handlers | 主动服务请求RPC处理程序的数量。 |
| Number of Calls In Replication | 从复制收到的当前队列操作的数量。 |
| 传输的数据 | |
| Sent Data | 调用队列中发送数据的字节数。 |
| Received Data | 调用队列中接收数据的字节数。 |
| 例外情况 | |
| Out of Order Scanner Exception | |
| Unknown Scanner Exception | |
| Region Too Busy Exception | 区域繁忙异常。 |
| 参数 | 描述 |
|---|---|
| 传输的区域 | |
| Regions in Transition | 统计在传输中的区域数目。 |
| Regions in Transition over Threshold | 计算超过属性rit.metrics.threshold.time定义阈值的过渡区域数量。 |
| 区域服务器 | |
| Name | 区域服务器的名称。 |
| Start Time | HBase master的开始时间。 |
| 参数 | 描述 |
|---|---|
| 存储文件 | |
| Store File Count | 区域服务器中存储文件的数量。 |
| Store File Size | 区域服务器中存储文件(数据文件)的总大小。 |
| MEMSTORE | |
| Memstore Size | 区域服务器的Memstore内存总大小。 |
| 压缩详细信息 | |
| Compactions Completed Count | 从节点启动以来完成的压缩总数。 |
| Num Bytes Compacted Count | 在所有实体的hregions中压缩的字节数。 |
| Num Files Compacted Count | 在所有实体的hregions中压缩的文件数量。 |
| HLog 计算 | |
| Delete Count | 区域服务器中Delet请求的总数。 |
| Increment Count | 区域服务器中Increment请求的总数。 |
| Append Count | 区域服务器中Append请求的总数。 |
| Mutate Count | 区域服务器中的Mutate请求总数。 |
| 操作延迟 - SCAN NEXT | |
| Scan Next Num Operations | 通过所有实体的hregions中的Scan Next操作数量。 |
| Scan Next Min | 区域服务器中扫描操作的最小延迟。 |
| Scan Next Max | 区域服务器中扫描操作的最大延迟。 |
| Scan Next Mean | 区域服务器中扫描操作的平均延迟。 |
| Scan Next Median | 区域服务器中扫描操作的中位延迟。 |
| 操作延迟 - GET | |
| Get Num Operations | 区域服务器中每秒GET请求的总数。 |
| Get Min | 区域服务器中Get操作的最小延迟。 |
| Get Max | 区域服务器中Get操作的最大延迟。 |
| Get Mean | 区域服务器中Get操作的平均延迟。 |
| Get Median | 区域服务器中Get操作的中位延迟。 |
| 参数 | 描述 |
|---|---|
| 缓存详细信息 | |
| Block Cache Count | 块缓存中的存储文件数量。 |
| Block Cache Eviction Count | 从块缓存中被逐出块的总数。 |
| Block Cache Free Size | 块缓存中空闲的字节数。 |
| Block Cache Express Hit Percent | 对于打开缓存的请求,块缓存命中百分比。 |
| Block Cache Hit Count | 无论缓存设置如何,对请求的块缓存命中总数。 |
| Block Cache Count Hit Percent | 无论缓存设置如何,块缓存对所有请求都命中百分比。 |
| Block Cache Miss Count | 不管缓存设置如何,对于请求,块缓存的丢失总数。 |
| Block Cache Size | 缓存块使用的字节数。 |
| SLOW 操作计数 | |
| Slow Append Count | 需要超过1000ms才能完成Append的数量。 |
| Slow Get Count | 需要超过1000ms才能完成Get的数量。 |
| Slow Put Count | 需要超过1000ms才能完成Put的数量。 |
| Slow Increment Count | 需要超过1000ms才能完成Increment的数量。 |
| Slow Delete Count | 需要超过1000ms才能完成Delete的数量。 |
| 参数 | 描述 |
|---|---|
| HLog文件分割时间 | |
| HLog Split Time Mean | 分割预写日志文件总大小的平均时间。 |
| HLog Split Time Min | 分割预写日志文件总大小的最少时间。 |
| HLog Split Time Max | 重新启动后分割预写日志文件的最大时间。 |
| HLog Split Time Num Operations | 分割预写日志文件的时间。 |
| HLog 分割文件大小 | |
| HLog Split Size Mean | 分割HLog文件总大小的平均时间。 |
| HLog Split Size Min | 分割HLog文件总大小的最小时间。 |
| HLog Split Size Max | 分割HLog文件总大小的最大时间。 |
| HLog Split Size Num Operations | 被分割的预写日志文件的大小。 |
| 参数 | 描述 |
|---|---|
| 配置 | |
| VM Name | Java虚拟机实施的名称。 |
| Boot Class Path | 引导类加载程序用于搜索类文件的引导类路径。 |
| VM Vendor | Java虚拟机实施的供应商。 |
| Spec Version | 本产品实施的JMX规范的版本。 |
它允许我们跟踪关键指标,如响应时间、资源利用率、错误率和交易性能。实时监控告警会及时通知我们任何问题或异常,使我们能够立即采取行动。
审稿人角色:研究与开发

Lexmark技术支持经理