From b7151681748cc84d205772aa5f8cb23cbb2210cb Mon Sep 17 00:00:00 2001 From: Rohith Sharma K S Date: Mon, 19 Sep 2016 14:29:45 +0530 Subject: [PATCH] 3692 --- .../apache/hadoop/mapred/ResourceMgrDelegate.java | 6 ------ .../protocolrecords/KillApplicationRequest.java | 18 ------------------ .../src/main/proto/yarn_service_protos.proto | 1 - .../apache/hadoop/yarn/client/api/YarnClient.java | 14 -------------- .../yarn/client/api/impl/YarnClientImpl.java | 22 +++++----------------- .../impl/pb/KillApplicationRequestPBImpl.java | 18 ------------------ .../server/resourcemanager/ClientRMService.java | 20 +++++--------------- .../resourcemanager/webapp/RMWebServices.java | 8 ++------ .../resourcemanager/webapp/dao/AppState.java | 8 -------- .../resourcemanager/TestClientRMService.java | 7 +------ .../webapp/TestRMWebServicesAppsModification.java | 4 ---- 11 files changed, 13 insertions(+), 113 deletions(-) diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/main/java/org/apache/hadoop/mapred/ResourceMgrDelegate.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/main/java/org/apache/hadoop/mapred/ResourceMgrDelegate.java index c302553..159b518 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/main/java/org/apache/hadoop/mapred/ResourceMgrDelegate.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/main/java/org/apache/hadoop/mapred/ResourceMgrDelegate.java @@ -511,10 +511,4 @@ public void signalToContainer(ContainerId containerId, throws YarnException, IOException { client.signalToContainer(containerId, command); } - - @Override - public void killApplication(ApplicationId appId, String diagnostics) - throws YarnException, IOException { - client.killApplication(appId, diagnostics); - } } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/KillApplicationRequest.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/KillApplicationRequest.java index a7679a0..606cf4e 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/KillApplicationRequest.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/KillApplicationRequest.java @@ -20,7 +20,6 @@ import org.apache.hadoop.classification.InterfaceAudience.Public; import org.apache.hadoop.classification.InterfaceStability.Stable; -import org.apache.hadoop.classification.InterfaceStability.Unstable; import org.apache.hadoop.yarn.api.ApplicationClientProtocol; import org.apache.hadoop.yarn.api.records.ApplicationId; import org.apache.hadoop.yarn.util.Records; @@ -58,21 +57,4 @@ public static KillApplicationRequest newInstance(ApplicationId applicationId) { @Public @Stable public abstract void setApplicationId(ApplicationId applicationId); - - /** - * Get the diagnostics to which the application is being killed. - * @return diagnostics to which the application is being killed - */ - @Public - @Unstable - public abstract String getDiagnostics(); - - /** - * Set the diagnostics to which the application is being killed. - * @param diagnostics diagnostics to which the application is being - * killed - */ - @Public - @Unstable - public abstract void setDiagnostics(String diagnostics); } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/proto/yarn_service_protos.proto b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/proto/yarn_service_protos.proto index 1385ea4..97eaa5c 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/proto/yarn_service_protos.proto +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/proto/yarn_service_protos.proto @@ -156,7 +156,6 @@ message FailApplicationAttemptResponseProto { message KillApplicationRequestProto { optional ApplicationIdProto application_id = 1; - optional string diagnostics = 2; } message KillApplicationResponseProto { diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/YarnClient.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/YarnClient.java index 4cac2c2..619ea0d 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/YarnClient.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/YarnClient.java @@ -174,20 +174,6 @@ public abstract void killApplication(ApplicationId applicationId) throws YarnExc /** *

- * Kill an application identified by given ID. - *

- * @param applicationId {@link ApplicationId} of the application that needs to - * be killed - * @param diagnostics for killing an application. - * @throws YarnException in case of errors or if YARN rejects the request due - * to access-control restrictions. - * @throws IOException - */ - public abstract void killApplication(ApplicationId applicationId, - String diagnostics) throws YarnException, IOException; - - /** - *

* Get a report of the given Application. *

* diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/impl/YarnClientImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/impl/YarnClientImpl.java index 7760521..b91fde0 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/impl/YarnClientImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/impl/YarnClientImpl.java @@ -405,21 +405,10 @@ public void failApplicationAttempt(ApplicationAttemptId attemptId) @Override public void killApplication(ApplicationId applicationId) throws YarnException, IOException { - killApplication(applicationId, null); - } - - @Override - public void killApplication(ApplicationId applicationId, String diagnostics) - throws YarnException, IOException { - KillApplicationRequest request = Records.newRecord(KillApplicationRequest.class); request.setApplicationId(applicationId); - if (diagnostics != null) { - request.setDiagnostics(diagnostics); - } - try { int pollCount = 0; long startTime = System.currentTimeMillis(); @@ -433,15 +422,14 @@ public void killApplication(ApplicationId applicationId, String diagnostics) } long elapsedMillis = System.currentTimeMillis() - startTime; - if (enforceAsyncAPITimeout() - && elapsedMillis >= this.asyncApiPollTimeoutMillis) { - throw new YarnException("Timed out while waiting for application " - + applicationId + " to be killed."); + if (enforceAsyncAPITimeout() && + elapsedMillis >= this.asyncApiPollTimeoutMillis) { + throw new YarnException("Timed out while waiting for application " + + applicationId + " to be killed."); } if (++pollCount % 10 == 0) { - LOG.info( - "Waiting for application " + applicationId + " to be killed."); + LOG.info("Waiting for application " + applicationId + " to be killed."); } Thread.sleep(asyncApiPollIntervalMillis); } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/KillApplicationRequestPBImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/KillApplicationRequestPBImpl.java index 0520222..db97367 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/KillApplicationRequestPBImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/protocolrecords/impl/pb/KillApplicationRequestPBImpl.java @@ -127,24 +127,6 @@ private ApplicationIdProto convertToProtoFormat(ApplicationId t) { return ((ApplicationIdPBImpl)t).getProto(); } - @Override - public String getDiagnostics() { - KillApplicationRequestProtoOrBuilder p = viaProto ? proto : builder; - if (!p.hasDiagnostics()) { - return null; - } - return (p.getDiagnostics()); - } - - @Override - public void setDiagnostics(String diagnostics) { - maybeInitBuilder(); - if (diagnostics == null) { - builder.clearDiagnostics(); - return; - } - builder.setDiagnostics(diagnostics); - } } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ClientRMService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ClientRMService.java index 42e9a7c..7c33f32 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ClientRMService.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ClientRMService.java @@ -775,25 +775,15 @@ public KillApplicationResponse forceKillApplication( return KillApplicationResponse.newInstance(true); } - StringBuilder message = new StringBuilder(); - message.append("Application ").append(applicationId) - .append(" was killed by user ").append(callerUGI); - + String message = "Kill application " + applicationId + " received from " + + callerUGI.getShortUserName(); InetAddress remoteAddress = Server.getRemoteIp(); if (null != remoteAddress) { - message.append(" at ").append(remoteAddress.getHostAddress()); - } - - String diagnostics = org.apache.commons.lang.StringUtils - .trimToNull(request.getDiagnostics()); - if (diagnostics != null) { - message.append(" with diagnostic message: "); - message.append(diagnostics); + message += " at " + remoteAddress.getHostAddress(); } - this.rmContext.getDispatcher().getEventHandler() - .handle(new RMAppKillByClientEvent(applicationId, message.toString(), - callerUGI, remoteAddress)); + .handle(new RMAppKillByClientEvent(applicationId, message, callerUGI, + remoteAddress)); // For UnmanagedAMs, return true so they don't retry return KillApplicationResponse.newInstance( diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebServices.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebServices.java index ef6fd06..4305fd5 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebServices.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebServices.java @@ -925,7 +925,7 @@ public Response updateAppState(AppState targetState, // allow users to kill the app if (targetState.getState().equals(YarnApplicationState.KILLED.toString())) { - return killApp(app, callerUGI, hsr, targetState.getDiagnostics()); + return killApp(app, callerUGI, hsr); } throw new BadRequestException("Only '" + YarnApplicationState.KILLED.toString() @@ -1141,8 +1141,7 @@ public NodeLabelsInfo getLabelsOnNode(@Context HttpServletRequest hsr, } protected Response killApp(RMApp app, UserGroupInformation callerUGI, - HttpServletRequest hsr, String diagnostic) - throws IOException, InterruptedException { + HttpServletRequest hsr) throws IOException, InterruptedException { if (app == null) { throw new IllegalArgumentException("app cannot be null"); @@ -1159,9 +1158,6 @@ public KillApplicationResponse run() throws IOException, YarnException { KillApplicationRequest req = KillApplicationRequest.newInstance(appid); - if (diagnostic != null) { - req.setDiagnostics(diagnostic); - } return rm.getClientRMService().forceKillApplication(req); } }); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/AppState.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/AppState.java index 533200e..e8f1cc3 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/AppState.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/AppState.java @@ -27,7 +27,6 @@ public class AppState { String state; - private String diagnostics; public AppState() { } @@ -44,11 +43,4 @@ public String getState() { return this.state; } - public String getDiagnostics() { - return diagnostics; - } - - public void setDiagnostics(String diagnostics) { - this.diagnostics = diagnostics; - } } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestClientRMService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestClientRMService.java index cee9086..2a7971e 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestClientRMService.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestClientRMService.java @@ -506,8 +506,7 @@ public void testForceKillNonExistingApplication() throws YarnException { @Test public void testForceKillApplication() throws Exception { YarnConfiguration conf = new YarnConfiguration(); - conf.setBoolean(MockRM.ENABLE_WEBAPP, true); - MockRM rm = new MockRM(conf); + MockRM rm = new MockRM(); rm.init(conf); rm.start(); @@ -523,8 +522,6 @@ public void testForceKillApplication() throws Exception { KillApplicationRequest killRequest1 = KillApplicationRequest.newInstance(app1.getApplicationId()); - String diagnostic = "message1"; - killRequest1.setDiagnostics(diagnostic); KillApplicationRequest killRequest2 = KillApplicationRequest.newInstance(app2.getApplicationId()); @@ -542,8 +539,6 @@ public void testForceKillApplication() throws Exception { killAttemptCount > 1); assertEquals("Incorrect number of apps in the RM", 1, rmService.getApplications(getRequest).getApplicationList().size()); - assertTrue("Diagnostic message is incorrect", - app1.getDiagnostics().toString().contains(diagnostic)); KillApplicationResponse killResponse2 = rmService.forceKillApplication(killRequest2); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesAppsModification.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesAppsModification.java index 37e44d4..53ef031 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesAppsModification.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesAppsModification.java @@ -359,7 +359,6 @@ public void testSingleAppKill() throws Exception { { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }; MediaType[] contentTypes = { MediaType.APPLICATION_JSON_TYPE, MediaType.APPLICATION_XML_TYPE }; - String diagnostic = "message1"; for (String mediaType : mediaTypes) { for (MediaType contentType : contentTypes) { RMApp app = rm.submitApp(CONTAINER_MB, "", webserviceUserName); @@ -367,7 +366,6 @@ public void testSingleAppKill() throws Exception { AppState targetState = new AppState(YarnApplicationState.KILLED.toString()); - targetState.setDiagnostics(diagnostic); Object entity; if (contentType.equals(MediaType.APPLICATION_JSON_TYPE)) { @@ -427,8 +425,6 @@ public void testSingleAppKill() throws Exception { } else { verifyAppStateXML(response, RMAppState.KILLED); } - assertTrue("Diagnostic message is incorrect", - app.getDiagnostics().toString().contains(diagnostic)); break; } } -- 2.7.4 (Apple Git-66)