Hadoop 指标编辑

Hadoop 系统会为其运行的每个作业记录一组指标计数器。 elasticsearch-hadoop 对此进行了扩展,并通过利用 Hadoop 计数器 基础设施,为其运行的每个作业提供有关其活动的指标。在每次运行期间,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