(TWILL-251) Reduce log level of YarnNMClient
- Also reduce the polling frequency
This closes #64 on Github.
Signed-off-by: Terence Yim <chtyim@apache.org>
diff --git a/twill-yarn/src/main/hadoop20/org/apache/twill/internal/yarn/Hadoop20YarnNMClient.java b/twill-yarn/src/main/hadoop20/org/apache/twill/internal/yarn/Hadoop20YarnNMClient.java
index b43e4e1..e8628da 100644
--- a/twill-yarn/src/main/hadoop20/org/apache/twill/internal/yarn/Hadoop20YarnNMClient.java
+++ b/twill-yarn/src/main/hadoop20/org/apache/twill/internal/yarn/Hadoop20YarnNMClient.java
@@ -18,6 +18,7 @@
package org.apache.twill.internal.yarn;
import com.google.common.base.Throwables;
+import com.google.common.util.concurrent.Uninterruptibles;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.net.NetUtils;
import org.apache.hadoop.yarn.api.ContainerManager;
@@ -36,6 +37,7 @@
import org.slf4j.LoggerFactory;
import java.net.InetSocketAddress;
+import java.util.concurrent.TimeUnit;
/**
*
@@ -102,14 +104,16 @@
stopRequest.setContainerId(container.getId());
try {
manager.stopContainer(stopRequest);
- boolean completed = false;
- while (!completed) {
+ while (true) {
GetContainerStatusRequest statusRequest = Records.newRecord(GetContainerStatusRequest.class);
statusRequest.setContainerId(container.getId());
GetContainerStatusResponse statusResponse = manager.getContainerStatus(statusRequest);
- LOG.info("Container status: {} {}", statusResponse.getStatus(), statusResponse.getStatus().getDiagnostics());
+ LOG.trace("Container status: {} {}", statusResponse.getStatus(), statusResponse.getStatus().getDiagnostics());
- completed = (statusResponse.getStatus().getState() == ContainerState.COMPLETE);
+ if (statusResponse.getStatus().getState() == ContainerState.COMPLETE) {
+ break;
+ }
+ Uninterruptibles.sleepUninterruptibly(200, TimeUnit.MILLISECONDS);
}
LOG.info("Container {} stopped.", container.getId());
} catch (YarnRemoteException e) {
diff --git a/twill-yarn/src/main/hadoop21/org/apache/twill/internal/yarn/Hadoop21YarnNMClient.java b/twill-yarn/src/main/hadoop21/org/apache/twill/internal/yarn/Hadoop21YarnNMClient.java
index 8c5f0fc..dcdeb70 100644
--- a/twill-yarn/src/main/hadoop21/org/apache/twill/internal/yarn/Hadoop21YarnNMClient.java
+++ b/twill-yarn/src/main/hadoop21/org/apache/twill/internal/yarn/Hadoop21YarnNMClient.java
@@ -19,6 +19,7 @@
import com.google.common.base.Throwables;
import com.google.common.util.concurrent.AbstractIdleService;
+import com.google.common.util.concurrent.Uninterruptibles;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.yarn.api.records.Container;
import org.apache.hadoop.yarn.api.records.ContainerLaunchContext;
@@ -29,6 +30,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.util.concurrent.TimeUnit;
+
/**
* Wrapper class for {@link NMClient} for Hadoop version 2.1 or greater.
*/
@@ -82,12 +85,13 @@
try {
nmClient.stopContainer(container.getId(), container.getNodeId());
- boolean completed = false;
- while (!completed) {
+ while (true) {
ContainerStatus status = nmClient.getContainerStatus(container.getId(), container.getNodeId());
- LOG.info("Container status: {} {}", status, status.getDiagnostics());
-
- completed = (status.getState() == ContainerState.COMPLETE);
+ LOG.trace("Container status: {} {}", status, status.getDiagnostics());
+ if (status.getState() == ContainerState.COMPLETE) {
+ break;
+ }
+ Uninterruptibles.sleepUninterruptibly(200, TimeUnit.MILLISECONDS);
}
LOG.info("Container {} stopped.", container.getId());
} catch (Exception e) {