|
@@ -405,10 +405,21 @@ public class YarnClientImpl extends YarnClient {
|
|
@Override
|
|
@Override
|
|
public void killApplication(ApplicationId applicationId)
|
|
public void killApplication(ApplicationId applicationId)
|
|
throws YarnException, IOException {
|
|
throws YarnException, IOException {
|
|
|
|
+ killApplication(applicationId, null);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void killApplication(ApplicationId applicationId, String diagnostics)
|
|
|
|
+ throws YarnException, IOException {
|
|
|
|
+
|
|
KillApplicationRequest request =
|
|
KillApplicationRequest request =
|
|
Records.newRecord(KillApplicationRequest.class);
|
|
Records.newRecord(KillApplicationRequest.class);
|
|
request.setApplicationId(applicationId);
|
|
request.setApplicationId(applicationId);
|
|
|
|
|
|
|
|
+ if (diagnostics != null) {
|
|
|
|
+ request.setDiagnostics(diagnostics);
|
|
|
|
+ }
|
|
|
|
+
|
|
try {
|
|
try {
|
|
int pollCount = 0;
|
|
int pollCount = 0;
|
|
long startTime = System.currentTimeMillis();
|
|
long startTime = System.currentTimeMillis();
|
|
@@ -422,14 +433,15 @@ public class YarnClientImpl extends YarnClient {
|
|
}
|
|
}
|
|
|
|
|
|
long elapsedMillis = System.currentTimeMillis() - startTime;
|
|
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) {
|
|
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);
|
|
Thread.sleep(asyncApiPollIntervalMillis);
|
|
}
|
|
}
|