001 /** 002 * Licensed to the Apache Software Foundation (ASF) under one 003 * or more contributor license agreements. See the NOTICE file 004 * distributed with this work for additional information 005 * regarding copyright ownership. The ASF licenses this file 006 * to you under the Apache License, Version 2.0 (the 007 * "License"); you may not use this file except in compliance 008 * with the License. You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software 013 * distributed under the License is distributed on an "AS IS" BASIS, 014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 015 * See the License for the specific language governing permissions and 016 * limitations under the License. 017 */ 018 019 package org.apache.hadoop.yarn.api.records; 020 021 import org.apache.hadoop.classification.InterfaceAudience.Private; 022 import org.apache.hadoop.classification.InterfaceAudience.Public; 023 import org.apache.hadoop.classification.InterfaceStability.Unstable; 024 import org.apache.hadoop.yarn.util.Records; 025 026 /** 027 * <p> 028 * <code>ApplicationAttemptReport</code> is a report of an application attempt. 029 * </p> 030 * 031 * <p> 032 * It includes details such as: 033 * <ul> 034 * <li>{@link ApplicationAttemptId} of the application.</li> 035 * <li>Host on which the <code>ApplicationMaster</code> of this attempt is 036 * running.</li> 037 * <li>RPC port of the <code>ApplicationMaster</code> of this attempt.</li> 038 * <li>Tracking URL.</li> 039 * <li>Diagnostic information in case of errors.</li> 040 * <li>{@link YarnApplicationAttemptState} of the application attempt.</li> 041 * <li>{@link ContainerId} of the master Container.</li> 042 * </ul> 043 * </p> 044 * 045 */ 046 @Public 047 @Unstable 048 public abstract class ApplicationAttemptReport { 049 050 @Private 051 @Unstable 052 public static ApplicationAttemptReport newInstance( 053 ApplicationAttemptId applicationAttemptId, String host, int rpcPort, 054 String url, String oUrl, String diagnostics, 055 YarnApplicationAttemptState state, ContainerId amContainerId) { 056 ApplicationAttemptReport report = 057 Records.newRecord(ApplicationAttemptReport.class); 058 report.setApplicationAttemptId(applicationAttemptId); 059 report.setHost(host); 060 report.setRpcPort(rpcPort); 061 report.setTrackingUrl(url); 062 report.setOriginalTrackingUrl(oUrl); 063 report.setDiagnostics(diagnostics); 064 report.setYarnApplicationAttemptState(state); 065 report.setAMContainerId(amContainerId); 066 return report; 067 } 068 069 /** 070 * Get the <em>YarnApplicationAttemptState</em> of the application attempt. 071 * 072 * @return <em>YarnApplicationAttemptState</em> of the application attempt 073 */ 074 @Public 075 @Unstable 076 public abstract YarnApplicationAttemptState getYarnApplicationAttemptState(); 077 078 @Private 079 @Unstable 080 public abstract void setYarnApplicationAttemptState( 081 YarnApplicationAttemptState yarnApplicationAttemptState); 082 083 /** 084 * Get the <em>RPC port</em> of this attempt <code>ApplicationMaster</code>. 085 * 086 * @return <em>RPC port</em> of this attempt <code>ApplicationMaster</code> 087 */ 088 @Public 089 @Unstable 090 public abstract int getRpcPort(); 091 092 @Private 093 @Unstable 094 public abstract void setRpcPort(int rpcPort); 095 096 /** 097 * Get the <em>host</em> on which this attempt of 098 * <code>ApplicationMaster</code> is running. 099 * 100 * @return <em>host</em> on which this attempt of 101 * <code>ApplicationMaster</code> is running 102 */ 103 @Public 104 @Unstable 105 public abstract String getHost(); 106 107 @Private 108 @Unstable 109 public abstract void setHost(String host); 110 111 /** 112 * Get the <em>diagnositic information</em> of the application attempt in case 113 * of errors. 114 * 115 * @return <em>diagnositic information</em> of the application attempt in case 116 * of errors 117 */ 118 @Public 119 @Unstable 120 public abstract String getDiagnostics(); 121 122 @Private 123 @Unstable 124 public abstract void setDiagnostics(String diagnostics); 125 126 /** 127 * Get the <em>tracking url</em> for the application attempt. 128 * 129 * @return <em>tracking url</em> for the application attempt 130 */ 131 @Public 132 @Unstable 133 public abstract String getTrackingUrl(); 134 135 @Private 136 @Unstable 137 public abstract void setTrackingUrl(String url); 138 139 /** 140 * Get the <em>original tracking url</em> for the application attempt. 141 * 142 * @return <em>original tracking url</em> for the application attempt 143 */ 144 @Public 145 @Unstable 146 public abstract String getOriginalTrackingUrl(); 147 148 @Private 149 @Unstable 150 public abstract void setOriginalTrackingUrl(String oUrl); 151 152 /** 153 * Get the <code>ApplicationAttemptId</code> of this attempt of the 154 * application 155 * 156 * @return <code>ApplicationAttemptId</code> of the attempt 157 */ 158 @Public 159 @Unstable 160 public abstract ApplicationAttemptId getApplicationAttemptId(); 161 162 @Private 163 @Unstable 164 public abstract void setApplicationAttemptId( 165 ApplicationAttemptId applicationAttemptId); 166 167 /** 168 * Get the <code>ContainerId</code> of AMContainer for this attempt 169 * 170 * @return <code>ContainerId</code> of the attempt 171 */ 172 @Public 173 @Unstable 174 public abstract ContainerId getAMContainerId(); 175 176 @Private 177 @Unstable 178 public abstract void setAMContainerId(ContainerId amContainerId); 179 }