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

Zhijie Shen commented on MAPREDUCE-5933:
----------------------------------------

[~rkanter], thanks for the new patch. Here're my comments about it.

1. It seems that we have associated all the events to a single MR job entity, 
which doesn't reflect the nested structure: a MR job contains multiple 
map/reduce tasks. IMHO, we should have two level of entities: 1) MR job entity 
and 2) MR task entity with two type: Map and Reduce. The job events are added 
to the job entity while the task attempts are added to the particular task 
entity.

2. For entity and event info key, can we follow the convention that has applied 
to SystemMetricsPublisher, distributed shell and tez job: UPPER_CASE?

3. Given neither the scalable timeline server nor the reliable writing is going 
to happen in 2.6, shall we get rid of crashing MR AM when TimelineClient throws 
the exception, because we expect it's not as reliable as HDFS right now?
{code}
+      tEntity.addEvent(tEvent);
+      try {
+        timelineClient.putEntities(tEntity);
+      } catch (IOException ex) {
+        throw new YarnRuntimeException(ex);
+      } catch (YarnException ex) {
+        throw new YarnRuntimeException(ex);
+      }
{code}

4. It seems not to be necessary to put some events around the summary and the 
other in processAdditionalEventsForTimelineServer. We can put all timeline 
server event handling in the same method, and invoke it around
{code}
        HistoryEvent historyEvent = event.getHistoryEvent();
        if (! (historyEvent instanceof NormalizedResourceEvent)) {
          mi.writeEvent(historyEvent);
        }
{code} 

5. IMHO, one option to save the summary information (pulled from some 
particular events) as the other info of the job-level entity, while we still 
store these events. Later on, we can simply query the job-level entity and only 
retrieve the other info fields to quickly get the summary information in JHS.

6. It would have to know how to read them back and then convert them to JSON 
for display. 

Yeah, my question is whether we'd like to display the counter in JSON or keep 
it as unreadable bytes, but it's fine to keep to the concurrent solution.



> Enable MR AM to post history events to the timeline server
> ----------------------------------------------------------
>
>                 Key: MAPREDUCE-5933
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-5933
>             Project: Hadoop Map/Reduce
>          Issue Type: Sub-task
>          Components: mr-am
>            Reporter: Zhijie Shen
>            Assignee: Robert Kanter
>         Attachments: MAPREDUCE-5933.patch, MAPREDUCE-5933.patch, 
> MAPREDUCE-5933.patch, MAPREDUCE-5933.patch, mr_timelineserver_response.txt
>
>
> Nowadays, MR AM collects the history events and writes it to HDFS for JHS to 
> source. With the timeline server, MR AM can put these events there.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to