HBase 会发出符合 Hadoop 指标 API 的指标。从 HBase 0.95 <sup class="footnote">[ 5 ]</sup> 开始,HBase 配置为发出一组默认的度量,默认采样周期为每 10 秒。您可以将 HBase 指标与 Ganglia 结合使用。您还可以过滤发布的指标并扩展指标框架,以捕获适合您环境的自定义指标。
对于 HBase 0.95 及更新版本,HBase 附带默认指标配置或 sink 。这包括各种各样的指标,默认情况下每 10 秒发出一次。要配置给定区域服务器的度量标准,请编辑 conf / hadoop-metrics2-hbase.properties 文件。重新启动区域服务器以使更改生效。
要更改默认接收器的采样率,请编辑以*.period
开头的行。要过滤发布的指标或扩展指标框架,请参阅 https://hadoop.apache.org/docs/current/api/org/apache/hadoop/metrics2/package-summary.html
HBase Metrics 和 Gangli
默认情况下,HBase 会为每个区域服务器发出大量指标。 Ganglia 可能难以处理所有这些指标。考虑增加 Ganglia 服务器的容量或减少 HBase 发出的指标数量。请参阅指标过滤。
要禁用区域服务器的度量标准,请编辑 conf / hadoop-metrics2-hbase.properties 文件并注释掉所有未注释的行。重新启动区域服务器以使更改生效。
您可以浏览可用的指标,无论是作为 JSON 输出还是通过 JMX,而不是列出默认情况下 HBase 发出的每个指标。为主进程和每个区域服务器进程公开不同的度量标准。
过程:访问可用度量标准的 JSON 输出
启动 HBase 后,访问区域服务器的 Web UI,默认情况下为 http:// REGIONSERVER_HOSTNAME:60030 (或 HBase 1.0+中的端口 16030)。
单击顶部附近的 Metrics Dump 链接。区域服务器的度量标准显示为 JSON 格式的 JMX bean 的转储。这将转储所有指标名称及其值。要在列表中包含指标描述 - 这在您探索可用内容时非常有用 - 添加查询字符串?description=true
,以便您的网址变为 http:// REGIONSERVER_HOSTNAME:60030 / jmx?description = true 。并非所有 bean 和属性都有描述。
要查看 Master 的指标,请改为连接到 Master 的 Web UI(默认为 http:// localhost:60010 或 HBase 1.0+中的端口 16010)并单击其 Metrics Dump 链接。要在列表中包含指标描述 - 这在您探索可用内容时非常有用 - 添加查询字符串?description=true
,以便您的网址变为 http:// REGIONSERVER_HOSTNAME:60010 / jmx?description = true 。并非所有 bean 和属性都有描述。
您可以使用许多不同的工具通过浏览 MBean 来查看 JMX 内容。此过程使用jvisualvm
,这是 JDK 中通常可用的应用程序。
过程:浏览可用度量标准的 JMX 输出
启动 HBase,如果它尚未运行。
在具有 GUI 显示的主机上运行命令jvisualvm
。您可以从命令行或适用于您的操作系统的其他方法启动它。
确保已安装 VisualVM-MBeans 插件。浏览到工具→插件。单击“已安装”并检查是否列出了插件。如果没有,请单击“可用插件”,选择它,然后单击安装。完成后,单击关闭。
要查看给定 HBase 进程的详细信息,请双击左侧面板中 Local 子树中的进程。右侧面板中将打开详细视图。单击 MBeans 选项卡,该选项卡显示为右侧面板顶部的选项卡。
要访问 HBase 指标,请导航到相应的子 bean :. _ 大师:。_ RegionServer:
每个度量标准的名称及其当前值都显示在“属性”选项卡中。对于包含更多详细信息(包括每个属性的说明)的视图,请单击“元数据”选项卡。
根据需要,不同的度量以不同的单位表示。通常,度量单位在名称中(如度量shippedKBs
)。否则,请使用以下准则。如有疑问,您可能需要检查给定指标的来源。
引用某个时间点的度量标准通常表示为时间戳。
引用年龄的度量标准(例如ageOfLastShippedOp
)通常以毫秒表示。
引用内存大小的度量标准以字节为单位。
队列的大小(例如sizeOfLogQueue
)表示为队列中的项目数。通过乘以块大小来确定大小(HDFS 中的默认值为 64 MB)。
引用诸如给定类型的操作(例如logEditsRead
)的数量之类的度量标准表示为整数。
注意:计数通常超过最后一个度量报告间隔。
hbase.master.numRegionServers
实时区域服务器的数量
hbase.master.numDeadRegionServers
死区服务器的数量
hbase.master.ritCount
过渡地区的数量
hbase.master.ritCountOverThreshold
转换区域的数量超过阈值时间(默认值:60 秒)
hbase.master.ritOldestAge
转换中最长区域的年龄,以毫秒为单位
Note: Counts are usually over the last metrics reporting interval.
hbase.regionserver.regionCount
区域服务器托管的区域数量
hbase.regionserver.storeFileCount
当前由 regionserver 管理的磁盘上的存储文件数
hbase.regionserver.storeFileSize
磁盘上存储文件的聚合大小
hbase.regionserver.hlogFileCount
尚未归档的预写日志数
hbase.regionserver.totalRequestCount
收到的请求总数
hbase.regionserver.readRequestCount
收到的读取请求数
hbase.regionserver.writeRequestCount
收到的写入请求数
hbase.regionserver.numOpenConnections
RPC 层的打开连接数
hbase.regionserver.numActiveHandler
主动为请求提供服务的 RPC 处理程序的数量
hbase.regionserver.numCallsInGeneralQueue
当前排队的用户请求数
hbase.regionserver.numCallsInReplicationQueue
从复制中收到的当前排队操作的数量
hbase.regionserver.numCallsInPriorityQueue
当前排队的优先级(内部管家)请求的数量
hbase.regionserver.flushQueueLength
memstore 刷新队列的当前深度。如果增加,我们落后于清除 HDFS 的存储库。
hbase.regionserver.updatesBlockedTime
已阻止更新的毫秒数,因此可以刷新 memstore
hbase.regionserver.compactionQueueLength
压缩请求队列的当前深度。如果增加,我们落后于 storefile 压缩。
hbase.regionserver.blockCacheHitCount
块缓存命中数
hbase.regionserver.blockCacheMissCount
块缓存未命中数
hbase.regionserver.blockCacheExpressHitPercent
打开缓存请求的时间百分比达到缓存
hbase.regionserver.percentFilesLocal
可从本地 DataNode 读取的存储文件数据的百分比,0-100
hbase.regionserver。 <op>_<measure></measure></op>
操作延迟,其中<op>是 Append,Delete,Mutate,Get,Replay,Increment 之一;其中<measure>是 min,max,mean,median,75th_percentile,95th_percentile,99th_percentile</measure> </op>中的一个
hbase.regionserver.slow <op>计数</op>
我们认为操作的数量很慢,其中<op>是以上列表中的一个</op>
hbase.regionserver.GcTimeMillis
垃圾收集所花费的时间,以毫秒为单位
hbase.regionserver.GcTimeMillisParNew
在年轻一代的垃圾收集中花费的时间,以毫秒为单位
hbase.regionserver.GcTimeMillisConcurrentMarkSweep
在旧一代的垃圾收集中花费的时间,以毫秒为单位
hbase.regionserver.authenticationSuccesses
身份验证成功的客户端连接数
hbase.regionserver.authenticationFailures
客户端连接验证失败的次数
hbase.regionserver.mutationsWithoutWALCount
提交的写入计数带有一个标志,指示它们应绕过写入日志