YARN-8758. Support getting PreemptionMessage when using AMRMClientAsyn. (Zian Chen via wangda)
Change-Id: Ibf5d165f49957b582eeadeb41dc285c84d2f05e7 Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/6926fd0e Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/6926fd0e Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/6926fd0e Branch: refs/heads/HDFS-12943 Commit: 6926fd0ec634df2576bbc9f45e9636b99260db72 Parents: 81f635f Author: Wangda Tan <wan...@apache.org> Authored: Thu Oct 4 10:31:33 2018 -0700 Committer: Wangda Tan <wan...@apache.org> Committed: Thu Oct 4 10:31:33 2018 -0700 ---------------------------------------------------------------------- .../hadoop/yarn/client/api/async/AMRMClientAsync.java | 11 +++++++++++ .../yarn/client/api/async/impl/AMRMClientAsyncImpl.java | 9 +++++++++ 2 files changed, 20 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/6926fd0e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/async/AMRMClientAsync.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/async/AMRMClientAsync.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/async/AMRMClientAsync.java index 3dd2f71..c9f4e5f 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/async/AMRMClientAsync.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/async/AMRMClientAsync.java @@ -39,6 +39,7 @@ import org.apache.hadoop.yarn.api.records.ContainerUpdateType; import org.apache.hadoop.yarn.api.records.ExecutionType; import org.apache.hadoop.yarn.api.records.FinalApplicationStatus; import org.apache.hadoop.yarn.api.records.NodeReport; +import org.apache.hadoop.yarn.api.records.PreemptionMessage; import org.apache.hadoop.yarn.api.records.Priority; import org.apache.hadoop.yarn.api.records.RejectedSchedulingRequest; import org.apache.hadoop.yarn.api.records.Resource; @@ -553,6 +554,16 @@ extends AbstractService { public void onRequestsRejected( List<RejectedSchedulingRequest> rejectedSchedulingRequests) { } + + /** + * Called when the RM responds to a heartbeat with preemption message + * @param preemptionMessage + */ + @Public + @Unstable + public void onPreemptionMessageReceived( + PreemptionMessage preemptionMessage) { + } } /** http://git-wip-us.apache.org/repos/asf/hadoop/blob/6926fd0e/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/async/impl/AMRMClientAsyncImpl.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/async/impl/AMRMClientAsyncImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/async/impl/AMRMClientAsyncImpl.java index 3cf2c34..922b185 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/async/impl/AMRMClientAsyncImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/async/impl/AMRMClientAsyncImpl.java @@ -37,6 +37,7 @@ import org.apache.hadoop.yarn.api.records.ContainerId; import org.apache.hadoop.yarn.api.records.ContainerStatus; import org.apache.hadoop.yarn.api.records.FinalApplicationStatus; import org.apache.hadoop.yarn.api.records.NodeReport; +import org.apache.hadoop.yarn.api.records.PreemptionMessage; import org.apache.hadoop.yarn.api.records.Priority; import org.apache.hadoop.yarn.api.records.RejectedSchedulingRequest; import org.apache.hadoop.yarn.api.records.Resource; @@ -401,6 +402,14 @@ extends AMRMClientAsync<T> { handler.onContainersAllocated(allocated); } + PreemptionMessage preemptionMessage = response.getPreemptionMessage(); + if (preemptionMessage != null) { + if (handler instanceof AMRMClientAsync.AbstractCallbackHandler) { + ((AMRMClientAsync.AbstractCallbackHandler) handler) + .onPreemptionMessageReceived(preemptionMessage); + } + } + if (!response.getContainersFromPreviousAttempts().isEmpty()) { if (handler instanceof AMRMClientAsync.AbstractCallbackHandler) { ((AMRMClientAsync.AbstractCallbackHandler) handler) --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org