HBase 会发出符合 Hadoop 指标 API 的指标。从 HBase 0.95 <sup class="footnote">[ 5 ]</sup> 开始,HBase 配置为发出一组默认的度量,默认采样周期为每 10 秒。您可以将 HBase 指标与 Ganglia 结合使用。您还可以过滤发布的指标并扩展指标框架,以捕获适合您环境的自定义指标。

153.1。度量标准设置

对于 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 发出的指标数量。请参阅指标过滤

153.2。禁用指标

要禁用区域服务器的度量标准,请编辑 conf / hadoop-metrics2-hbase.properties 文件并注释掉所有未注释的行。重新启动区域服务器以使更改生效。

153.3。发现可用的指标

您可以浏览可用的指标,无论是作为 JSON 输出还是通过 JMX,而不是列出默认情况下 HBase 发出的每个指标。为主进程和每个区域服务器进程公开不同的度量标准。

过程:访问可用度量标准的 JSON 输出

  1. 启动 HBase 后,访问区域服务器的 Web UI,默认情况下为 http:// REGIONSERVER_HOSTNAME:60030 (或 HBase 1.0+中的端口 16030)。

  2. 单击顶部附近的 Metrics Dump 链接。区域服务器的度量标准显示为 JSON 格式的 JMX bean 的转储。这将转储所有指标名称及其值。要在列表中包含指标描述 - 这在您探索可用内容时非常有用 - 添加查询字符串?description=true,以便您的网址变为 http:// REGIONSERVER_HOSTNAME:60030 / jmx?description = true 。并非所有 bean 和属性都有描述。

  3. 要查看 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 输出

  1. 启动 HBase,如果它尚未运行。

  2. 在具有 GUI 显示的主机上运行命令jvisualvm。您可以从命令行或适用于您的操作系统的其他方法启动它。

  3. 确保已安装 VisualVM-MBeans 插件。浏览到工具→插件。单击“已安装”并检查是否列出了插件。如果没有,请单击“可用插件”,选择它,然后单击安装。完成后,单击关闭

  4. 要查看给定 HBase 进程的详细信息,请双击左侧面板中 Local 子树中的进程。右侧面板中将打开详细视图。单击 MBeans 选项卡,该选项卡显示为右侧面板顶部的选项卡。

  5. 要访问 HBase 指标,请导航到相应的子 bean :. _ 大师:。_ RegionServer:

  6. 每个度量标准的名称及其当前值都显示在“属性”选项卡中。对于包含更多详细信息(包括每个属性的说明)的视图,请单击“元数据”选项卡。

153.4。度量单位度量单位

根据需要,不同的度量以不同的单位表示。通常,度量单位在名称中(如度量shippedKBs)。否则,请使用以下准则。如有疑问,您可能需要检查给定指标的来源。

  • 引用某个时间点的度量标准通常表示为时间戳。

  • 引用年龄的度量标准(例如ageOfLastShippedOp)通常以毫秒表示。

  • 引用内存大小的度量标准以字节为单位。

  • 队列的大小(例如sizeOfLogQueue)表示为队列中的项目数。通过乘以块大小来确定大小(HDFS 中的默认值为 64 MB)。

  • 引用诸如给定类型的操作(例如logEditsRead)的数量之类的度量标准表示为整数。

153.5。最重要的主要指标

注意:计数通常超过最后一个度量报告间隔。

hbase.master.numRegionServers

实时区域服务器的数量

hbase.master.numDeadRegionServers

死区服务器的数量

hbase.master.ritCount

过渡地区的数量

hbase.master.ritCountOverThreshold

转换区域的数量超过阈值时间(默认值:60 秒)

hbase.master.ritOldestAge

转换中最长区域的年龄,以毫秒为单位

153.6。最重要的 RegionServer 指标

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

提交的写入计数带有一个标志,指示它们应绕过写入日志