Loading

Hadoop metrics

The Hadoop system records a set of metric counters for each job that it runs. elasticsearch-hadoop extends on that and provides metrics about its activity for each job run by leveraging the Hadoop Counters infrastructure. During each run, elasticsearch-hadoop sends statistics from each task instance, as it is running, which get aggregated by the Map/Reduce infrastructure and are available through the standard Hadoop APIs.

elasticsearch-hadoop provides the following counters, available under org.elasticsearch.hadoop.mr.Counter enum:

Counter name Purpose
Data focused
BYTES_SENT Total number of data/communication bytes sent over the network to Elasticsearch
BYTES_ACCEPTED Data/Documents accepted by Elasticsearch in bytes
BYTES_RETRIED Data/Documents rejected by Elasticsearch in bytes
BYTES_RECEIVED Data/Documents received from Elasticsearch in bytes
Document focused
DOCS_SENT Number of docs sent over the network to Elasticsearch
DOCS_ACCEPTED Number of documents sent and accepted by Elasticsearch
DOCS_RETRIED Number of documents sent but rejected by Elasticsearch
DOCS_RECEIVED Number of documents received from Elasticsearch
Network focused
BULK_TOTAL Number of bulk requests made to Elasticsearch
BULK_RETRIES Number of bulk retries (caused by document rejections)
SCROLL_TOTAL Number of scroll pulled from Elasticsearch
NODE_RETRIES Number of node fall backs (caused by network errors)
NET_RETRIES Number of network retries (caused by network errors)
Time focused
NET_TOTAL_TIME_MS Overall time (in ms) spent over the network
BULK_TOTAL_TIME_MS Time (in ms) spent over the network by the bulk requests
BULK_RETRIES_TOTAL_TIME_MS Time (in ms) spent over the network retrying bulk requests
SCROLL_TOTAL_TIME_MS Time (in ms) spent over the network reading the scroll requests

One can use the counters programatically, depending on the API used, through mapred or mapreduce. Whatever the choice, elasticsearch-hadoop performs automatic reports without any user intervention. In fact, when using elasticsearch-hadoop one will see the stats reported at the end of the job run, for example:

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