From 3e4d3e1934a06a80a5779742e8a8dd04b0e22496 Mon Sep 17 00:00:00 2001 From: Adam Antal Date: Thu, 10 Oct 2019 19:28:22 +0200 Subject: [PATCH] YARN-9877. Intermittent TIME_OUT of LogAggregationReport --- .../yarn/server/resourcemanager/rmapp/RMAppImpl.java | 6 ++++-- .../rmapp/RMAppRunningOnNodeEvent.java | 11 +++++++++++ .../resourcemanager/rmcontainer/RMContainerImpl.java | 3 ++- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java index c21d8d4e0bd..8f44a4cd877 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java @@ -1060,8 +1060,10 @@ public void transition(RMAppImpl app, RMAppEvent event) { // otherwise, add it to ranNodes for further process app.ranNodes.add(nodeAddedEvent.getNodeId()); - app.logAggregation.addReportIfNecessary( - nodeAddedEvent.getNodeId(), app.getApplicationId()); + if (!nodeAddedEvent.getFromAcquiredState()) { + app.logAggregation.addReportIfNecessary( + nodeAddedEvent.getNodeId(), app.getApplicationId()); + } } } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppRunningOnNodeEvent.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppRunningOnNodeEvent.java index 45c0d3c301a..758d32bd1b7 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppRunningOnNodeEvent.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppRunningOnNodeEvent.java @@ -23,13 +23,24 @@ public class RMAppRunningOnNodeEvent extends RMAppEvent { private final NodeId node; + private final boolean fromAcquiredState; public RMAppRunningOnNodeEvent(ApplicationId appId, NodeId node) { + this(appId, node, false); + } + + public RMAppRunningOnNodeEvent(ApplicationId appId, NodeId node, + boolean fromAcquiredState) { super(appId, RMAppEventType.APP_RUNNING_ON_NODE); this.node = node; + this.fromAcquiredState = fromAcquiredState; } public NodeId getNodeId() { return node; } + + public boolean getFromAcquiredState() { + return fromAcquiredState; + } } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmcontainer/RMContainerImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmcontainer/RMContainerImpl.java index 004c170262f..7c7d40d7722 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmcontainer/RMContainerImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmcontainer/RMContainerImpl.java @@ -606,7 +606,8 @@ public void transition(RMContainerImpl container, RMContainerEvent event) { // Tell the app container.eventHandler.handle(new RMAppRunningOnNodeEvent(container - .getApplicationAttemptId().getApplicationId(), container.nodeId)); + .getApplicationAttemptId().getApplicationId(), container.nodeId, + true)); // Opportunistic containers move directly from NEW to ACQUIRED if (container.getState() == RMContainerState.NEW) { -- 2.21.0