hadoop-mapreduce-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Maysam Yabandeh (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MAPREDUCE-5954) Optional exclusion of counters from getTaskReports
Date Fri, 12 Sep 2014 03:11:34 GMT

    [ https://issues.apache.org/jira/browse/MAPREDUCE-5954?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14131052#comment-14131052

Maysam Yabandeh commented on MAPREDUCE-5954:

Thanks [~jira.shegalov]. Currently the use case is that the monitoring tool can be recompiled
to benefit from the added API to the MRAppMaster. The MR jobs themselves should not need a
recompile. Can you explain a bit more why an existing MR job would need to recompile with
the current patch?

> Optional exclusion of counters from getTaskReports
> --------------------------------------------------
>                 Key: MAPREDUCE-5954
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-5954
>             Project: Hadoop Map/Reduce
>          Issue Type: Improvement
>            Reporter: Maysam Yabandeh
>            Assignee: Maysam Yabandeh
>         Attachments: MAPREDUCE-5954.patch
> MRClientService#getTaskReports returns the set of map or reduce tasks along with their
counters, which are quite large. For big jobs, the response could be as large as 0.5 GB. This
has a negative impact both on MRAppMaster and the monitoring tool that invokes getTaskReports.
This problem has led Pig users to entirely disable getTaskReports for big jobs:
> https://issues.apache.org/jira/browse/PIG-4043
> Many monitoring tools, including ours, do not need the task counters when invoking getTaskReports.
Pig also does not make any use of task counters. Here are the usages of Tasks in pig:
> {code}
>     protected void getErrorMessages(TaskReport reports[], String type,
>             String msgs[] = reports[i].getDiagnostics();
>                 if (HadoopShims.isJobFailed(reports[i])) {
> {code}
> and
> {code}
>     protected long computeTimeSpent(TaskReport[] taskReports) {
>         long timeSpent = 0;
>         for (TaskReport r : taskReports) {
>             timeSpent += (r.getFinishTime() - r.getStartTime());
>         }
>         return timeSpent;
>     }
> {code}
> GetTaskReportsRequest can be augmented with an optional boolean with which the monitoring
tool can request excluding the counters form the response. This minor change is very simple
and yet makes many existing monitoring tools more efficient.

This message was sent by Atlassian JIRA

View raw message