YARN-2182. Updated ContainerId#toString() to append RM Epoch number. Contributed by Tsuyoshi OZAWA
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/e2d0ff36 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/e2d0ff36 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/e2d0ff36 Branch: refs/heads/HDFS-6584 Commit: e2d0ff364a84a4de10e7b11fe83cd3dab155a571 Parents: c5d9a4a Author: Jian He <[email protected]> Authored: Wed Aug 27 10:02:45 2014 -0700 Committer: Jian He <[email protected]> Committed: Wed Aug 27 10:02:45 2014 -0700 ---------------------------------------------------------------------- hadoop-yarn-project/CHANGES.txt | 3 +++ .../org/apache/hadoop/yarn/api/records/ContainerId.java | 10 +++++++--- .../java/org/apache/hadoop/yarn/api/TestContainerId.java | 4 +++- 3 files changed, 13 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/e2d0ff36/hadoop-yarn-project/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index 36d304c..871829a 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -157,6 +157,9 @@ Release 2.6.0 - UNRELEASED YARN-1326. RM should log using RMStore at startup time. (Tsuyoshi Ozawa via kasha) + YARN-2182. Updated ContainerId#toString() to append RM Epoch number. + (Tsuyoshi OZAWA via jianhe) + OPTIMIZATIONS BUG FIXES http://git-wip-us.apache.org/repos/asf/hadoop/blob/e2d0ff36/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/ContainerId.java ---------------------------------------------------------------------- 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 73e8085..fc7f404 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 @@ -83,7 +83,7 @@ public abstract class ContainerId implements Comparable<ContainerId>{ // TODO: fail the app submission if attempts are more than 10 or something - private static final ThreadLocal<NumberFormat> appAttemptIdFormat = + private static final ThreadLocal<NumberFormat> appAttemptIdAndEpochFormat = new ThreadLocal<NumberFormat>() { @Override public NumberFormat initialValue() { @@ -153,9 +153,13 @@ public abstract class ContainerId implements Comparable<ContainerId>{ sb.append(ApplicationId.appIdFormat.get().format(appId.getId())) .append("_"); sb.append( - appAttemptIdFormat.get().format( + appAttemptIdAndEpochFormat.get().format( getApplicationAttemptId().getAttemptId())).append("_"); - sb.append(containerIdFormat.get().format(getId())); + sb.append(containerIdFormat.get().format(0x3fffff & getId())); + int epoch = getId() >> 22; + if (epoch > 0) { + sb.append("_").append(appAttemptIdAndEpochFormat.get().format(epoch)); + } return sb.toString(); } http://git-wip-us.apache.org/repos/asf/hadoop/blob/e2d0ff36/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/api/TestContainerId.java ---------------------------------------------------------------------- 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 f92df8a..b23d0ed 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 @@ -54,7 +54,9 @@ public class 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(479987, 0x003fffff & c6.getId()); + Assert.assertEquals(6, c6.getId() >> 22); + Assert.assertEquals("container_" + ts + "_36473_4365472_479987_06", c6.toString()); }
