diff --git a/hadoop-mapreduce-project/CHANGES.txt b/hadoop-mapreduce-project/CHANGES.txt
index 7fa5c9e7d8..866afcb6d4 100644
--- a/hadoop-mapreduce-project/CHANGES.txt
+++ b/hadoop-mapreduce-project/CHANGES.txt
@@ -389,6 +389,9 @@ Release 2.0.5-beta - UNRELEASED
MAPREDUCE-5209. Fix units in a ShuffleScheduler log message.
(Tsuyoshi OZAWA via cdouglas)
+ MAPREDUCE-5212. Handling YarnRemoteException separately from IOException in
+ MR App after YARN-631. (Xuan Gong via vinodkv)
+
Release 2.0.4-alpha - 2013-04-25
INCOMPATIBLE CHANGES
diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/main/java/org/apache/hadoop/mapred/ClientServiceDelegate.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/main/java/org/apache/hadoop/mapred/ClientServiceDelegate.java
index 303f3456e6..cea4364d6a 100644
--- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/main/java/org/apache/hadoop/mapred/ClientServiceDelegate.java
+++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/main/java/org/apache/hadoop/mapred/ClientServiceDelegate.java
@@ -137,7 +137,7 @@ private NotRunningJob getNotRunningJob(ApplicationReport applicationReport,
}
}
- private MRClientProtocol getProxy() throws YarnRemoteException {
+ private MRClientProtocol getProxy() throws YarnRemoteException, IOException {
if (realProxy != null) {
return realProxy;
}
diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/TestClientServiceDelegate.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/TestClientServiceDelegate.java
index 982a7e1875..da65708fbd 100644
--- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/TestClientServiceDelegate.java
+++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/TestClientServiceDelegate.java
@@ -362,7 +362,7 @@ public void testRMDownRestoreForJobStatusBeforeGetAMReport()
}
private void testRMDownForJobStatusBeforeGetAMReport(Configuration conf,
- int noOfRetries) throws YarnRemoteException {
+ int noOfRetries) throws YarnRemoteException, IOException {
conf.set(MRConfig.FRAMEWORK_NAME, MRConfig.YARN_FRAMEWORK_NAME);
conf.setBoolean(MRJobConfig.JOB_AM_ACCESS_DISABLED,
!isAMReachableFromClient);
@@ -429,7 +429,8 @@ private ApplicationReport getRunningApplicationReport(String host, int port) {
"N/A", 0.0f);
}
- private ResourceMgrDelegate getRMDelegate() throws YarnRemoteException {
+ private ResourceMgrDelegate getRMDelegate() throws YarnRemoteException,
+ IOException {
ResourceMgrDelegate rm = mock(ResourceMgrDelegate.class);
when(rm.getApplicationReport(jobId.getAppId())).thenReturn(null);
return rm;
diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt
index 90bffa6d5d..253bea82f8 100644
--- a/hadoop-yarn-project/CHANGES.txt
+++ b/hadoop-yarn-project/CHANGES.txt
@@ -118,6 +118,9 @@ Release 2.0.5-beta - UNRELEASED
YARN-632. Changed ContainerManager api to throw IOException and
YarnRemoteException. (Xuan Gong via vinodkv)
+ YARN-631. Changed ClientRMProtocol api to throw IOException and
+ YarnRemoteException. (Xuan Gong via vinodkv)
+
NEW FEATURES
YARN-482. FS: Extend SchedulingMode to intermediate queues.
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/ClientRMProtocol.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/ClientRMProtocol.java
index bfb4fce563..5824952f4a 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/ClientRMProtocol.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/ClientRMProtocol.java
@@ -18,6 +18,8 @@
package org.apache.hadoop.yarn.api;
+import java.io.IOException;
+
import org.apache.hadoop.classification.InterfaceAudience.Private;
import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.classification.InterfaceStability.Stable;
@@ -78,11 +80,12 @@ public interface ClientRMProtocol {
* @return response containing the new ApplicationId
to be used
* to submit an application
* @throws YarnRemoteException
+ * @throws IOException
* @see #submitApplication(SubmitApplicationRequest)
*/
public GetNewApplicationResponse getNewApplication(
GetNewApplicationRequest request)
- throws YarnRemoteException;
+ throws YarnRemoteException, IOException;
/**
*
The interface used by clients to submit a new application to the
@@ -106,11 +109,12 @@ public GetNewApplicationResponse getNewApplication(
* @param request request to submit a new application
* @return (empty) response on accepting the submission
* @throws YarnRemoteException
+ * @throws IOException
* @see #getNewApplication(GetNewApplicationRequest)
*/
public SubmitApplicationResponse submitApplication(
SubmitApplicationRequest request)
- throws YarnRemoteException;
+ throws YarnRemoteException, IOException;
/**
*
The interface used by clients to request the
@@ -129,11 +133,12 @@ public SubmitApplicationResponse submitApplication(
* @return ResourceManager
returns an empty response
* on success and throws an exception on rejecting the request
* @throws YarnRemoteException
+ * @throws IOException
* @see #getQueueUserAcls(GetQueueUserAclsInfoRequest)
*/
public KillApplicationResponse forceKillApplication(
KillApplicationRequest request)
- throws YarnRemoteException;
+ throws YarnRemoteException, IOException;
/**
*
The interface used by clients to get a report of an Application from
@@ -164,10 +169,11 @@ public KillApplicationResponse forceKillApplication(
* @param request request for an application report
* @return application report
* @throws YarnRemoteException
+ * @throws IOException
*/
public GetApplicationReportResponse getApplicationReport(
GetApplicationReportRequest request)
- throws YarnRemoteException;
+ throws YarnRemoteException, IOException;
/**
*
The interface used by clients to get metrics about the cluster from
@@ -181,10 +187,11 @@ public GetApplicationReportResponse getApplicationReport(
* @param request request for cluster metrics
* @return cluster metrics
* @throws YarnRemoteException
+ * @throws IOException
*/
public GetClusterMetricsResponse getClusterMetrics(
GetClusterMetricsRequest request)
- throws YarnRemoteException;
+ throws YarnRemoteException, IOException;
/**
*
The interface used by clients to get a report of all Applications
@@ -202,10 +209,11 @@ public GetClusterMetricsResponse getClusterMetrics(
* @param request request for report on all running applications
* @return report on all running applications
* @throws YarnRemoteException
+ * @throws IOException
*/
public GetAllApplicationsResponse getAllApplications(
GetAllApplicationsRequest request)
- throws YarnRemoteException;
+ throws YarnRemoteException, IOException;
/**
*
The interface used by clients to get a report of all nodes
@@ -218,10 +226,11 @@ public GetAllApplicationsResponse getAllApplications(
* @param request request for report on all nodes
* @return report on all nodes
* @throws YarnRemoteException
+ * @throws IOException
*/
public GetClusterNodesResponse getClusterNodes(
GetClusterNodesRequest request)
- throws YarnRemoteException;
+ throws YarnRemoteException, IOException;
/**
*
The interface used by clients to get information about queues
@@ -236,10 +245,11 @@ public GetClusterNodesResponse getClusterNodes(
* @param request request to get queue information
* @return queue information
* @throws YarnRemoteException
+ * @throws IOException
*/
public GetQueueInfoResponse getQueueInfo(
GetQueueInfoRequest request)
- throws YarnRemoteException;
+ throws YarnRemoteException, IOException;
/**
*
The interface used by clients to get information about queue
@@ -252,10 +262,11 @@ public GetQueueInfoResponse getQueueInfo(
* @param request request to get queue acls for current user
* @return queue acls for current user
* @throws YarnRemoteException
+ * @throws IOException
*/
public GetQueueUserAclsInfoResponse getQueueUserAcls(
GetQueueUserAclsInfoRequest request)
- throws YarnRemoteException;
+ throws YarnRemoteException, IOException;
/**
* The interface used by clients to get delegation token, enabling the
@@ -267,10 +278,11 @@ public GetQueueUserAclsInfoResponse getQueueUserAcls(
* @param request request to get a delegation token for the client.
* @return delegation token that can be used to talk to this service
* @throws YarnRemoteException
+ * @throws IOException
*/
public GetDelegationTokenResponse getDelegationToken(
GetDelegationTokenRequest request)
- throws YarnRemoteException;
+ throws YarnRemoteException, IOException;
/**
* Renew an existing delegation token.
@@ -278,10 +290,12 @@ public GetDelegationTokenResponse getDelegationToken(
* @param request the delegation token to be renewed.
* @return the new expiry time for the delegation token.
* @throws YarnRemoteException
+ * @throws IOException
*/
@Private
public RenewDelegationTokenResponse renewDelegationToken(
- RenewDelegationTokenRequest request) throws YarnRemoteException;
+ RenewDelegationTokenRequest request) throws YarnRemoteException,
+ IOException;
/**
* Cancel an existing delegation token.
@@ -289,8 +303,10 @@ public RenewDelegationTokenResponse renewDelegationToken(
* @param request the delegation token to be cancelled.
* @return an empty response.
* @throws YarnRemoteException
+ * @throws IOException
*/
@Private
public CancelDelegationTokenResponse cancelDelegationToken(
- CancelDelegationTokenRequest request) throws YarnRemoteException;
+ CancelDelegationTokenRequest request) throws YarnRemoteException,
+ IOException;
}
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-distributedshell/src/main/java/org/apache/hadoop/yarn/applications/distributedshell/Client.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-distributedshell/src/main/java/org/apache/hadoop/yarn/applications/distributedshell/Client.java
index 927dfe3209..8cbf2de05e 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-distributedshell/src/main/java/org/apache/hadoop/yarn/applications/distributedshell/Client.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-distributedshell/src/main/java/org/apache/hadoop/yarn/applications/distributedshell/Client.java
@@ -592,8 +592,10 @@ else if (amMemory > maxMem) {
* @param appId Application Id of application to be monitored
* @return true if application completed successfully
* @throws YarnRemoteException
+ * @throws IOException
*/
- private boolean monitorApplication(ApplicationId appId) throws YarnRemoteException {
+ private boolean monitorApplication(ApplicationId appId)
+ throws YarnRemoteException, IOException {
while (true) {
@@ -655,8 +657,10 @@ else if (YarnApplicationState.KILLED == state
* Kill a submitted application by sending a call to the ASM
* @param appId Application Id to be killed.
* @throws YarnRemoteException
+ * @throws IOException
*/
- private void forceKillApplication(ApplicationId appId) throws YarnRemoteException {
+ private void forceKillApplication(ApplicationId appId)
+ throws YarnRemoteException, IOException {
// TODO clarify whether multiple jobs with the same app id can be submitted and be running at
// the same time.
// If yes, can we kill a particular attempt only?
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-unmanaged-am-launcher/src/main/java/org/apache/hadoop/yarn/applications/unmanagedamlauncher/UnmanagedAMLauncher.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-unmanaged-am-launcher/src/main/java/org/apache/hadoop/yarn/applications/unmanagedamlauncher/UnmanagedAMLauncher.java
index f05eca656d..5805e2bead 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-unmanaged-am-launcher/src/main/java/org/apache/hadoop/yarn/applications/unmanagedamlauncher/UnmanagedAMLauncher.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-unmanaged-am-launcher/src/main/java/org/apache/hadoop/yarn/applications/unmanagedamlauncher/UnmanagedAMLauncher.java
@@ -357,9 +357,11 @@ public boolean run() throws IOException, YarnRemoteException {
* Application Id of application to be monitored
* @return true if application completed successfully
* @throws YarnRemoteException
+ * @throws IOException
*/
private ApplicationReport monitorApplication(ApplicationId appId,
- Set finalState) throws YarnRemoteException {
+ Set finalState) throws YarnRemoteException,
+ IOException {
long foundAMCompletedTime = 0;
final int timeToWaitMS = 10000;
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/YarnClient.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/YarnClient.java
index afd21d096a..adbcf677e6 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/YarnClient.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/YarnClient.java
@@ -18,6 +18,7 @@
package org.apache.hadoop.yarn.client;
+import java.io.IOException;
import java.util.List;
import org.apache.hadoop.classification.InterfaceAudience;
@@ -58,8 +59,10 @@ public interface YarnClient extends Service {
* @return response containing the new ApplicationId
to be used
* to submit an application
* @throws YarnRemoteException
+ * @throws IOException
*/
- GetNewApplicationResponse getNewApplication() throws YarnRemoteException;
+ GetNewApplicationResponse getNewApplication() throws YarnRemoteException,
+ IOException;
/**
*
@@ -73,10 +76,11 @@ public interface YarnClient extends Service {
* needed to submit a new application
* @return {@link ApplicationId} of the accepted application
* @throws YarnRemoteException
+ * @throws IOException
* @see #getNewApplication()
*/
ApplicationId submitApplication(ApplicationSubmissionContext appContext)
- throws YarnRemoteException;
+ throws YarnRemoteException, IOException;
/**
*
@@ -88,9 +92,11 @@ ApplicationId submitApplication(ApplicationSubmissionContext appContext)
* @throws YarnRemoteException
* in case of errors or if YARN rejects the request due to
* access-control restrictions.
+ * @throws IOException
* @see #getQueueAclsInfo()
*/
- void killApplication(ApplicationId applicationId) throws YarnRemoteException;
+ void killApplication(ApplicationId applicationId) throws YarnRemoteException,
+ IOException;
/**
*
@@ -120,9 +126,10 @@ ApplicationId submitApplication(ApplicationSubmissionContext appContext)
* {@link ApplicationId} of the application that needs a report
* @return application report
* @throws YarnRemoteException
+ * @throws IOException
*/
ApplicationReport getApplicationReport(ApplicationId appId)
- throws YarnRemoteException;
+ throws YarnRemoteException, IOException;
/**
*
@@ -137,8 +144,10 @@ ApplicationReport getApplicationReport(ApplicationId appId)
*
* @return a list of reports of all running applications
* @throws YarnRemoteException
+ * @throws IOException
*/
- List getApplicationList() throws YarnRemoteException;
+ List getApplicationList() throws YarnRemoteException,
+ IOException;
/**
*
@@ -147,8 +156,10 @@ ApplicationReport getApplicationReport(ApplicationId appId)
*
* @return cluster metrics
* @throws YarnRemoteException
+ * @throws IOException
*/
- YarnClusterMetrics getYarnClusterMetrics() throws YarnRemoteException;
+ YarnClusterMetrics getYarnClusterMetrics() throws YarnRemoteException,
+ IOException;
/**
*
@@ -157,8 +168,9 @@ ApplicationReport getApplicationReport(ApplicationId appId)
*
* @return A list of report of all nodes
* @throws YarnRemoteException
+ * @throws IOException
*/
- List getNodeReports() throws YarnRemoteException;
+ List getNodeReports() throws YarnRemoteException, IOException;
/**
*
@@ -170,8 +182,10 @@ ApplicationReport getApplicationReport(ApplicationId appId)
* @return a delegation token ({@link DelegationToken}) that can be used to
* talk to YARN
* @throws YarnRemoteException
+ * @throws IOException
*/
- DelegationToken getRMDelegationToken(Text renewer) throws YarnRemoteException;
+ DelegationToken getRMDelegationToken(Text renewer)
+ throws YarnRemoteException, IOException;
/**
*
@@ -184,8 +198,10 @@ ApplicationReport getApplicationReport(ApplicationId appId)
* @throws YarnRemoteException
* in case of errors or if YARN rejects the request due to
* access-control restrictions.
+ * @throws IOException
*/
- QueueInfo getQueueInfo(String queueName) throws YarnRemoteException;
+ QueueInfo getQueueInfo(String queueName) throws YarnRemoteException,
+ IOException;
/**
*
@@ -195,8 +211,9 @@ ApplicationReport getApplicationReport(ApplicationId appId)
*
* @return a list of queue-information for all queues
* @throws YarnRemoteException
+ * @throws IOException
*/
- List getAllQueues() throws YarnRemoteException;
+ List getAllQueues() throws YarnRemoteException, IOException;
/**
*
@@ -205,8 +222,9 @@ ApplicationReport getApplicationReport(ApplicationId appId)
*
* @return a list of queue-information for all the top-level queues
* @throws YarnRemoteException
+ * @throws IOException
*/
- List getRootQueueInfos() throws YarnRemoteException;
+ List getRootQueueInfos() throws YarnRemoteException, IOException;
/**
*
@@ -219,8 +237,10 @@ ApplicationReport getApplicationReport(ApplicationId appId)
* @return a list of queue-information for all queues who are direct children
* of the given parent queue.
* @throws YarnRemoteException
+ * @throws IOException
*/
- List getChildQueueInfos(String parent) throws YarnRemoteException;
+ List getChildQueueInfos(String parent) throws YarnRemoteException,
+ IOException;
/**
*
@@ -231,6 +251,8 @@ ApplicationReport getApplicationReport(ApplicationId appId)
* @return a list of queue acls ({@link QueueUserACLInfo}) for
* current user
* @throws YarnRemoteException
+ * @throws IOException
*/
- List getQueueAclsInfo() throws YarnRemoteException;
+ List getQueueAclsInfo() throws YarnRemoteException,
+ IOException;
}
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/YarnClientImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/YarnClientImpl.java
index 6be9052994..556cb357a0 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/YarnClientImpl.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/YarnClientImpl.java
@@ -18,6 +18,7 @@
package org.apache.hadoop.yarn.client;
+import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.ArrayList;
import java.util.List;
@@ -121,7 +122,7 @@ public synchronized void stop() {
@Override
public GetNewApplicationResponse getNewApplication()
- throws YarnRemoteException {
+ throws YarnRemoteException, IOException {
GetNewApplicationRequest request =
Records.newRecord(GetNewApplicationRequest.class);
return rmClient.getNewApplication(request);
@@ -130,7 +131,7 @@ public GetNewApplicationResponse getNewApplication()
@Override
public ApplicationId
submitApplication(ApplicationSubmissionContext appContext)
- throws YarnRemoteException {
+ throws YarnRemoteException, IOException {
ApplicationId applicationId = appContext.getApplicationId();
appContext.setApplicationId(applicationId);
SubmitApplicationRequest request =
@@ -167,7 +168,7 @@ public GetNewApplicationResponse getNewApplication()
@Override
public void killApplication(ApplicationId applicationId)
- throws YarnRemoteException {
+ throws YarnRemoteException, IOException {
LOG.info("Killing application " + applicationId);
KillApplicationRequest request =
Records.newRecord(KillApplicationRequest.class);
@@ -177,7 +178,7 @@ public void killApplication(ApplicationId applicationId)
@Override
public ApplicationReport getApplicationReport(ApplicationId appId)
- throws YarnRemoteException {
+ throws YarnRemoteException, IOException {
GetApplicationReportRequest request =
Records.newRecord(GetApplicationReportRequest.class);
request.setApplicationId(appId);
@@ -188,7 +189,7 @@ public ApplicationReport getApplicationReport(ApplicationId appId)
@Override
public List getApplicationList()
- throws YarnRemoteException {
+ throws YarnRemoteException, IOException {
GetAllApplicationsRequest request =
Records.newRecord(GetAllApplicationsRequest.class);
GetAllApplicationsResponse response = rmClient.getAllApplications(request);
@@ -196,7 +197,8 @@ public List getApplicationList()
}
@Override
- public YarnClusterMetrics getYarnClusterMetrics() throws YarnRemoteException {
+ public YarnClusterMetrics getYarnClusterMetrics() throws YarnRemoteException,
+ IOException {
GetClusterMetricsRequest request =
Records.newRecord(GetClusterMetricsRequest.class);
GetClusterMetricsResponse response = rmClient.getClusterMetrics(request);
@@ -204,7 +206,8 @@ public YarnClusterMetrics getYarnClusterMetrics() throws YarnRemoteException {
}
@Override
- public List getNodeReports() throws YarnRemoteException {
+ public List getNodeReports() throws YarnRemoteException,
+ IOException {
GetClusterNodesRequest request =
Records.newRecord(GetClusterNodesRequest.class);
GetClusterNodesResponse response = rmClient.getClusterNodes(request);
@@ -213,7 +216,7 @@ public List getNodeReports() throws YarnRemoteException {
@Override
public DelegationToken getRMDelegationToken(Text renewer)
- throws YarnRemoteException {
+ throws YarnRemoteException, IOException {
/* get the token from RM */
GetDelegationTokenRequest rmDTRequest =
Records.newRecord(GetDelegationTokenRequest.class);
@@ -236,7 +239,8 @@ public DelegationToken getRMDelegationToken(Text renewer)
}
@Override
- public QueueInfo getQueueInfo(String queueName) throws YarnRemoteException {
+ public QueueInfo getQueueInfo(String queueName) throws YarnRemoteException,
+ IOException {
GetQueueInfoRequest request =
getQueueInfoRequest(queueName, true, false, false);
Records.newRecord(GetQueueInfoRequest.class);
@@ -244,14 +248,16 @@ public QueueInfo getQueueInfo(String queueName) throws YarnRemoteException {
}
@Override
- public List getQueueAclsInfo() throws YarnRemoteException {
+ public List getQueueAclsInfo() throws YarnRemoteException,
+ IOException {
GetQueueUserAclsInfoRequest request =
Records.newRecord(GetQueueUserAclsInfoRequest.class);
return rmClient.getQueueUserAcls(request).getUserAclsInfoList();
}
@Override
- public List getAllQueues() throws YarnRemoteException {
+ public List getAllQueues() throws YarnRemoteException,
+ IOException {
List queues = new ArrayList();
QueueInfo rootQueue =
@@ -262,7 +268,8 @@ public List getAllQueues() throws YarnRemoteException {
}
@Override
- public List getRootQueueInfos() throws YarnRemoteException {
+ public List getRootQueueInfos() throws YarnRemoteException,
+ IOException {
List queues = new ArrayList();
QueueInfo rootQueue =
@@ -274,7 +281,7 @@ public List getRootQueueInfos() throws YarnRemoteException {
@Override
public List getChildQueueInfos(String parent)
- throws YarnRemoteException {
+ throws YarnRemoteException, IOException {
List queues = new ArrayList();
QueueInfo parentQueue =
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/ApplicationCLI.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/ApplicationCLI.java
index 5797e341da..1f1703b433 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/ApplicationCLI.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/ApplicationCLI.java
@@ -91,8 +91,9 @@ private void printUsage(Options opts) {
* Lists all the applications present in the Resource Manager
*
* @throws YarnRemoteException
+ * @throws IOException
*/
- private void listAllApplications() throws YarnRemoteException {
+ private void listAllApplications() throws YarnRemoteException, IOException {
PrintWriter writer = new PrintWriter(sysout);
List appsReport = client.getApplicationList();
@@ -117,8 +118,10 @@ private void listAllApplications() throws YarnRemoteException {
*
* @param applicationId
* @throws YarnRemoteException
+ * @throws IOException
*/
- private void killApplication(String applicationId) throws YarnRemoteException {
+ private void killApplication(String applicationId)
+ throws YarnRemoteException, IOException {
ApplicationId appId = ConverterUtils.toApplicationId(applicationId);
sysout.println("Killing application " + applicationId);
client.killApplication(appId);
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
index 943a673e4d..83033ae3fd 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/NodeCLI.java
@@ -84,8 +84,9 @@ private void printUsage(Options opts) {
* Lists all the nodes present in the cluster
*
* @throws YarnRemoteException
+ * @throws IOException
*/
- private void listClusterNodes() throws YarnRemoteException {
+ private void listClusterNodes() throws YarnRemoteException, IOException {
PrintWriter writer = new PrintWriter(sysout);
List nodesReport = client.getNodeReports();
writer.println("Total Nodes:" + nodesReport.size());
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/TestAMRMClient.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/TestAMRMClient.java
index a4d65db032..e886c67e65 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/TestAMRMClient.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/TestAMRMClient.java
@@ -23,6 +23,7 @@
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import java.io.IOException;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
@@ -69,7 +70,7 @@ public class TestAMRMClient {
int nodeCount = 3;
@Before
- public void setup() throws YarnRemoteException {
+ public void setup() throws YarnRemoteException, IOException {
// start minicluster
conf = new YarnConfiguration();
yarnCluster = new MiniYARNCluster(TestAMRMClient.class.getName(), nodeCount, 1, 1);
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/TestYarnClient.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/TestYarnClient.java
index ccfc8d9956..098c7d4772 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/TestYarnClient.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/TestYarnClient.java
@@ -23,6 +23,9 @@
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+
+import java.io.IOException;
+
import junit.framework.Assert;
import org.apache.hadoop.conf.Configuration;
@@ -89,6 +92,8 @@ public void testSubmitApplication() {
client.submitApplication(context);
} catch (YarnRemoteException e) {
Assert.fail("Exception is not expected.");
+ } catch (IOException e) {
+ Assert.fail("Exception is not expected.");
}
verify(((MockYarnClient) client).mockReport,times(4 * i + 4))
.getYarnApplicationState();
@@ -115,6 +120,8 @@ public void start() {
GetApplicationReportRequest.class))).thenReturn(mockResponse);
} catch (YarnRemoteException e) {
Assert.fail("Exception is not expected.");
+ } catch (IOException e) {
+ Assert.fail("Exception is not expected.");
}
when(mockResponse.getApplicationReport()).thenReturn(mockReport);
}
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/impl/pb/client/ClientRMProtocolPBClientImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/impl/pb/client/ClientRMProtocolPBClientImpl.java
index 94e692f25c..bd436f2bd5 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/impl/pb/client/ClientRMProtocolPBClientImpl.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/impl/pb/client/ClientRMProtocolPBClientImpl.java
@@ -113,7 +113,7 @@ public void close() {
@Override
public KillApplicationResponse forceKillApplication(
- KillApplicationRequest request) throws YarnRemoteException {
+ KillApplicationRequest request) throws YarnRemoteException, IOException {
KillApplicationRequestProto requestProto =
((KillApplicationRequestPBImpl) request).getProto();
try {
@@ -126,7 +126,8 @@ public KillApplicationResponse forceKillApplication(
@Override
public GetApplicationReportResponse getApplicationReport(
- GetApplicationReportRequest request) throws YarnRemoteException {
+ GetApplicationReportRequest request) throws YarnRemoteException,
+ IOException {
GetApplicationReportRequestProto requestProto =
((GetApplicationReportRequestPBImpl) request).getProto();
try {
@@ -139,7 +140,8 @@ public GetApplicationReportResponse getApplicationReport(
@Override
public GetClusterMetricsResponse getClusterMetrics(
- GetClusterMetricsRequest request) throws YarnRemoteException {
+ GetClusterMetricsRequest request) throws YarnRemoteException,
+ IOException {
GetClusterMetricsRequestProto requestProto =
((GetClusterMetricsRequestPBImpl) request).getProto();
try {
@@ -152,7 +154,8 @@ public GetClusterMetricsResponse getClusterMetrics(
@Override
public GetNewApplicationResponse getNewApplication(
- GetNewApplicationRequest request) throws YarnRemoteException {
+ GetNewApplicationRequest request) throws YarnRemoteException,
+ IOException {
GetNewApplicationRequestProto requestProto =
((GetNewApplicationRequestPBImpl) request).getProto();
try {
@@ -165,7 +168,8 @@ public GetNewApplicationResponse getNewApplication(
@Override
public SubmitApplicationResponse submitApplication(
- SubmitApplicationRequest request) throws YarnRemoteException {
+ SubmitApplicationRequest request) throws YarnRemoteException,
+ IOException {
SubmitApplicationRequestProto requestProto =
((SubmitApplicationRequestPBImpl) request).getProto();
try {
@@ -178,7 +182,8 @@ public SubmitApplicationResponse submitApplication(
@Override
public GetAllApplicationsResponse getAllApplications(
- GetAllApplicationsRequest request) throws YarnRemoteException {
+ GetAllApplicationsRequest request) throws YarnRemoteException,
+ IOException {
GetAllApplicationsRequestProto requestProto =
((GetAllApplicationsRequestPBImpl) request).getProto();
try {
@@ -192,7 +197,7 @@ public GetAllApplicationsResponse getAllApplications(
@Override
public GetClusterNodesResponse
getClusterNodes(GetClusterNodesRequest request)
- throws YarnRemoteException {
+ throws YarnRemoteException, IOException {
GetClusterNodesRequestProto requestProto =
((GetClusterNodesRequestPBImpl) request).getProto();
try {
@@ -205,7 +210,7 @@ public GetAllApplicationsResponse getAllApplications(
@Override
public GetQueueInfoResponse getQueueInfo(GetQueueInfoRequest request)
- throws YarnRemoteException {
+ throws YarnRemoteException, IOException {
GetQueueInfoRequestProto requestProto =
((GetQueueInfoRequestPBImpl) request).getProto();
try {
@@ -218,7 +223,8 @@ public GetQueueInfoResponse getQueueInfo(GetQueueInfoRequest request)
@Override
public GetQueueUserAclsInfoResponse getQueueUserAcls(
- GetQueueUserAclsInfoRequest request) throws YarnRemoteException {
+ GetQueueUserAclsInfoRequest request) throws YarnRemoteException,
+ IOException {
GetQueueUserAclsInfoRequestProto requestProto =
((GetQueueUserAclsInfoRequestPBImpl) request).getProto();
try {
@@ -231,7 +237,8 @@ public GetQueueUserAclsInfoResponse getQueueUserAcls(
@Override
public GetDelegationTokenResponse getDelegationToken(
- GetDelegationTokenRequest request) throws YarnRemoteException {
+ GetDelegationTokenRequest request) throws YarnRemoteException,
+ IOException {
GetDelegationTokenRequestProto requestProto =
((GetDelegationTokenRequestPBImpl) request).getProto();
try {
@@ -244,7 +251,8 @@ public GetDelegationTokenResponse getDelegationToken(
@Override
public RenewDelegationTokenResponse renewDelegationToken(
- RenewDelegationTokenRequest request) throws YarnRemoteException {
+ RenewDelegationTokenRequest request) throws YarnRemoteException,
+ IOException {
RenewDelegationTokenRequestProto requestProto =
((RenewDelegationTokenRequestPBImpl) request).getProto();
try {
@@ -257,7 +265,8 @@ public RenewDelegationTokenResponse renewDelegationToken(
@Override
public CancelDelegationTokenResponse cancelDelegationToken(
- CancelDelegationTokenRequest request) throws YarnRemoteException {
+ CancelDelegationTokenRequest request) throws YarnRemoteException,
+ IOException {
CancelDelegationTokenRequestProto requestProto =
((CancelDelegationTokenRequestPBImpl) request).getProto();
try {
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/impl/pb/service/ClientRMProtocolPBServiceImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/impl/pb/service/ClientRMProtocolPBServiceImpl.java
index 1c2d5b05eb..8fb1b71335 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/impl/pb/service/ClientRMProtocolPBServiceImpl.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/impl/pb/service/ClientRMProtocolPBServiceImpl.java
@@ -18,6 +18,8 @@
package org.apache.hadoop.yarn.api.impl.pb.service;
+import java.io.IOException;
+
import org.apache.hadoop.security.proto.SecurityProtos.CancelDelegationTokenRequestProto;
import org.apache.hadoop.security.proto.SecurityProtos.CancelDelegationTokenResponseProto;
import org.apache.hadoop.security.proto.SecurityProtos.GetDelegationTokenRequestProto;
@@ -102,6 +104,8 @@ public KillApplicationResponseProto forceKillApplication(RpcController arg0,
return ((KillApplicationResponsePBImpl)response).getProto();
} catch (YarnRemoteException e) {
throw new ServiceException(e);
+ } catch (IOException e) {
+ throw new ServiceException(e);
}
}
@@ -115,6 +119,8 @@ public GetApplicationReportResponseProto getApplicationReport(
return ((GetApplicationReportResponsePBImpl)response).getProto();
} catch (YarnRemoteException e) {
throw new ServiceException(e);
+ } catch (IOException e) {
+ throw new ServiceException(e);
}
}
@@ -127,6 +133,8 @@ public GetClusterMetricsResponseProto getClusterMetrics(RpcController arg0,
return ((GetClusterMetricsResponsePBImpl)response).getProto();
} catch (YarnRemoteException e) {
throw new ServiceException(e);
+ } catch (IOException e) {
+ throw new ServiceException(e);
}
}
@@ -140,6 +148,8 @@ public GetNewApplicationResponseProto getNewApplication(
return ((GetNewApplicationResponsePBImpl)response).getProto();
} catch (YarnRemoteException e) {
throw new ServiceException(e);
+ } catch (IOException e) {
+ throw new ServiceException(e);
}
}
@@ -152,6 +162,8 @@ public SubmitApplicationResponseProto submitApplication(RpcController arg0,
return ((SubmitApplicationResponsePBImpl)response).getProto();
} catch (YarnRemoteException e) {
throw new ServiceException(e);
+ } catch (IOException e) {
+ throw new ServiceException(e);
}
}
@@ -166,6 +178,8 @@ public GetAllApplicationsResponseProto getAllApplications(
return ((GetAllApplicationsResponsePBImpl)response).getProto();
} catch (YarnRemoteException e) {
throw new ServiceException(e);
+ } catch (IOException e) {
+ throw new ServiceException(e);
}
}
@@ -179,6 +193,8 @@ public GetClusterNodesResponseProto getClusterNodes(RpcController controller,
return ((GetClusterNodesResponsePBImpl)response).getProto();
} catch (YarnRemoteException e) {
throw new ServiceException(e);
+ } catch (IOException e) {
+ throw new ServiceException(e);
}
}
@@ -192,6 +208,8 @@ public GetQueueInfoResponseProto getQueueInfo(RpcController controller,
return ((GetQueueInfoResponsePBImpl)response).getProto();
} catch (YarnRemoteException e) {
throw new ServiceException(e);
+ } catch (IOException e) {
+ throw new ServiceException(e);
}
}
@@ -206,6 +224,8 @@ public GetQueueUserAclsInfoResponseProto getQueueUserAcls(
return ((GetQueueUserAclsInfoResponsePBImpl)response).getProto();
} catch (YarnRemoteException e) {
throw new ServiceException(e);
+ } catch (IOException e) {
+ throw new ServiceException(e);
}
}
@@ -220,6 +240,8 @@ public GetDelegationTokenResponseProto getDelegationToken(
return ((GetDelegationTokenResponsePBImpl)response).getProto();
} catch (YarnRemoteException e) {
throw new ServiceException(e);
+ } catch (IOException e) {
+ throw new ServiceException(e);
}
}
@@ -234,6 +256,8 @@ public RenewDelegationTokenResponseProto renewDelegationToken(
return ((RenewDelegationTokenResponsePBImpl)response).getProto();
} catch (YarnRemoteException e) {
throw new ServiceException(e);
+ } catch (IOException e) {
+ throw new ServiceException(e);
}
}
@@ -248,6 +272,8 @@ public CancelDelegationTokenResponseProto cancelDelegationToken(
return ((CancelDelegationTokenResponsePBImpl)response).getProto();
} catch (YarnRemoteException e) {
throw new ServiceException(e);
+ } catch (IOException e) {
+ throw new ServiceException(e);
}
}
}
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/MockRM.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/MockRM.java
index 2259970774..0855a6fba3 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/MockRM.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/MockRM.java
@@ -18,6 +18,7 @@
package org.apache.hadoop.yarn.server.resourcemanager;
+import java.io.IOException;
import java.nio.ByteBuffer;
import java.security.PrivilegedAction;
import java.util.Map;
@@ -199,6 +200,8 @@ public SubmitApplicationResponse run() {
return client.submitApplication(req);
} catch (YarnRemoteException e) {
e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
}
return null;
}
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestClientRMTokens.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestClientRMTokens.java
index 55b8c9353c..d334cc5f7c 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestClientRMTokens.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestClientRMTokens.java
@@ -339,7 +339,7 @@ private DelegationToken getDelegationToken(
DelegationToken token = loggedInUser
.doAs(new PrivilegedExceptionAction() {
@Override
- public DelegationToken run() throws YarnRemoteException {
+ public DelegationToken run() throws YarnRemoteException, IOException {
GetDelegationTokenRequest request = Records
.newRecord(GetDelegationTokenRequest.class);
request.setRenewer(renewerString);
@@ -355,7 +355,7 @@ private long renewDelegationToken(final UserGroupInformation loggedInUser,
throws IOException, InterruptedException {
long nextExpTime = loggedInUser.doAs(new PrivilegedExceptionAction() {
@Override
- public Long run() throws YarnRemoteException {
+ public Long run() throws YarnRemoteException, IOException {
RenewDelegationTokenRequest request = Records
.newRecord(RenewDelegationTokenRequest.class);
request.setDelegationToken(dToken);
@@ -371,7 +371,7 @@ private void cancelDelegationToken(final UserGroupInformation loggedInUser,
throws IOException, InterruptedException {
loggedInUser.doAs(new PrivilegedExceptionAction() {
@Override
- public Void run() throws YarnRemoteException {
+ public Void run() throws YarnRemoteException, IOException {
CancelDelegationTokenRequest request = Records
.newRecord(CancelDelegationTokenRequest.class);
request.setDelegationToken(dToken);
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/src/main/java/org/apache/hadoop/yarn/server/webproxy/AppReportFetcher.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/src/main/java/org/apache/hadoop/yarn/server/webproxy/AppReportFetcher.java
index 938a893a82..120cf72858 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/src/main/java/org/apache/hadoop/yarn/server/webproxy/AppReportFetcher.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/src/main/java/org/apache/hadoop/yarn/server/webproxy/AppReportFetcher.java
@@ -18,6 +18,7 @@
package org.apache.hadoop.yarn.server.webproxy;
+import java.io.IOException;
import java.net.InetSocketAddress;
import org.apache.commons.logging.Log;
@@ -78,9 +79,10 @@ public AppReportFetcher(Configuration conf, ClientRMProtocol applicationsManager
* @param appId the id of the application to get.
* @return the ApplicationReport for that app.
* @throws YarnRemoteException on any error.
+ * @throws IOException
*/
public ApplicationReport getApplicationReport(ApplicationId appId)
- throws YarnRemoteException {
+ throws YarnRemoteException, IOException {
GetApplicationReportRequest request = recordFactory
.newRecordInstance(GetApplicationReportRequest.class);
request.setApplicationId(appId);