YARN-3539. Updated timeline server documentation and marked REST APIs evolving. Contributed by Steve Loughran.

(cherry picked from commit fcd0702c10)

Conflicts:
	hadoop-yarn-project/CHANGES.txt
This commit is contained in:
Zhijie Shen 2015-05-12 21:12:18 -07:00
parent 0e68e304f7
commit 071e21cacd
25 changed files with 1798 additions and 145 deletions

View File

@ -169,6 +169,7 @@ REST API compatibility corresponds to both the request (URLs) and responses to e
* [NodeManager](../../hadoop-yarn/hadoop-yarn-site/NodeManagerRest.html) * [NodeManager](../../hadoop-yarn/hadoop-yarn-site/NodeManagerRest.html)
* [MR Application Master](../../hadoop-yarn/hadoop-yarn-site/MapredAppMasterRest.html) * [MR Application Master](../../hadoop-yarn/hadoop-yarn-site/MapredAppMasterRest.html)
* [History Server](../../hadoop-yarn/hadoop-yarn-site/HistoryServerRest.html) * [History Server](../../hadoop-yarn/hadoop-yarn-site/HistoryServerRest.html)
* [Timeline Server v1 REST API](../../hadoop-yarn/hadoop-yarn-site/TimelineServer.html)
#### Policy #### Policy

View File

@ -134,6 +134,7 @@
<item name="Introduction" href="hadoop-yarn/hadoop-yarn-site/WebServicesIntro.html"/> <item name="Introduction" href="hadoop-yarn/hadoop-yarn-site/WebServicesIntro.html"/>
<item name="Resource Manager" href="hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html"/> <item name="Resource Manager" href="hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html"/>
<item name="Node Manager" href="hadoop-yarn/hadoop-yarn-site/NodeManagerRest.html"/> <item name="Node Manager" href="hadoop-yarn/hadoop-yarn-site/NodeManagerRest.html"/>
<item name="Timeline Server" href="TimelineServer.html#Timeline_Server_REST_API_v1"/>
</menu> </menu>
<menu name="Hadoop Compatible File Systems" inherit="top"> <menu name="Hadoop Compatible File Systems" inherit="top">

View File

@ -11,6 +11,9 @@ Release 2.7.1 - UNRELEASED
YARN-3243. CapacityScheduler should pass headroom from parent to children YARN-3243. CapacityScheduler should pass headroom from parent to children
to make sure ParentQueue obey its capacity limits. (Wangda Tan via jianhe) to make sure ParentQueue obey its capacity limits. (Wangda Tan via jianhe)
YARN-3539. Updated timeline server documentation and marked REST APIs evolving.
(Steve Loughran via zjshen)
OPTIMIZATIONS OPTIMIZATIONS
YARN-3006. Improve the error message when attempting manual failover with YARN-3006. Improve the error message when attempting manual failover with

View File

@ -24,7 +24,7 @@ import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlRootElement;
import org.apache.hadoop.classification.InterfaceAudience.Public; import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.classification.InterfaceStability.Unstable; import org.apache.hadoop.classification.InterfaceStability.Evolving;
/** /**
* The response of delegation token related request * The response of delegation token related request
@ -32,7 +32,7 @@ import org.apache.hadoop.classification.InterfaceStability.Unstable;
@XmlRootElement(name = "delegationtoken") @XmlRootElement(name = "delegationtoken")
@XmlAccessorType(XmlAccessType.NONE) @XmlAccessorType(XmlAccessType.NONE)
@Public @Public
@Unstable @Evolving
public class TimelineDelegationTokenResponse { public class TimelineDelegationTokenResponse {
private String type; private String type;

View File

@ -24,7 +24,7 @@ import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlRootElement;
import org.apache.hadoop.classification.InterfaceAudience.Public; import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.classification.InterfaceStability.Unstable; import org.apache.hadoop.classification.InterfaceStability.Evolving;
/** /**
* <p> * <p>
@ -43,7 +43,7 @@ import org.apache.hadoop.classification.InterfaceStability.Unstable;
@XmlRootElement(name = "domain") @XmlRootElement(name = "domain")
@XmlAccessorType(XmlAccessType.NONE) @XmlAccessorType(XmlAccessType.NONE)
@Public @Public
@Unstable @Evolving
public class TimelineDomain { public class TimelineDomain {
private String id; private String id;

View File

@ -27,7 +27,7 @@ import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlRootElement;
import org.apache.hadoop.classification.InterfaceAudience.Public; import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.classification.InterfaceStability.Unstable; import org.apache.hadoop.classification.InterfaceStability.Evolving;
/** /**
* The class that hosts a list of timeline domains. * The class that hosts a list of timeline domains.
@ -35,7 +35,7 @@ import org.apache.hadoop.classification.InterfaceStability.Unstable;
@XmlRootElement(name = "domains") @XmlRootElement(name = "domains")
@XmlAccessorType(XmlAccessType.NONE) @XmlAccessorType(XmlAccessType.NONE)
@Public @Public
@Unstable @Evolving
public class TimelineDomains { public class TimelineDomains {
private List<TimelineDomain> domains = new ArrayList<TimelineDomain>(); private List<TimelineDomain> domains = new ArrayList<TimelineDomain>();

View File

@ -27,7 +27,7 @@ import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlRootElement;
import org.apache.hadoop.classification.InterfaceAudience.Public; import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.classification.InterfaceStability.Unstable; import org.apache.hadoop.classification.InterfaceStability.Evolving;
/** /**
* The class that hosts a list of timeline entities. * The class that hosts a list of timeline entities.
@ -35,7 +35,7 @@ import org.apache.hadoop.classification.InterfaceStability.Unstable;
@XmlRootElement(name = "entities") @XmlRootElement(name = "entities")
@XmlAccessorType(XmlAccessType.NONE) @XmlAccessorType(XmlAccessType.NONE)
@Public @Public
@Unstable @Evolving
public class TimelineEntities { public class TimelineEntities {
private List<TimelineEntity> entities = private List<TimelineEntity> entities =

View File

@ -33,7 +33,7 @@ import javax.xml.bind.annotation.XmlRootElement;
import org.apache.hadoop.classification.InterfaceAudience.Private; import org.apache.hadoop.classification.InterfaceAudience.Private;
import org.apache.hadoop.classification.InterfaceAudience.Public; import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.classification.InterfaceStability.Unstable; import org.apache.hadoop.classification.InterfaceStability.Evolving;
/** /**
* <p> * <p>
@ -52,7 +52,7 @@ import org.apache.hadoop.classification.InterfaceStability.Unstable;
@XmlRootElement(name = "entity") @XmlRootElement(name = "entity")
@XmlAccessorType(XmlAccessType.NONE) @XmlAccessorType(XmlAccessType.NONE)
@Public @Public
@Unstable @Evolving
public class TimelineEntity implements Comparable<TimelineEntity> { public class TimelineEntity implements Comparable<TimelineEntity> {
private String entityType; private String entityType;

View File

@ -28,7 +28,7 @@ import javax.xml.bind.annotation.XmlRootElement;
import org.apache.hadoop.classification.InterfaceAudience.Private; import org.apache.hadoop.classification.InterfaceAudience.Private;
import org.apache.hadoop.classification.InterfaceAudience.Public; import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.classification.InterfaceStability.Unstable; import org.apache.hadoop.classification.InterfaceStability.Evolving;
/** /**
* The class that contains the information of an event that is related to some * The class that contains the information of an event that is related to some
@ -39,7 +39,7 @@ import org.apache.hadoop.classification.InterfaceStability.Unstable;
@XmlRootElement(name = "event") @XmlRootElement(name = "event")
@XmlAccessorType(XmlAccessType.NONE) @XmlAccessorType(XmlAccessType.NONE)
@Public @Public
@Unstable @Evolving
public class TimelineEvent implements Comparable<TimelineEvent> { public class TimelineEvent implements Comparable<TimelineEvent> {
private long timestamp; private long timestamp;

View File

@ -27,7 +27,7 @@ import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlRootElement;
import org.apache.hadoop.classification.InterfaceAudience.Public; import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.classification.InterfaceStability.Unstable; import org.apache.hadoop.classification.InterfaceStability.Evolving;
/** /**
* The class that hosts a list of events, which are categorized according to * The class that hosts a list of events, which are categorized according to
@ -36,7 +36,7 @@ import org.apache.hadoop.classification.InterfaceStability.Unstable;
@XmlRootElement(name = "events") @XmlRootElement(name = "events")
@XmlAccessorType(XmlAccessType.NONE) @XmlAccessorType(XmlAccessType.NONE)
@Public @Public
@Unstable @Evolving
public class TimelineEvents { public class TimelineEvents {
private List<EventsOfOneEntity> allEvents = private List<EventsOfOneEntity> allEvents =
@ -93,7 +93,7 @@ public class TimelineEvents {
@XmlRootElement(name = "events") @XmlRootElement(name = "events")
@XmlAccessorType(XmlAccessType.NONE) @XmlAccessorType(XmlAccessType.NONE)
@Public @Public
@Unstable @Evolving
public static class EventsOfOneEntity { public static class EventsOfOneEntity {
private String entityId; private String entityId;

View File

@ -18,7 +18,7 @@
package org.apache.hadoop.yarn.api.records.timeline; package org.apache.hadoop.yarn.api.records.timeline;
import org.apache.hadoop.classification.InterfaceAudience.Public; import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.classification.InterfaceStability.Unstable; import org.apache.hadoop.classification.InterfaceStability.Evolving;
import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAccessorType;
@ -36,7 +36,7 @@ import java.util.List;
@XmlRootElement(name = "response") @XmlRootElement(name = "response")
@XmlAccessorType(XmlAccessType.NONE) @XmlAccessorType(XmlAccessType.NONE)
@Public @Public
@Unstable @Evolving
public class TimelinePutResponse { public class TimelinePutResponse {
private List<TimelinePutError> errors = new ArrayList<TimelinePutError>(); private List<TimelinePutError> errors = new ArrayList<TimelinePutError>();
@ -92,7 +92,7 @@ public class TimelinePutResponse {
@XmlRootElement(name = "error") @XmlRootElement(name = "error")
@XmlAccessorType(XmlAccessType.NONE) @XmlAccessorType(XmlAccessType.NONE)
@Public @Public
@Unstable @Evolving
public static class TimelinePutError { public static class TimelinePutError {
/** /**

View File

@ -16,6 +16,8 @@
* limitations under the License. * limitations under the License.
*/ */
@InterfaceAudience.Public @InterfaceAudience.Public
@InterfaceStability.Evolving
package org.apache.hadoop.yarn.api.records.timeline; package org.apache.hadoop.yarn.api.records.timeline;
import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.classification.InterfaceStability;

View File

@ -22,7 +22,7 @@ import java.io.IOException;
import org.apache.hadoop.classification.InterfaceAudience.Private; import org.apache.hadoop.classification.InterfaceAudience.Private;
import org.apache.hadoop.classification.InterfaceAudience.Public; import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.classification.InterfaceStability.Unstable; import org.apache.hadoop.classification.InterfaceStability.Evolving;
import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.security.UserGroupInformation;
import org.apache.hadoop.security.token.Token; import org.apache.hadoop.security.token.Token;
import org.apache.hadoop.service.AbstractService; import org.apache.hadoop.service.AbstractService;
@ -38,7 +38,7 @@ import org.apache.hadoop.yarn.security.client.TimelineDelegationTokenIdentifier;
* number of conceptual entities. * number of conceptual entities.
*/ */
@Public @Public
@Unstable @Evolving
public abstract class TimelineClient extends AbstractService { public abstract class TimelineClient extends AbstractService {
/** /**

View File

@ -43,7 +43,7 @@ import org.apache.commons.cli.Options;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.classification.InterfaceAudience.Private; import org.apache.hadoop.classification.InterfaceAudience.Private;
import org.apache.hadoop.classification.InterfaceStability.Unstable; import org.apache.hadoop.classification.InterfaceStability.Evolving;
import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.security.UserGroupInformation;
import org.apache.hadoop.security.SecurityUtil; import org.apache.hadoop.security.SecurityUtil;
@ -83,7 +83,7 @@ import com.sun.jersey.client.urlconnection.HttpURLConnectionFactory;
import com.sun.jersey.client.urlconnection.URLConnectionClientHandler; import com.sun.jersey.client.urlconnection.URLConnectionClientHandler;
@Private @Private
@Unstable @Evolving
public class TimelineClientImpl extends TimelineClient { public class TimelineClientImpl extends TimelineClient {
private static final Log LOG = LogFactory.getLog(TimelineClientImpl.class); private static final Log LOG = LogFactory.getLog(TimelineClientImpl.class);

View File

@ -16,6 +16,8 @@
* limitations under the License. * limitations under the License.
*/ */
@InterfaceAudience.Public @InterfaceAudience.Public
@InterfaceStability.Evolving
package org.apache.hadoop.yarn.client.api.impl; package org.apache.hadoop.yarn.client.api.impl;
import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.classification.InterfaceStability;

View File

@ -16,6 +16,8 @@
* limitations under the License. * limitations under the License.
*/ */
@InterfaceAudience.Public @InterfaceAudience.Public
@InterfaceStability.Evolving
package org.apache.hadoop.yarn.client.api; package org.apache.hadoop.yarn.client.api;
import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.classification.InterfaceStability;

View File

@ -22,7 +22,7 @@ import java.io.IOException;
import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.classification.InterfaceAudience.Public; import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.classification.InterfaceStability.Unstable; import org.apache.hadoop.classification.InterfaceStability.Evolving;
import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.io.Text; import org.apache.hadoop.io.Text;
import org.apache.hadoop.security.token.Token; import org.apache.hadoop.security.token.Token;
@ -31,7 +31,7 @@ import org.apache.hadoop.yarn.client.api.TimelineClient;
import org.apache.hadoop.yarn.exceptions.YarnException; import org.apache.hadoop.yarn.exceptions.YarnException;
@Public @Public
@Unstable @Evolving
public class TimelineDelegationTokenIdentifier extends YARNDelegationTokenIdentifier { public class TimelineDelegationTokenIdentifier extends YARNDelegationTokenIdentifier {
public static final Text KIND_NAME = new Text("TIMELINE_DELEGATION_TOKEN"); public static final Text KIND_NAME = new Text("TIMELINE_DELEGATION_TOKEN");

View File

@ -23,14 +23,14 @@ import java.util.Collection;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.classification.InterfaceAudience.Public; import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.classification.InterfaceStability.Unstable; import org.apache.hadoop.classification.InterfaceStability.Evolving;
import org.apache.hadoop.io.Text; import org.apache.hadoop.io.Text;
import org.apache.hadoop.security.token.Token; import org.apache.hadoop.security.token.Token;
import org.apache.hadoop.security.token.TokenIdentifier; import org.apache.hadoop.security.token.TokenIdentifier;
import org.apache.hadoop.security.token.TokenSelector; import org.apache.hadoop.security.token.TokenSelector;
@Public @Public
@Unstable @Evolving
public class TimelineDelegationTokenSelector public class TimelineDelegationTokenSelector
implements TokenSelector<TimelineDelegationTokenIdentifier> { implements TokenSelector<TimelineDelegationTokenIdentifier> {

View File

@ -22,9 +22,14 @@ import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlRootElement;
import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.classification.InterfaceStability.Evolving;
import org.apache.hadoop.yarn.api.records.ApplicationAttemptReport; import org.apache.hadoop.yarn.api.records.ApplicationAttemptReport;
import org.apache.hadoop.yarn.api.records.YarnApplicationAttemptState; import org.apache.hadoop.yarn.api.records.YarnApplicationAttemptState;
@Public
@Evolving
@XmlRootElement(name = "appAttempt") @XmlRootElement(name = "appAttempt")
@XmlAccessorType(XmlAccessType.FIELD) @XmlAccessorType(XmlAccessType.FIELD)
public class AppAttemptInfo { public class AppAttemptInfo {

View File

@ -24,6 +24,11 @@ import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlRootElement;
import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.classification.InterfaceStability.Evolving;
@Public
@Evolving
@XmlRootElement(name = "appAttempts") @XmlRootElement(name = "appAttempts")
@XmlAccessorType(XmlAccessType.FIELD) @XmlAccessorType(XmlAccessType.FIELD)
public class AppAttemptsInfo { public class AppAttemptsInfo {

View File

@ -24,11 +24,16 @@ import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlRootElement;
import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.classification.InterfaceStability.Evolving;
import org.apache.hadoop.yarn.api.records.ApplicationReport; import org.apache.hadoop.yarn.api.records.ApplicationReport;
import org.apache.hadoop.yarn.api.records.FinalApplicationStatus; import org.apache.hadoop.yarn.api.records.FinalApplicationStatus;
import org.apache.hadoop.yarn.api.records.YarnApplicationState; import org.apache.hadoop.yarn.api.records.YarnApplicationState;
import org.apache.hadoop.yarn.util.Times; import org.apache.hadoop.yarn.util.Times;
@Public
@Evolving
@XmlRootElement(name = "app") @XmlRootElement(name = "app")
@XmlAccessorType(XmlAccessType.FIELD) @XmlAccessorType(XmlAccessType.FIELD)
public class AppInfo { public class AppInfo {

View File

@ -17,17 +17,22 @@
*/ */
package org.apache.hadoop.yarn.server.webapp.dao; package org.apache.hadoop.yarn.server.webapp.dao;
import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.classification.InterfaceStability.Evolving;
import java.util.ArrayList; import java.util.ArrayList;
import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlRootElement;
@Public
@Evolving
@XmlRootElement(name = "apps") @XmlRootElement(name = "apps")
@XmlAccessorType(XmlAccessType.FIELD) @XmlAccessorType(XmlAccessType.FIELD)
public class AppsInfo { public class AppsInfo {
protected ArrayList<AppInfo> app = new ArrayList<AppInfo>(); protected ArrayList<AppInfo> app = new ArrayList<>();
public AppsInfo() { public AppsInfo() {
// JAXB needs this // JAXB needs this

View File

@ -22,10 +22,15 @@ import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlRootElement;
import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.classification.InterfaceStability.Evolving;
import org.apache.hadoop.yarn.api.records.ContainerReport; import org.apache.hadoop.yarn.api.records.ContainerReport;
import org.apache.hadoop.yarn.api.records.ContainerState; import org.apache.hadoop.yarn.api.records.ContainerState;
import org.apache.hadoop.yarn.util.Times; import org.apache.hadoop.yarn.util.Times;
@Public
@Evolving
@XmlRootElement(name = "container") @XmlRootElement(name = "container")
@XmlAccessorType(XmlAccessType.FIELD) @XmlAccessorType(XmlAccessType.FIELD)
public class ContainerInfo { public class ContainerInfo {

View File

@ -23,6 +23,11 @@ import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlRootElement;
import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.classification.InterfaceStability.Evolving;
@Public
@Evolving
@XmlRootElement(name = "containers") @XmlRootElement(name = "containers")
@XmlAccessorType(XmlAccessType.FIELD) @XmlAccessorType(XmlAccessType.FIELD)
public class ContainersInfo { public class ContainersInfo {