diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/ContainerId.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/ContainerId.java index 73e8085..495875d 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/ContainerId.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/ContainerId.java @@ -33,6 +33,8 @@ @Public @Stable public abstract class ContainerId implements Comparable{ + private final int ID_BIT_MASK = 0x003fffff; + private final int EPOCH_BIT_SHIFT = 22; @Private @Unstable @@ -155,7 +157,10 @@ public String toString() { sb.append( appAttemptIdFormat.get().format( getApplicationAttemptId().getAttemptId())).append("_"); - sb.append(containerIdFormat.get().format(getId())); + sb.append(containerIdFormat.get().format( + ID_BIT_MASK & getId())).append("_"); + sb.append(containerIdFormat.get().format( + getId() >> EPOCH_BIT_SHIFT)); return sb.toString(); } diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/api/TestContainerId.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/api/TestContainerId.java index f92df8a..a21a731 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/api/TestContainerId.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/api/TestContainerId.java @@ -53,8 +53,10 @@ 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_" + ts + "_36473_4365472_25645811", + Assert.assertEquals("container_10_0001_01_000001_000000", c1.toString()); + Assert.assertEquals(479987, 0x003fffff & c6.getId()); + Assert.assertEquals(6, c6.getId() >> 22); + Assert.assertEquals("container_" + ts + "_36473_4365472_479987_000006", c6.toString()); }