.../org/apache/hadoop/yarn/api/records/ContainerId.java | 6 +++--- .../java/org/apache/hadoop/yarn/api/TestContainerId.java | 2 +- .../yarn/logaggregation/TestAggregatedLogsBlock.java | 16 ++++++++-------- .../org/apache/hadoop/yarn/util/TestConverterUtils.java | 12 ++++++++++-- 4 files changed, 22 insertions(+), 14 deletions(-) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/ContainerId.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/ContainerId.java index c9b9618..e47da48 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/ContainerId.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/ContainerId.java @@ -116,7 +116,7 @@ public static ContainerId newInstance(ApplicationAttemptId appAttemptId, // TODO: fail the app submission if attempts are more than 10 or something - private static final ThreadLocal appAttemptIdAndEpochFormat = + private static final ThreadLocal epochFormat = new ThreadLocal() { @Override public NumberFormat initialValue() { @@ -191,14 +191,14 @@ public String toString() { long epoch = getContainerId() >> 40; if (epoch > 0) { sb.append(EPOCH_PREFIX) - .append(appAttemptIdAndEpochFormat.get().format(epoch)).append("_");; + .append(epochFormat.get().format(epoch)).append("_");; } ApplicationId appId = getApplicationAttemptId().getApplicationId(); sb.append(appId.getClusterTimestamp()).append("_"); sb.append(ApplicationId.appIdFormat.get().format(appId.getId())) .append("_"); sb.append( - appAttemptIdAndEpochFormat.get().format( + ApplicationAttemptId.attemptIdFormat.get().format( getApplicationAttemptId().getAttemptId())).append("_"); sb.append(containerIdFormat.get() .format(CONTAINER_ID_BITMASK & getContainerId())); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/api/TestContainerId.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/api/TestContainerId.java index 1643301..856ccdb 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/api/TestContainerId.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/api/TestContainerId.java @@ -53,7 +53,7 @@ public void testContainerId() { long ts = System.currentTimeMillis(); ContainerId c6 = newContainerId(36473, 4365472, ts, 25645811); - Assert.assertEquals("container_10_0001_01_000001", c1.toString()); + Assert.assertEquals("container_10_0001_000001_000001", c1.toString()); Assert.assertEquals(25645811, 0xffffffffffL & c6.getContainerId()); Assert.assertEquals(0, c6.getContainerId() >> 40); Assert.assertEquals("container_" + ts + "_36473_4365472_25645811", diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/logaggregation/TestAggregatedLogsBlock.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/logaggregation/TestAggregatedLogsBlock.java index 2a5762c..4ddf634 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/logaggregation/TestAggregatedLogsBlock.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/logaggregation/TestAggregatedLogsBlock.java @@ -67,12 +67,12 @@ public void testAccessDenied() throws Exception { FileUtil.fullyDelete(new File("target/logs")); Configuration configuration = getConfiguration(); - writeLogs("target/logs/logs/application_0_0001/container_0_0001_01_000001"); + writeLogs("target/logs/logs/application_0_0001/container_0_0001_000001_000001"); writeLog(configuration, "owner"); AggregatedLogsBlockForTest aggregatedBlock = getAggregatedLogsBlockForTest( - configuration, "owner", "container_0_0001_01_000001"); + configuration, "owner", "container_0_0001_000001_000001"); ByteArrayOutputStream data = new ByteArrayOutputStream(); PrintWriter printWriter = new PrintWriter(data); HtmlBlock html = new HtmlBlockForTest(); @@ -97,12 +97,12 @@ public void testBadLogs() throws Exception { FileUtil.fullyDelete(new File("target/logs")); Configuration configuration = getConfiguration(); - writeLogs("target/logs/logs/application_0_0001/container_0_0001_01_000001"); + writeLogs("target/logs/logs/application_0_0001/container_0_0001_000001_000001"); writeLog(configuration, "owner"); AggregatedLogsBlockForTest aggregatedBlock = getAggregatedLogsBlockForTest( - configuration, "admin", "container_0_0001_01_000001"); + configuration, "admin", "container_0_0001_000001_000001"); ByteArrayOutputStream data = new ByteArrayOutputStream(); PrintWriter printWriter = new PrintWriter(data); HtmlBlock html = new HtmlBlockForTest(); @@ -127,12 +127,12 @@ public void testAggregatedLogsBlock() throws Exception { FileUtil.fullyDelete(new File("target/logs")); Configuration configuration = getConfiguration(); - writeLogs("target/logs/logs/application_0_0001/container_0_0001_01_000001"); + writeLogs("target/logs/logs/application_0_0001/container_0_0001_000001_000001"); writeLog(configuration, "admin"); AggregatedLogsBlockForTest aggregatedBlock = getAggregatedLogsBlockForTest( - configuration, "admin", "container_0_0001_01_000001"); + configuration, "admin", "container_0_0001_000001_000001"); ByteArrayOutputStream data = new ByteArrayOutputStream(); PrintWriter printWriter = new PrintWriter(data); HtmlBlock html = new HtmlBlockForTest(); @@ -172,7 +172,7 @@ public void testNoLogs() throws Exception { block.getWriter().flush(); String out = data.toString(); - assertTrue(out.contains("No logs available for container container_0_0001_01_000001")); + assertTrue(out.contains("No logs available for container container_0_0001_000001_000001")); } @@ -226,7 +226,7 @@ private void writeLog(Configuration configuration, String user) appAcls.put(ApplicationAccessType.VIEW_APP, ugi.getUserName()); writer.writeApplicationACLs(appAcls); - writer.append(new AggregatedLogFormat.LogKey("container_0_0001_01_000001"), + writer.append(new AggregatedLogFormat.LogKey("container_0_0001_000001_000001"), new AggregatedLogFormat.LogValue(rootLogDirs, containerId,UserGroupInformation.getCurrentUser().getShortUserName())); writer.close(); } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestConverterUtils.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestConverterUtils.java index 3cec38b..40a0f77 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestConverterUtils.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestConverterUtils.java @@ -51,16 +51,19 @@ public void testConvertUrlWithUserinfo() throws URISyntaxException { public void testContainerId() throws URISyntaxException { ContainerId id = TestContainerId.newContainerId(0, 0, 0, 0); String cid = ConverterUtils.toString(id); - assertEquals("container_0_0000_00_000000", cid); + assertEquals("container_0_0000_000000_000000", cid); ContainerId gen = ConverterUtils.toContainerId(cid); assertEquals(gen, id); + // Check to parse old format correctly. + assertEquals(ConverterUtils.toContainerId("container_0_0000_00_000000"), id); + } @Test public void testContainerIdWithEpoch() throws URISyntaxException { ContainerId id = TestContainerId.newContainerId(0, 0, 0, 25645811); String cid = ConverterUtils.toString(id); - assertEquals("container_0_0000_00_25645811", cid); + assertEquals("container_0_0000_000000_25645811", cid); ContainerId gen = ConverterUtils.toContainerId(cid); assertEquals(gen.toString(), id.toString()); @@ -80,6 +83,11 @@ public void testContainerIdWithEpoch() throws URISyntaxException { "container_e767_" + ts + "_36473_4365472_1099511627773", cid3); ContainerId gen3 = ConverterUtils.toContainerId(cid3); assertEquals(gen3.toString(), id3.toString()); + // to varify old format is working fine + String cid4 = "container_0_0000_00_25645811"; + ContainerId gen4 = ConverterUtils.toContainerId(cid4); + assertEquals(id.toString(), gen4.toString()); + } @Test