diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/pom.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/pom.xml index 15e0eaf858..022d4f48ca 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/pom.xml +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/pom.xml @@ -119,7 +119,6 @@ org.apache.hadoop hadoop-yarn-server-common - test 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 343dfc7bd2..6d57fb8019 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 @@ -27,17 +27,13 @@ import com.sun.jersey.api.client.WebResource; import com.sun.jersey.api.client.WebResource.Builder; import com.sun.jersey.api.client.filter.ClientFilter; -import com.sun.jersey.client.urlconnection.HttpURLConnectionFactory; -import com.sun.jersey.client.urlconnection.URLConnectionClientHandler; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.PrintStream; import java.net.ConnectException; -import java.net.HttpURLConnection; import java.net.SocketException; import java.net.SocketTimeoutException; -import java.net.URL; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -68,8 +64,6 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configured; import org.apache.hadoop.security.UserGroupInformation; -import org.apache.hadoop.security.authentication.client.AuthenticatedURL; -import org.apache.hadoop.security.authentication.client.AuthenticationException; import org.apache.hadoop.util.Tool; import org.apache.hadoop.yarn.api.records.ApplicationAttemptReport; import org.apache.hadoop.yarn.api.records.ApplicationId; @@ -87,6 +81,7 @@ import org.apache.hadoop.yarn.logaggregation.LogCLIHelpers; import org.apache.hadoop.yarn.logaggregation.LogToolUtils; import org.apache.hadoop.yarn.server.metrics.AppAttemptMetricsConstants; +import org.apache.hadoop.yarn.server.webapp.WebServiceClient; import org.apache.hadoop.yarn.util.Apps; import org.apache.hadoop.yarn.webapp.util.WebAppUtils; import org.apache.hadoop.yarn.webapp.util.YarnWebServiceUtils; @@ -122,7 +117,7 @@ public class LogsCLI extends Configured implements Tool { private PrintStream outStream = System.out; private YarnClient yarnClient = null; - private Client webServiceClient = null; + private Client client = null; private static final int DEFAULT_MAX_RETRIES = 30; private static final long DEFAULT_RETRY_INTERVAL = 1000; @@ -139,28 +134,14 @@ public class LogsCLI extends Configured implements Tool { @Override public int run(String[] args) throws Exception { try { - webServiceClient = new Client(new URLConnectionClientHandler( - new HttpURLConnectionFactory() { - @Override - public HttpURLConnection getHttpURLConnection(URL url) - throws IOException { - AuthenticatedURL.Token token = new AuthenticatedURL.Token(); - HttpURLConnection conn = null; - try { - conn = new AuthenticatedURL().openConnection(url, token); - } catch (AuthenticationException e) { - throw new IOException(e); - } - return conn; - } - })); + client = WebServiceClient.getWebServiceClient().createClient(); return runCommand(args); } finally { if (yarnClient != null) { yarnClient.close(); } - if (webServiceClient != null) { - webServiceClient.destroy(); + if (client != null) { + client.destroy(); } } } @@ -310,7 +291,7 @@ private int runCommand(String[] args) throws Exception { // Set up Retry WebService Client connectionRetry = new ClientConnectionRetry(maxRetries, retryInterval); ClientJerseyRetryFilter retryFilter = new ClientJerseyRetryFilter(); - webServiceClient.addFilter(retryFilter); + client.addFilter(retryFilter); LogCLIHelpers logCliHelper = new LogCLIHelpers(); logCliHelper.setConf(getConf()); @@ -411,7 +392,9 @@ public static void main(String[] args) throws Exception { Configuration conf = new YarnConfiguration(); LogsCLI logDumper = new LogsCLI(); logDumper.setConf(conf); + WebServiceClient.initialize(conf); int exitCode = logDumper.run(args); + WebServiceClient.destroy(); System.exit(exitCode); } @@ -436,7 +419,7 @@ private List getAMContainerInfoFromRM( List amContainersList = new ArrayList(); ClientResponse response = null; try { - Builder builder = webServiceClient.resource(webAppAddress) + Builder builder = client.resource(webAppAddress) .path("ws").path("v1").path("cluster") .path("apps").path(appId).path("appattempts") .accept(MediaType.APPLICATION_JSON); @@ -461,7 +444,7 @@ private List getAMContainerInfoForAHSWebService( String webAppAddress = WebAppUtils.getHttpSchemePrefix(conf) + WebAppUtils.getAHSWebAppURLWithoutScheme(conf); - WebResource webResource = webServiceClient.resource(webAppAddress); + WebResource webResource = client.resource(webAppAddress); ClientResponse response = webResource.path("ws").path("v1").path("applicationhistory") @@ -511,7 +494,7 @@ private List> getContainerLogFiles( List> logFileInfos = new ArrayList<>(); try { - WebResource webResource = webServiceClient + WebResource webResource = client .resource(WebAppUtils.getHttpSchemePrefix(conf) + nodeHttpAddress); ClientResponse response = webResource.path("ws").path("v1").path("node").path("containers") @@ -599,7 +582,7 @@ public int printContainerLogsFromRunningApplication(Configuration conf, InputStream is = null; try { ClientResponse response = getResponseFromNMWebService(conf, - webServiceClient, request, logFile); + client, request, logFile); if (response != null && response.getStatusInfo().getStatusCode() == ClientResponse.Status.OK.getStatusCode()) { is = response.getEntityInputStream(); @@ -811,7 +794,7 @@ protected ClientResponse getClientResponseFromTimelineReader( Configuration conf, String appId) throws IOException { String webAppAddress = WebAppUtils.getHttpSchemePrefix(conf) + WebAppUtils .getTimelineReaderWebAppURLWithoutScheme(conf); - WebResource webResource = webServiceClient.resource(webAppAddress); + WebResource webResource = client.resource(webAppAddress); ClientResponse response = webResource.path("ws").path("v2").path("timeline").path("clusters") diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestLogsCLI.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestLogsCLI.java index 7966313b68..7ae536353c 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestLogsCLI.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestLogsCLI.java @@ -89,8 +89,10 @@ import org.apache.hadoop.yarn.logaggregation.filecontroller.LogAggregationFileControllerContext; import org.apache.hadoop.yarn.logaggregation.filecontroller.LogAggregationFileControllerFactory; import org.apache.hadoop.yarn.logaggregation.filecontroller.ifile.LogAggregationIndexedFileController; +import org.apache.hadoop.yarn.server.webapp.WebServiceClient; import org.codehaus.jettison.json.JSONArray; import org.codehaus.jettison.json.JSONObject; +import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -109,8 +111,10 @@ public class TestLogsCLI { ByteArrayOutputStream sysErrStream; private PrintStream sysErr; + private Configuration conf; + @Before - public void setUp() { + public void setUp() throws Exception { sysOutStream = new ByteArrayOutputStream(); sysOut = new PrintStream(sysOutStream); System.setOut(sysOut); @@ -118,11 +122,17 @@ public void setUp() { sysErrStream = new ByteArrayOutputStream(); sysErr = new PrintStream(sysErrStream); System.setErr(sysErr); + conf = new YarnConfiguration(); + WebServiceClient.initialize(conf); + } + + @After + public void tearDown() { + WebServiceClient.destroy(); } @Test(timeout = 5000l) public void testFailResultCodes() throws Exception { - Configuration conf = new YarnConfiguration(); conf.setClass("fs.file.impl", LocalFileSystem.class, FileSystem.class); LogCLIHelpers cliHelper = new LogCLIHelpers(); cliHelper.setConf(conf); @@ -145,7 +155,6 @@ public void testFailResultCodes() throws Exception { @Test(timeout = 10000l) public void testInvalidOpts() throws Exception { - Configuration conf = new YarnConfiguration(); YarnClient mockYarnClient = createMockYarnClient( YarnApplicationState.FINISHED, UserGroupInformation.getCurrentUser().getShortUserName()); @@ -160,7 +169,6 @@ public void testInvalidOpts() throws Exception { @Test(timeout = 5000l) public void testInvalidApplicationId() throws Exception { - Configuration conf = new YarnConfiguration(); YarnClient mockYarnClient = createMockYarnClient( YarnApplicationState.FINISHED, UserGroupInformation.getCurrentUser().getShortUserName()); @@ -174,7 +182,6 @@ public void testInvalidApplicationId() throws Exception { @Test(timeout = 5000L) public void testInvalidAMContainerId() throws Exception { - Configuration conf = new YarnConfiguration(); conf.setBoolean(YarnConfiguration.APPLICATION_HISTORY_ENABLED, true); YarnClient mockYarnClient = createMockYarnClient(YarnApplicationState.FINISHED, @@ -196,7 +203,6 @@ public void testInvalidAMContainerId() throws Exception { @Test public void testAMContainerInfoFetchFromTimelineReader() throws Exception { - Configuration conf = new YarnConfiguration(); conf.setBoolean(YarnConfiguration.TIMELINE_SERVICE_ENABLED, true); conf.set(YarnConfiguration.TIMELINE_SERVICE_VERSIONS, "2.0f"); YarnClient mockYarnClient = @@ -232,7 +238,6 @@ public void testAMContainerInfoFetchFromTimelineReader() throws Exception { @Test(timeout = 5000l) public void testUnknownApplicationId() throws Exception { - Configuration conf = new YarnConfiguration(); YarnClient mockYarnClient = createMockYarnClientUnknownApp(); LogsCLI cli = new LogsCLIForTest(mockYarnClient); cli.setConf(conf); @@ -248,7 +253,6 @@ public void testUnknownApplicationId() throws Exception { @Test (timeout = 10000) public void testHelpMessage() throws Exception { - Configuration conf = new YarnConfiguration(); YarnClient mockYarnClient = createMockYarnClient( YarnApplicationState.FINISHED, UserGroupInformation.getCurrentUser().getShortUserName()); @@ -372,13 +376,12 @@ public void testHelpMessage() throws Exception { @Test (timeout = 15000) public void testFetchFinishedApplictionLogs() throws Exception { String remoteLogRootDir = "target/logs/"; - Configuration configuration = new YarnConfiguration(); - configuration.setBoolean(YarnConfiguration.LOG_AGGREGATION_ENABLED, true); - configuration + conf.setBoolean(YarnConfiguration.LOG_AGGREGATION_ENABLED, true); + conf .set(YarnConfiguration.NM_REMOTE_APP_LOG_DIR, remoteLogRootDir); - configuration.setBoolean(YarnConfiguration.YARN_ACL_ENABLE, true); - configuration.set(YarnConfiguration.YARN_ADMIN_ACL, "admin"); - FileSystem fs = FileSystem.get(configuration); + conf.setBoolean(YarnConfiguration.YARN_ACL_ENABLE, true); + conf.set(YarnConfiguration.YARN_ADMIN_ACL, "admin"); + FileSystem fs = FileSystem.get(conf); UserGroupInformation ugi = UserGroupInformation.getCurrentUser(); ApplicationId appId = ApplicationId.newInstance(0, 1); @@ -431,15 +434,15 @@ public void testFetchFinishedApplictionLogs() throws Exception { // the first two logs is empty. When we try to read first two logs, // we will meet EOF exception, but it will not impact other logs. // Other logs should be read successfully. - uploadEmptyContainerLogIntoRemoteDir(ugi, configuration, rootLogDirs, nodeId, + uploadEmptyContainerLogIntoRemoteDir(ugi, conf, rootLogDirs, nodeId, containerId0, path, fs); - uploadEmptyContainerLogIntoRemoteDir(ugi, configuration, rootLogDirs, nodeId, + uploadEmptyContainerLogIntoRemoteDir(ugi, conf, rootLogDirs, nodeId, containerId1, path, fs); - uploadContainerLogIntoRemoteDir(ugi, configuration, rootLogDirs, nodeId, + uploadContainerLogIntoRemoteDir(ugi, conf, rootLogDirs, nodeId, containerId1, path, fs); - uploadContainerLogIntoRemoteDir(ugi, configuration, rootLogDirs, nodeId, + uploadContainerLogIntoRemoteDir(ugi, conf, rootLogDirs, nodeId, containerId2, path, fs); - uploadContainerLogIntoRemoteDir(ugi, configuration, rootLogDirs, nodeId, + uploadContainerLogIntoRemoteDir(ugi, conf, rootLogDirs, nodeId, containerId3, path, fs); YarnClient mockYarnClient = @@ -455,7 +458,7 @@ public ContainerReport getContainerReport(String containerIdStr) return mockReport; } }; - cli.setConf(configuration); + cli.setConf(conf); int exitCode = cli.run(new String[] { "-applicationId", appId.toString() }); LOG.info(sysOutStream.toString()); @@ -681,7 +684,7 @@ public ContainerReport getContainerReport(String containerIdStr) YarnClient mockYarnClientWithException = createMockYarnClientWithException(); cli = new LogsCLIForTest(mockYarnClientWithException); - cli.setConf(configuration); + cli.setConf(conf); exitCode = cli.run(new String[] { "-applicationId", appId.toString(), @@ -804,8 +807,7 @@ public void testGetRunningContainerLogs() throws Exception { any(ContainerId.class)); // create local logs - Configuration configuration = new YarnConfiguration(); - FileSystem fs = FileSystem.get(configuration); + FileSystem fs = FileSystem.get(conf); String rootLogDir = "target/LocalLogs"; Path rootLogDirPath = new Path(rootLogDir); if (fs.exists(rootLogDirPath)) { @@ -964,13 +966,12 @@ public void testFetchApplictionLogsAsAnotherUser() throws Exception { UserGroupInformation testUgi = UserGroupInformation .createRemoteUser(testUser); - Configuration configuration = new YarnConfiguration(); - configuration.setBoolean(YarnConfiguration.LOG_AGGREGATION_ENABLED, true); - configuration + conf.setBoolean(YarnConfiguration.LOG_AGGREGATION_ENABLED, true); + conf .set(YarnConfiguration.NM_REMOTE_APP_LOG_DIR, remoteLogRootDir); - configuration.setBoolean(YarnConfiguration.YARN_ACL_ENABLE, true); - configuration.set(YarnConfiguration.YARN_ADMIN_ACL, "admin"); - FileSystem fs = FileSystem.get(configuration); + conf.setBoolean(YarnConfiguration.YARN_ACL_ENABLE, true); + conf.set(YarnConfiguration.YARN_ADMIN_ACL, "admin"); + FileSystem fs = FileSystem.get(conf); ApplicationId appId = ApplicationId.newInstance(0, 1); ApplicationAttemptId appAttemptId = @@ -1010,13 +1011,13 @@ public void testFetchApplictionLogsAsAnotherUser() throws Exception { assertTrue(fs.mkdirs(path)); // upload container logs for app into remote dir - uploadContainerLogIntoRemoteDir(testUgi, configuration, rootLogDirs, + uploadContainerLogIntoRemoteDir(testUgi, conf, rootLogDirs, nodeId, containerId, path, fs); YarnClient mockYarnClient = createMockYarnClient( YarnApplicationState.FINISHED, testUgi.getShortUserName()); LogsCLI cli = new LogsCLIForTest(mockYarnClient); - cli.setConf(configuration); + cli.setConf(conf); // Verify that we can get the application logs by specifying // a correct appOwner @@ -1043,7 +1044,7 @@ public void testFetchApplictionLogsAsAnotherUser() throws Exception { // and can get app logs successfully. YarnClient mockYarnClient2 = createMockYarnClientUnknownApp(); cli = new LogsCLIForTest(mockYarnClient2); - cli.setConf(configuration); + cli.setConf(conf); exitCode = cli.run(new String[] { "-applicationId", appId.toString()}); assertTrue(exitCode == 0); @@ -1057,7 +1058,7 @@ public void testFetchApplictionLogsAsAnotherUser() throws Exception { fs.delete(path, true); } assertTrue(fs.mkdirs(path)); - uploadContainerLogIntoRemoteDir(testUgi, configuration, rootLogDirs, + uploadContainerLogIntoRemoteDir(testUgi, conf, rootLogDirs, nodeId, containerId, path, fs); exitCode = cli.run(new String[] { @@ -1112,14 +1113,13 @@ public void testFetchApplictionLogsAsAnotherUser() throws Exception { public void testLogsCLIWithInvalidArgs() throws Exception { String localDir = "target/SaveLogs"; Path localPath = new Path(localDir); - Configuration configuration = new YarnConfiguration(); - FileSystem fs = FileSystem.get(configuration); + FileSystem fs = FileSystem.get(conf); ApplicationId appId = ApplicationId.newInstance(0, 1); YarnClient mockYarnClient = createMockYarnClient(YarnApplicationState.FINISHED, UserGroupInformation.getCurrentUser().getShortUserName()); LogsCLI cli = new LogsCLIForTest(mockYarnClient); - cli.setConf(configuration); + cli.setConf(conf); // Specify an invalid applicationId int exitCode = cli.run(new String[] {"-applicationId", @@ -1180,7 +1180,6 @@ public void testGuessAppOwnerWithCustomSuffix() throws Exception { String remoteLogRootDir = "target/logs/"; String jobUser = "user1"; String loggedUser = "user2"; - Configuration conf = new YarnConfiguration(); conf.setBoolean(YarnConfiguration.LOG_AGGREGATION_ENABLED, true); conf.set(YarnConfiguration.NM_REMOTE_APP_LOG_DIR, remoteLogRootDir); conf.setBoolean(YarnConfiguration.YARN_ACL_ENABLE, true); @@ -1226,7 +1225,6 @@ public void testGuessAppOwnerWithCustomAppLogDir() throws Exception { String remoteLogRootDir1 = "target/logs1/"; String jobUser = "user1"; String loggedUser = "user2"; - Configuration conf = new YarnConfiguration(); conf.setBoolean(YarnConfiguration.LOG_AGGREGATION_ENABLED, true); conf.set(YarnConfiguration.NM_REMOTE_APP_LOG_DIR, remoteLogRootDir); String controllerName = "indexed"; @@ -1261,14 +1259,13 @@ public void testSaveContainerLogsLocally() throws Exception { String localDir = "target/SaveLogs"; Path localPath = new Path(localDir); - Configuration configuration = new YarnConfiguration(); - configuration.setBoolean(YarnConfiguration.LOG_AGGREGATION_ENABLED, true); - configuration + conf.setBoolean(YarnConfiguration.LOG_AGGREGATION_ENABLED, true); + conf .set(YarnConfiguration.NM_REMOTE_APP_LOG_DIR, remoteLogRootDir); - configuration.setBoolean(YarnConfiguration.YARN_ACL_ENABLE, true); - configuration.set(YarnConfiguration.YARN_ADMIN_ACL, "admin"); + conf.setBoolean(YarnConfiguration.YARN_ACL_ENABLE, true); + conf.set(YarnConfiguration.YARN_ADMIN_ACL, "admin"); - FileSystem fs = FileSystem.get(configuration); + FileSystem fs = FileSystem.get(conf); ApplicationId appId = ApplicationId.newInstance(0, 1); ApplicationAttemptId appAttemptId = ApplicationAttemptId.newInstance(appId, 1); @@ -1287,14 +1284,14 @@ public void testSaveContainerLogsLocally() throws Exception { nodeIds.add(nodeId2); try { - createContainerLogs(configuration, remoteLogRootDir, rootLogDir, fs, + createContainerLogs(conf, remoteLogRootDir, rootLogDir, fs, appId, containerIds, nodeIds); YarnClient mockYarnClient = createMockYarnClient(YarnApplicationState.FINISHED, UserGroupInformation.getCurrentUser().getShortUserName()); LogsCLI cli = new LogsCLIForTest(mockYarnClient); - cli.setConf(configuration); + cli.setConf(conf); int exitCode = cli.run(new String[] {"-applicationId", appId.toString(), "-out" , localPath.toString()}); @@ -1352,13 +1349,12 @@ private String readContainerContent(Path containerPath, @Test (timeout = 15000) public void testPrintContainerLogMetadata() throws Exception { String remoteLogRootDir = "target/logs/"; - Configuration configuration = new YarnConfiguration(); - configuration.setBoolean(YarnConfiguration.LOG_AGGREGATION_ENABLED, true); - configuration + conf.setBoolean(YarnConfiguration.LOG_AGGREGATION_ENABLED, true); + conf .set(YarnConfiguration.NM_REMOTE_APP_LOG_DIR, remoteLogRootDir); - configuration.setBoolean(YarnConfiguration.YARN_ACL_ENABLE, true); - configuration.set(YarnConfiguration.YARN_ADMIN_ACL, "admin"); - FileSystem fs = FileSystem.get(configuration); + conf.setBoolean(YarnConfiguration.YARN_ACL_ENABLE, true); + conf.set(YarnConfiguration.YARN_ADMIN_ACL, "admin"); + FileSystem fs = FileSystem.get(conf); String rootLogDir = "target/LocalLogs"; ApplicationId appId = ApplicationId.newInstance(0, 1); @@ -1377,14 +1373,14 @@ public void testPrintContainerLogMetadata() throws Exception { nodeIds.add(nodeId); nodeIds.add(nodeId); - createContainerLogs(configuration, remoteLogRootDir, rootLogDir, fs, + createContainerLogs(conf, remoteLogRootDir, rootLogDir, fs, appId, containerIds, nodeIds); YarnClient mockYarnClient = createMockYarnClient(YarnApplicationState.FINISHED, UserGroupInformation.getCurrentUser().getShortUserName()); LogsCLI cli = new LogsCLIForTest(mockYarnClient); - cli.setConf(configuration); + cli.setConf(conf); cli.run(new String[] {"-applicationId", appId.toString(), "-show_container_log_info"}); @@ -1457,12 +1453,11 @@ public void testPrintContainerLogMetadata() throws Exception { @Test (timeout = 15000) public void testListNodeInfo() throws Exception { String remoteLogRootDir = "target/logs/"; - Configuration configuration = new YarnConfiguration(); - configuration.setBoolean(YarnConfiguration.LOG_AGGREGATION_ENABLED, true); - configuration + conf.setBoolean(YarnConfiguration.LOG_AGGREGATION_ENABLED, true); + conf .set(YarnConfiguration.NM_REMOTE_APP_LOG_DIR, remoteLogRootDir); - configuration.setBoolean(YarnConfiguration.YARN_ACL_ENABLE, true); - configuration.set(YarnConfiguration.YARN_ADMIN_ACL, "admin"); + conf.setBoolean(YarnConfiguration.YARN_ACL_ENABLE, true); + conf.set(YarnConfiguration.YARN_ADMIN_ACL, "admin"); ApplicationId appId = ApplicationId.newInstance(0, 1); ApplicationAttemptId appAttemptId = @@ -1482,16 +1477,16 @@ public void testListNodeInfo() throws Exception { nodeIds.add(nodeId2); String rootLogDir = "target/LocalLogs"; - FileSystem fs = FileSystem.get(configuration); + FileSystem fs = FileSystem.get(conf); - createContainerLogs(configuration, remoteLogRootDir, rootLogDir, fs, + createContainerLogs(conf, remoteLogRootDir, rootLogDir, fs, appId, containerIds, nodeIds); YarnClient mockYarnClient = createMockYarnClient(YarnApplicationState.FINISHED, UserGroupInformation.getCurrentUser().getShortUserName()); LogsCLI cli = new LogsCLIForTest(mockYarnClient); - cli.setConf(configuration); + cli.setConf(conf); cli.run(new String[] { "-applicationId", appId.toString(), "-list_nodes" }); @@ -1508,13 +1503,12 @@ public void testListNodeInfo() throws Exception { @Test (timeout = 15000) public void testFetchApplictionLogsHar() throws Exception { String remoteLogRootDir = "target/logs/"; - Configuration configuration = new YarnConfiguration(); - configuration.setBoolean(YarnConfiguration.LOG_AGGREGATION_ENABLED, true); - configuration + conf.setBoolean(YarnConfiguration.LOG_AGGREGATION_ENABLED, true); + conf .set(YarnConfiguration.NM_REMOTE_APP_LOG_DIR, remoteLogRootDir); - configuration.setBoolean(YarnConfiguration.YARN_ACL_ENABLE, true); - configuration.set(YarnConfiguration.YARN_ADMIN_ACL, "admin"); - FileSystem fs = FileSystem.get(configuration); + conf.setBoolean(YarnConfiguration.YARN_ACL_ENABLE, true); + conf.set(YarnConfiguration.YARN_ADMIN_ACL, "admin"); + FileSystem fs = FileSystem.get(conf); UserGroupInformation ugi = UserGroupInformation.getCurrentUser(); URL harUrl = ClassLoader.getSystemClassLoader() .getResource("application_1440536969523_0001.har"); @@ -1534,7 +1528,7 @@ public void testFetchApplictionLogsHar() throws Exception { createMockYarnClient(YarnApplicationState.FINISHED, ugi.getShortUserName()); LogsCLI cli = new LogsCLIForTest(mockYarnClient); - cli.setConf(configuration); + cli.setConf(conf); int exitCode = cli.run(new String[]{"-applicationId", "application_1440536969523_0001"}); assertTrue(exitCode == 0);