Hadoop 指标

编辑

Hadoop 系统会为它运行的每个作业记录一组指标计数器。elasticsearch-hadoop 对此进行了扩展,并利用 Hadoop Counters 基础设施,为每个作业运行提供关于其活动的指标。在每次运行时,elasticsearch-hadoop 会发送来自每个任务实例的统计信息,这些信息在运行过程中会被 Map/Reduce 基础设施聚合,并通过标准的 Hadoop API 提供。

elasticsearch-hadoop 提供了以下计数器,可通过 org.elasticsearch.hadoop.mr.Counter 枚举访问。

表 10. 可用计数器

计数器名称 用途

数据聚焦

BYTES_SENT

通过网络发送到 Elasticsearch 的数据/通信总字节数

BYTES_ACCEPTED

Elasticsearch 接受的数据/文档字节数

BYTES_RETRIED

Elasticsearch 拒绝的数据/文档字节数

BYTES_RECEIVED

从 Elasticsearch 接收的数据/文档字节数

文档聚焦

DOCS_SENT

通过网络发送到 Elasticsearch 的文档数量

DOCS_ACCEPTED

发送并被 Elasticsearch 接受的文档数量

DOCS_RETRIED

发送但被 Elasticsearch 拒绝的文档数量

DOCS_RECEIVED

从 Elasticsearch 接收的文档数量

网络聚焦

BULK_TOTAL

向 Elasticsearch 发出的批量请求数量

BULK_RETRIES

批量重试次数(由文档拒绝引起)

SCROLL_TOTAL

从 Elasticsearch 拉取的滚动数量

NODE_RETRIES

节点回退次数(由网络错误引起)

NET_RETRIES

网络重试次数(由网络错误引起)

时间聚焦

NET_TOTAL_TIME_MS

在网络上花费的总时间(以毫秒为单位)

BULK_TOTAL_TIME_MS

批量请求在网络上花费的时间(以毫秒为单位)

BULK_RETRIES_TOTAL_TIME_MS

在网络上重试批量请求所花费的时间(以毫秒为单位)

SCROLL_TOTAL_TIME_MS

在网络上读取滚动请求所花费的时间(以毫秒为单位)

可以根据使用的 API,通过 mapredmapreduce 以编程方式使用这些计数器。无论选择哪种方式,elasticsearch-hadoop 都会自动报告,无需用户干预。实际上,当使用 elasticsearch-hadoop 时,您将在作业运行结束时看到报告的统计信息,例如

13:55:08,100  INFO main mapreduce.Job - Job job_local127738678_0013 completed successfully
13:55:08,101  INFO main mapreduce.Job - Counters: 35
...
Elasticsearch Hadoop Counters
    Bulk Retries=0
    Bulk Retries Total Time(ms)=0
    Bulk Total=20
    Bulk Total Time(ms)=518
    Bytes Accepted=159129
    Bytes Sent=159129
    Bytes Received=79921
    Bytes Retried=0
    Documents Accepted=993
    Documents Sent=993
    Documents Received=0
    Documents Retried=0
    Network Retries=0
    Network Total Time(ms)=937
    Node Retries=0
    Scroll Total=0
    Scroll Total Time(ms)=0