diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml index efef1e30e3df6..f836adaf35887 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml @@ -1072,15 +1072,6 @@ /yarn/conf - - The setting that controls whether yarn system metrics is - published to the Timeline server (version one) or not, by RM. - This configuration is now deprecated in favor of - yarn.system-metrics-publisher.enabled. - yarn.resourcemanager.system-metrics-publisher.enabled - false - - The setting that controls whether yarn system metrics is published on the Timeline service or not by RM And NM. diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/conf/TestYarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/conf/TestYarnConfiguration.java index 3b76d41af795e..c69ed03f6ddf7 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/conf/TestYarnConfiguration.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/conf/TestYarnConfiguration.java @@ -19,13 +19,22 @@ package org.apache.hadoop.yarn.conf; import java.net.InetSocketAddress; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; import java.util.concurrent.TimeUnit; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; import org.apache.commons.lang3.math.NumberUtils; import org.junit.jupiter.api.Test; +import org.w3c.dom.Document; +import org.w3c.dom.NodeList; + import org.apache.hadoop.yarn.webapp.util.WebAppUtils; +import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotSame; @@ -266,4 +275,31 @@ void checkRmAmExpiryIntervalSetting() throws Exception { assertTrue(NumberUtils.isDigits(rmAmExpiryIntervalMS1)); assertEquals(600000, Long.parseLong(rmAmExpiryIntervalMS1)); } + + @Test + public void testNoDeprecationsByDefault() throws Exception { + // Force initialization to make sure deprecations are recorded for later calls to isDeprecated. + new YarnConfiguration(); + + // This test directly parses the default XML configuration file to check for deprecated + // properties, bypassing normalization logic in the Configuration class that might hide them. + DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); + DocumentBuilder db = dbf.newDocumentBuilder(); + List deprecatedProps = new ArrayList<>(); + + try (InputStream is = getClass().getResourceAsStream("/yarn-default.xml")) { + Document doc = db.parse(is); + NodeList props = doc.getElementsByTagName("name"); + for (int i = 0; i < props.getLength(); ++i) { + String prop = props.item(i).getTextContent(); + if (YarnConfiguration.isDeprecated(prop)) { + deprecatedProps.add(prop); + } + } + } + + assertThat(deprecatedProps) + .as("By default, deprecated properties should be empty: %s", deprecatedProps) + .isEmpty(); + } }