AMBARI-14035. Add blueprint support for drpc.servers and mapreduce.job.hdfs-servers (smohanty)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/350e9b3e Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/350e9b3e Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/350e9b3e Branch: refs/heads/branch-dev-patch-upgrade Commit: 350e9b3eed3608417536d90259a497b3ebd7079d Parents: 2444745 Author: Sumit Mohanty <[email protected]> Authored: Sat Feb 13 09:47:25 2016 -0800 Committer: Sumit Mohanty <[email protected]> Committed: Sat Feb 13 09:47:25 2016 -0800 ---------------------------------------------------------------------- .../BlueprintConfigurationProcessor.java | 2 + .../BlueprintConfigurationProcessorTest.java | 48 ++++++++++++++++++++ 2 files changed, 50 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/350e9b3e/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessor.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessor.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessor.java index 7fb2592..2d9a851 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessor.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessor.java @@ -2255,6 +2255,7 @@ public class BlueprintConfigurationProcessor { mapredSiteMap.put("mapred.job.tracker", new SingleHostTopologyUpdater("JOBTRACKER")); mapredSiteMap.put("mapred.job.tracker.http.address", new SingleHostTopologyUpdater("JOBTRACKER")); mapredSiteMap.put("mapreduce.history.server.http.address", new SingleHostTopologyUpdater("JOBTRACKER")); + mapredSiteMap.put("mapreduce.job.hdfs-servers", new SingleHostTopologyUpdater("NAMENODE")); // HISTORY_SERVER @@ -2380,6 +2381,7 @@ public class BlueprintConfigurationProcessor { stormSiteMap.put("nimbus.host", new SingleHostTopologyUpdater("NIMBUS")); stormSiteMap.put("nimbus_hosts", new SingleHostTopologyUpdater("NIMBUS")); stormSiteMap.put("drpc_server_host", new SingleHostTopologyUpdater("DRPC_SERVER")); + stormSiteMap.put("drpc.servers", new SingleHostTopologyUpdater("DRPC_SERVER")); stormSiteMap.put("storm_ui_server_host", new SingleHostTopologyUpdater("STORM_UI_SERVER")); stormSiteMap.put("worker.childopts", new OptionalSingleHostTopologyUpdater("GANGLIA_SERVER")); stormSiteMap.put("supervisor.childopts", new OptionalSingleHostTopologyUpdater("GANGLIA_SERVER")); http://git-wip-us.apache.org/repos/asf/ambari/blob/350e9b3e/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessorTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessorTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessorTest.java index 9c76e8a..15166f7 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessorTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessorTest.java @@ -6226,6 +6226,54 @@ public class BlueprintConfigurationProcessorTest { @Test + public void testResolutionOfDRPCServerAndNN() throws Exception { + // Given + final String stormConfigType = "storm-site"; + final String mrConfigType = "mapred-site"; + Map<String, Map<String, String>> properties = new HashMap<String, Map<String, String>>(); + Map<String, String> stormConfigProperties = new HashMap<String, String>(); + Map<String, String> mrConfigProperties = new HashMap<String, String>(); + + properties.put(stormConfigType, stormConfigProperties); + properties.put(mrConfigType, mrConfigProperties); + stormConfigProperties.put("drpc.servers", "['%HOSTGROUP::group1%']"); + mrConfigProperties.put("mapreduce.job.hdfs-servers", "['%HOSTGROUP::group2%']"); + + + Map<String, Map<String, String>> parentProperties = new HashMap<String, Map<String, String>>(); + Configuration parentClusterConfig = new Configuration(parentProperties, + Collections.<String, Map<String, Map<String, String>>>emptyMap()); + Configuration clusterConfig = new Configuration(properties, + Collections.<String, Map<String, Map<String, String>>>emptyMap(), parentClusterConfig); + + + Collection<String> stormComponents = new HashSet<String>(); + stormComponents.add("NIMBUS"); + stormComponents.add("DRPC_SERVER"); + + Collection<String> hdfsComponents = new HashSet<String>(); + hdfsComponents.add("NAMENODE"); + + + TestHostGroup group1 = new TestHostGroup("group1", stormComponents, Collections.singleton("host1")); + group1.components.add("DATANODE"); + + TestHostGroup group2 = new TestHostGroup("group2", hdfsComponents, Collections.singleton("host2")); + + Collection<TestHostGroup> hostGroups = Lists.newArrayList(group1, group2); + + ClusterTopology topology = createClusterTopology(bp, clusterConfig, hostGroups); + BlueprintConfigurationProcessor configProcessor = new BlueprintConfigurationProcessor(topology); + + // When + configProcessor.doUpdateForClusterCreate(); + + // Then + assertEquals("['host1']", clusterConfig.getPropertyValue(stormConfigType, "drpc.servers")); + assertEquals("['host2']", clusterConfig.getPropertyValue(mrConfigType, "mapreduce.job.hdfs-servers")); + } + + @Test public void testHadoopWithRangerKmsServer() throws Exception { // Given final String configType = "core-site";
