YARN-6520. Fix warnings from Spotbugs in hadoop-yarn-client. Contributed by Weiwei Yang.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/64f68cb0 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/64f68cb0 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/64f68cb0 Branch: refs/heads/HDFS-10467 Commit: 64f68cb0b8c0b93d37699893b812b37c4b05c939 Parents: 0f1af31 Author: Naganarasimha <[email protected]> Authored: Mon May 1 18:38:22 2017 +0530 Committer: Naganarasimha <[email protected]> Committed: Mon May 1 18:38:22 2017 +0530 ---------------------------------------------------------------------- .../yarn/client/api/impl/YarnClientImpl.java | 10 +++- .../apache/hadoop/yarn/client/cli/LogsCLI.java | 58 ++++++++------------ 2 files changed, 31 insertions(+), 37 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/64f68cb0/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/api/impl/YarnClientImpl.java ---------------------------------------------------------------------- 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 8865b52..83210bd 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 @@ -367,9 +367,13 @@ public class YarnClientImpl extends YarnClient { if (timelineClient == null) { synchronized (this) { if (timelineClient == null) { - timelineClient = createTimelineClient(); - timelineClient.init(getConfig()); - timelineClient.start(); + TimelineClient tlClient = createTimelineClient(); + tlClient.init(getConfig()); + tlClient.start(); + // Assign value to timeline client variable only + // when it is fully initiated. In order to avoid + // other threads to see partially initialized object. + this.timelineClient = tlClient; } } } http://git-wip-us.apache.org/repos/asf/hadoop/blob/64f68cb0/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/LogsCLI.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/LogsCLI.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/LogsCLI.java index 4125a81..5528412 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/LogsCLI.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/LogsCLI.java @@ -963,48 +963,38 @@ public class LogsCLI extends Configured implements Tool { request.setNodeId(nodeId); request.setContainerState(report.getContainerState()); } catch (IOException | YarnException ex) { - if (isAppFinished) { - return printContainerLogsForFinishedApplicationWithoutNodeId( - request, logCliHelper, useRegex); + nodeHttpAddress = getNodeHttpAddressFromRMWebString(request); + if (nodeHttpAddress != null && !nodeHttpAddress.isEmpty()) { + request.setNodeHttpAddress(nodeHttpAddress); } else { - nodeHttpAddress = getNodeHttpAddressFromRMWebString(request); - if (nodeHttpAddress != null && !nodeHttpAddress.isEmpty()) { - request.setNodeHttpAddress(nodeHttpAddress); + // for the case, we have already uploaded partial logs in HDFS + int result = -1; + if (nodeAddress != null && !nodeAddress.isEmpty()) { + result = printAggregatedContainerLogs(request, + logCliHelper, useRegex); } else { - // for the case, we have already uploaded partial logs in HDFS - int result = -1; - if (nodeAddress != null && !nodeAddress.isEmpty()) { - result = printAggregatedContainerLogs( - request, logCliHelper, useRegex); - } else { - result = printAggregatedContainerLogsWithoutNodeId( - request, logCliHelper, useRegex); - } - if (result == -1) { - System.err.println("Unable to get logs for this container:" - + containerIdStr + " for the application:" + appIdStr - + " with the appOwner: " + appOwner); - System.err.println("The application: " + appIdStr - + " is still running, and we can not get Container report " - + "for the container: " + containerIdStr +". Please try later " - + "or after the application finishes."); - } - return result; + result = printAggregatedContainerLogsWithoutNodeId(request, + logCliHelper, + useRegex); } + if (result == -1) { + System.err.println( + "Unable to get logs for this container:" + + containerIdStr + " for the application:" + + appIdStr + " with the appOwner: " + appOwner); + System.err.println("The application: " + appIdStr + + " is still running, and we can not get Container report " + + "for the container: " + containerIdStr + ". Please try later " + + "or after the application finishes."); + } + return result; } } // If the application is not in the final state, // we will provide the NodeHttpAddress and get the container logs // by calling NodeManager webservice. - if (!isAppFinished) { - resultCode = printContainerLogsFromRunningApplication(getConf(), request, - logCliHelper, useRegex); - } else { - // If the application is in the final state, we will directly - // get the container logs from HDFS. - resultCode = printContainerLogsForFinishedApplication( - request, logCliHelper, useRegex); - } + resultCode = printContainerLogsFromRunningApplication(getConf(), request, + logCliHelper, useRegex); return resultCode; } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
