code: public TaskCompletionEvent[] readJobTaskCompletionEvents(JobID jobId,
                                                                 int fromEventId,
                                                                 int maxEvents) {
      TaskCompletionEvent[] events = TaskCompletionEvent.EMPTY_ARRAY;
      if (active) {
        try {
          FSDataInputStream dataIn = getJobInfoFile(jobId);
          if (dataIn != null) {
            readJobStatus(dataIn);
            readJobProfile(dataIn);
            readCounters(dataIn);
            events = readEvents(dataIn, fromEventId, maxEvents);
            dataIn.close();
          }
        } catch (IOException ex) {
          LOG.warn("Could not read [" + jobId + "] job events : " + ex, ex);
        }
      }
      return events;
    }
docs: This method retrieves TaskCompletionEvents information from DFS stored
  using store method.
  
  @param jobId       the jobId for which TaskCompletionEvents is queried
  @param fromEventId events offset
  @param maxEvents   max number of events
  @return TaskCompletionEvent[], empty array if not able to retrieve