Repository: ambari Updated Branches: refs/heads/branch-2.2 bc7032d84 -> a225f394b
AMBARI-14621: Blueprint deploy should update the value localhost for HAWQMASTER and HAWQSTANDBY (bhuvnesh2703 via jaoki) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/a225f394 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/a225f394 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/a225f394 Branch: refs/heads/branch-2.2 Commit: a225f394bc4a182d45f975dafc171419bf57f559 Parents: bc7032d Author: Jun Aoki <ja...@apache.org> Authored: Wed Jan 13 10:54:05 2016 -0800 Committer: Jun Aoki <ja...@apache.org> Committed: Wed Jan 13 10:54:05 2016 -0800 ---------------------------------------------------------------------- .../BlueprintConfigurationProcessor.java | 7 +++ .../HAWQ/2.0.0/package/scripts/master_helper.py | 4 +- .../BlueprintConfigurationProcessorTest.java | 47 ++++++++++++++++++++ 3 files changed, 55 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/a225f394/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 0b6721a..93afe0d 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 @@ -2114,6 +2114,7 @@ public class BlueprintConfigurationProcessor { Map<String, PropertyUpdater> multiRangerKmsSiteMap = new HashMap<String, PropertyUpdater>(); Map<String, PropertyUpdater> dbHiveSiteMap = new HashMap<String, PropertyUpdater>(); Map<String, PropertyUpdater> rangerAdminPropsMap = new HashMap<String, PropertyUpdater>(); + Map<String, PropertyUpdater> hawqSiteMap = new HashMap<String, PropertyUpdater>(); @@ -2131,6 +2132,7 @@ public class BlueprintConfigurationProcessor { singleHostTopologyUpdaters.put("oozie-env", oozieEnvMap); singleHostTopologyUpdaters.put("kafka-broker", kafkaBrokerMap); singleHostTopologyUpdaters.put("admin-properties", rangerAdminPropsMap); + singleHostTopologyUpdaters.put("hawq-site", hawqSiteMap); mPropertyUpdaters.put("hadoop-env", hadoopEnvMap); mPropertyUpdaters.put("hbase-env", hbaseEnvMap); @@ -2328,6 +2330,11 @@ public class BlueprintConfigurationProcessor { hbaseEnvMap.put("hbase_regionserver_heapsize", new MPropertyUpdater()); oozieEnvHeapSizeMap.put("oozie_heapsize", new MPropertyUpdater()); oozieEnvHeapSizeMap.put("oozie_permsize", new MPropertyUpdater()); + + // HAWQ + hawqSiteMap.put("hawq_master_address_host", new SingleHostTopologyUpdater("HAWQMASTER")); + hawqSiteMap.put("hawq_standby_address_host", new SingleHostTopologyUpdater("HAWQSTANDBY")); + hawqSiteMap.put("hawq_dfs_url", new SingleHostTopologyUpdater("NAMENODE")); } /** http://git-wip-us.apache.org/repos/asf/ambari/blob/a225f394/ambari-server/src/main/resources/common-services/HAWQ/2.0.0/package/scripts/master_helper.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/HAWQ/2.0.0/package/scripts/master_helper.py b/ambari-server/src/main/resources/common-services/HAWQ/2.0.0/package/scripts/master_helper.py index d30715e..a685db4 100644 --- a/ambari-server/src/main/resources/common-services/HAWQ/2.0.0/package/scripts/master_helper.py +++ b/ambari-server/src/main/resources/common-services/HAWQ/2.0.0/package/scripts/master_helper.py @@ -213,9 +213,7 @@ def start_master(): __check_dfs_truncate_enforced() is_active_master = __is_active_master() - # Exchange ssh keys from active hawq master before starting. - if is_active_master: - __setup_passwordless_ssh() + __setup_passwordless_ssh() if __is_local_initialized(): __start_local_master() http://git-wip-us.apache.org/repos/asf/ambari/blob/a225f394/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 5a0f859..a447ff1 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 @@ -6236,6 +6236,53 @@ public class BlueprintConfigurationProcessorTest { assertEquals("host1:100,host2:200", updatedValue); } + @Test + public void testHawqConfigClusterUpdate() throws Exception { + final String expectedHostNameHawqMaster = "c6401.apache.ambari.org"; + final String expectedHostNameHawqStandby = "c6402.apache.ambari.org"; + final String expectedHostNameNamenode = "c6403.apache.ambari.org"; + final String expectedPortNamenode = "8020"; + + Map<String, Map<String, String>> properties = new HashMap<String, Map<String, String>>(); + Map<String, String> hawqSite = new HashMap<String, String>(); + properties.put("hawq-site", hawqSite); + + // setup properties that include host information + hawqSite.put("hawq_master_address_host", "localhost"); + hawqSite.put("hawq_standby_address_host", "localhost"); + hawqSite.put("hawq_dfs_url", createHostAddress("localhost", expectedPortNamenode) + "/hawq_default"); + + Configuration clusterConfig = new Configuration(properties, Collections.<String, Map<String, Map<String, String>>>emptyMap()); + + //Host group which has NAMENODE + Collection<String> hgComponents = new HashSet<String>(); + hgComponents.add("NAMENODE"); + TestHostGroup group1 = new TestHostGroup("group1", hgComponents, Collections.singleton(expectedHostNameNamenode)); + + //Host group which has HAWQMASTER + Collection<String> hgComponents2 = new HashSet<String>(); + hgComponents2.add("HAWQMASTER"); + TestHostGroup group2 = new TestHostGroup("group2", hgComponents2, Collections.singleton(expectedHostNameHawqMaster)); + + //Host group which has HAWQSTANDBY + Collection<String> hgComponents3 = new HashSet<String>(); + hgComponents3.add("HAWQSTANDBY"); + TestHostGroup group3 = new TestHostGroup("group3", hgComponents3, Collections.singleton(expectedHostNameHawqStandby)); + + Collection<TestHostGroup> hostGroups = new HashSet<TestHostGroup>(); + hostGroups.add(group1); + hostGroups.add(group2); + hostGroups.add(group3); + + ClusterTopology topology = createClusterTopology(bp, clusterConfig, hostGroups); + BlueprintConfigurationProcessor updater = new BlueprintConfigurationProcessor(topology); + + updater.doUpdateForClusterCreate(); + + assertEquals(expectedHostNameHawqMaster, hawqSite.get("hawq_master_address_host")); + assertEquals(expectedHostNameHawqStandby, hawqSite.get("hawq_standby_address_host")); + assertEquals(createHostAddress(expectedHostNameNamenode, expectedPortNamenode) + "/hawq_default", hawqSite.get("hawq_dfs_url")); + } private Map<String, AdvisedConfiguration> createAdvisedConfigMap() { Map<String, AdvisedConfiguration> advMap = new HashMap<String, AdvisedConfiguration>();