| /** |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package org.apache.hadoop.mapreduce.v2.hs; |
| |
| import java.util.Map; |
| |
| import org.apache.hadoop.mapreduce.v2.api.records.JobId; |
| import org.apache.hadoop.mapreduce.v2.api.records.JobState; |
| import org.apache.hadoop.mapreduce.v2.app.job.Job; |
| import org.apache.hadoop.mapreduce.v2.hs.webapp.dao.JobsInfo; |
| import org.apache.hadoop.classification.InterfaceAudience; |
| import org.apache.hadoop.classification.InterfaceStability; |
| |
| /** |
| * Provides an API to query jobs that have finished. |
| * |
| * For those implementing this API be aware that there is no feedback when |
| * files are removed from HDFS. You may rely on HistoryFileManager to help |
| * you know when that has happened if you have not made a complete backup of |
| * the data stored on HDFS. |
| */ |
| @InterfaceAudience.Public |
| @InterfaceStability.Unstable |
| public interface HistoryStorage { |
| |
| /** |
| * Give the Storage a reference to a class that can be used to interact with |
| * history files. |
| * @param hsManager the class that is used to interact with history files. |
| */ |
| void setHistoryFileManager(HistoryFileManager hsManager); |
| |
| /** |
| * Look for a set of partial jobs. |
| * @param offset the offset into the list of jobs. |
| * @param count the maximum number of jobs to return. |
| * @param user only return jobs for the given user. |
| * @param queue only return jobs for in the given queue. |
| * @param sBegin only return Jobs that started on or after the given time. |
| * @param sEnd only return Jobs that started on or before the given time. |
| * @param fBegin only return Jobs that ended on or after the given time. |
| * @param fEnd only return Jobs that ended on or before the given time. |
| * @param jobState only return Jobs that are in the given job state. |
| * @return The list of filtered jobs. |
| */ |
| JobsInfo getPartialJobs(Long offset, Long count, String user, |
| String queue, Long sBegin, Long sEnd, Long fBegin, Long fEnd, |
| JobState jobState); |
| |
| /** |
| * Get all of the cached jobs. This only returns partial jobs and is here for |
| * legacy reasons. |
| * @return all of the cached jobs |
| */ |
| Map<JobId, Job> getAllPartialJobs(); |
| |
| /** |
| * Get a fully parsed job. |
| * @param jobId the id of the job |
| * @return the job, or null if it is not found. |
| */ |
| Job getFullJob(JobId jobId); |
| } |