You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by al...@apache.org on 2015/03/14 18:55:47 UTC
ambari git commit: AMBARI-10070. RU - AMS service check may fail,
need to exclude AMS from Service Check Group in Upgrade Pack
(alejandro)
Repository: ambari
Updated Branches:
refs/heads/trunk af98d3bb0 -> a5f99f4f4
AMBARI-10070. RU - AMS service check may fail, need to exclude AMS from Service Check Group in Upgrade Pack (alejandro)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/a5f99f4f
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/a5f99f4f
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/a5f99f4f
Branch: refs/heads/trunk
Commit: a5f99f4f4f641166fae476ca733858cca4bc4cd0
Parents: af98d3b
Author: Alejandro Fernandez <af...@hortonworks.com>
Authored: Fri Mar 13 18:02:40 2015 -0700
Committer: Alejandro Fernandez <af...@hortonworks.com>
Committed: Sat Mar 14 10:55:29 2015 -0700
----------------------------------------------------------------------
.../stack/upgrade/ServiceCheckGrouping.java | 7 +
.../stacks/HDP/2.2/upgrades/upgrade-2.2.xml | 9 +
.../ambari/server/stack/StackManagerTest.java | 1 +
.../ambari/server/state/UpgradeHelperTest.java | 20 +-
.../2.1.1/services/AMBARI_METRICS/metainfo.xml | 133 +++++++++++++
.../HDP/2.2.0/upgrades/upgrade_test_checks.xml | 188 +++++++++++++++++++
6 files changed, 350 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/a5f99f4f/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ServiceCheckGrouping.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ServiceCheckGrouping.java b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ServiceCheckGrouping.java
index 4eedde2..4fe5e98 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ServiceCheckGrouping.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ServiceCheckGrouping.java
@@ -54,6 +54,10 @@ public class ServiceCheckGrouping extends Grouping {
@XmlElement(name="service")
private Set<String> priorityServices = new HashSet<String>();
+ @XmlElementWrapper(name="exclude")
+ @XmlElement(name="service")
+ private Set<String> excludeServices = new HashSet<String>();
+
private ServiceCheckBuilder m_builder = new ServiceCheckBuilder();
@Override
@@ -105,6 +109,9 @@ public class ServiceCheckGrouping extends Grouping {
// create stages for everything else, as long it is valid
for (String service : clusterServices) {
+ if (ServiceCheckGrouping.this.excludeServices.contains(service)) {
+ continue;
+ }
if (checkServiceValidity(ctx, service, serviceMap)) {
StageWrapper wrapper = new StageWrapper(
StageWrapper.Type.SERVICE_CHECK,
http://git-wip-us.apache.org/repos/asf/ambari/blob/a5f99f4f/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.2.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.2.xml b/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.2.xml
index b3b351b..0cf8ff2 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.2.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.2.xml
@@ -97,6 +97,9 @@
<service>YARN</service>
<service>HBASE</service>
</priority>
+ <exclude>
+ <service>AMBARI_METRICS</service>
+ </exclude>
</group>
<group name="CORE_SLAVES" title="Core Slaves" xsi:type="colocated">
@@ -128,6 +131,9 @@
<service>YARN</service>
<service>HBASE</service>
</priority>
+ <exclude>
+ <service>AMBARI_METRICS</service>
+ </exclude>
</group>
<group name="HIVE" title="Hive">
@@ -210,6 +216,9 @@
<service>YARN</service>
<service>HBASE</service>
</priority>
+ <exclude>
+ <service>AMBARI_METRICS</service>
+ </exclude>
</group>
<group name="KAFKA" title="Kafka">
http://git-wip-us.apache.org/repos/asf/ambari/blob/a5f99f4f/ambari-server/src/test/java/org/apache/ambari/server/stack/StackManagerTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/stack/StackManagerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/stack/StackManagerTest.java
index 95b7581..2f2a5e5 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/stack/StackManagerTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/stack/StackManagerTest.java
@@ -208,6 +208,7 @@ public class StackManagerTest {
expectedServices.add("FLUME");
expectedServices.add("FAKENAGIOS");
expectedServices.add("TEZ");
+ expectedServices.add("AMBARI_METRICS");
ServiceInfo pigService = null;
for (ServiceInfo service : services) {
http://git-wip-us.apache.org/repos/asf/ambari/blob/a5f99f4f/ambari-server/src/test/java/org/apache/ambari/server/state/UpgradeHelperTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/UpgradeHelperTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/UpgradeHelperTest.java
index 96c01d5..be39bc2 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/state/UpgradeHelperTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/state/UpgradeHelperTest.java
@@ -428,15 +428,14 @@ public class UpgradeHelperTest {
@Test
public void testServiceCheckUpgradeStages() throws Exception {
-
- Map<String, UpgradePack> upgrades = ambariMetaInfo.getUpgradePacks("HDP", "2.1.1");
+ Map<String, UpgradePack> upgrades = ambariMetaInfo.getUpgradePacks("HDP", "2.2.0");
assertTrue(upgrades.containsKey("upgrade_test_checks"));
UpgradePack upgrade = upgrades.get("upgrade_test_checks");
assertNotNull(upgrade);
Cluster c = makeCluster();
// HBASE and PIG have service checks, but not TEZ.
- Set<String> additionalServices = new HashSet<String>() {{ add("HBASE"); add("PIG"); add("TEZ"); }};
+ Set<String> additionalServices = new HashSet<String>() {{ add("HBASE"); add("PIG"); add("TEZ"); add("AMBARI_METRICS"); }};
for(String service : additionalServices) {
c.addService(service);
}
@@ -446,13 +445,18 @@ public class UpgradeHelperTest {
for(Service service : services) {
ServiceInfo si = ambariMetaInfo.getService(c.getCurrentStackVersion().getStackName(),
c.getCurrentStackVersion().getStackVersion(), service.getName());
- if (null != si.getCommandScript()) {
- numServiceChecksExpected++;
- if (service.getName().equalsIgnoreCase("TEZ")) {
- assertTrue("Expect Tez to not have any service checks", false);
- }
+ if (null == si.getCommandScript()) {
+ continue;
+ }
+ if (service.getName().equalsIgnoreCase("TEZ")) {
+ assertTrue("Expect Tez to not have any service checks", false);
+ }
+
+ // Expect AMS to not run any service checks because it is excluded
+ if (service.getName().equalsIgnoreCase("AMBARI_METRICS")) {
continue;
}
+ numServiceChecksExpected++;
}
UpgradeContext context = new UpgradeContext(m_masterHostResolver,
http://git-wip-us.apache.org/repos/asf/ambari/blob/a5f99f4f/ambari-server/src/test/resources/stacks/HDP/2.1.1/services/AMBARI_METRICS/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/resources/stacks/HDP/2.1.1/services/AMBARI_METRICS/metainfo.xml b/ambari-server/src/test/resources/stacks/HDP/2.1.1/services/AMBARI_METRICS/metainfo.xml
new file mode 100644
index 0000000..aea1252
--- /dev/null
+++ b/ambari-server/src/test/resources/stacks/HDP/2.1.1/services/AMBARI_METRICS/metainfo.xml
@@ -0,0 +1,133 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<metainfo>
+ <schemaVersion>2.0</schemaVersion>
+ <services>
+ <service>
+ <name>AMBARI_METRICS</name>
+ <displayName>Ambari Metrics</displayName>
+ <version>1.0</version>
+ <comment>A system for metrics collection that provides storage and retrieval capability for metrics collected from the cluster
+ </comment>
+ <components>
+ <component>
+ <name>METRICS_COLLECTOR</name>
+ <displayName>Metrics Collector</displayName>
+ <category>MASTER</category>
+ <cardinality>1</cardinality>
+ <versionAdvertised>false</versionAdvertised>
+ <dependencies>
+ <dependency>
+ <name>ZOOKEEPER/ZOOKEEPER_SERVER</name>
+ <scope>cluster</scope>
+ <auto-deploy>
+ <enabled>true</enabled>
+ </auto-deploy>
+ </dependency>
+ </dependencies>
+ <commandScript>
+ <script>scripts/metrics_collector.py</script>
+ <scriptType>PYTHON</scriptType>
+ <timeout>1200</timeout>
+ </commandScript>
+ </component>
+ <component>
+ <name>METRICS_MONITOR</name>
+ <displayName>Metrics Monitor</displayName>
+ <category>SLAVE</category>
+ <cardinality>ALL</cardinality>
+ <versionAdvertised>false</versionAdvertised>
+ <auto-deploy>
+ <enabled>true</enabled>
+ </auto-deploy>
+ <commandScript>
+ <script>scripts/metrics_monitor.py</script>
+ <scriptType>PYTHON</scriptType>
+ <timeout>1200</timeout>
+ </commandScript>
+ </component>
+ </components>
+
+ <osSpecifics>
+ <osSpecific>
+ <osFamily>redhat5,redhat6,suse11</osFamily>
+ <packages>
+ <package>
+ <name>ambari-metrics-collector</name>
+ </package>
+ <package>
+ <name>ambari-metrics-monitor</name>
+ </package>
+ <package>
+ <name>ambari-metrics-hadoop-sink</name>
+ </package>
+ <package>
+ <name>gcc</name>
+ </package>
+ </packages>
+ </osSpecific>
+ <osSpecific>
+ <osFamily>ubuntu12</osFamily>
+ <packages>
+ <package>
+ <name>ambari-metrics-assembly</name>
+ </package>
+ <package>
+ <name>gcc</name>
+ </package>
+ </packages>
+ </osSpecific>
+ <osSpecific>
+ <osFamily>winsrv6</osFamily>
+ <packages>
+ <package>
+ <name>ambari-metrics-collector.msi</name>
+ </package>
+ <package>
+ <name>ambari-metrics-monitor.msi</name>
+ </package>
+ <package>
+ <name>ambari-metrics-hadoop-sink.msi</name>
+ </package>
+ </packages>
+ </osSpecific>
+ </osSpecifics>
+
+ <commandScript>
+ <script>scripts/service_check.py</script>
+ <scriptType>PYTHON</scriptType>
+ <timeout>300</timeout>
+ </commandScript>
+
+ <requiredServices>
+ <service>ZOOKEEPER</service>
+ </requiredServices>
+
+ <configuration-dependencies>
+ <config-type>ams-site</config-type>
+ <config-type>ams-log4j</config-type>
+ <config-type>ams-hbase-policy</config-type>
+ <config-type>ams-hbase-site</config-type>
+ <config-type>ams-hbase-security-site</config-type>
+ <config-type>ams-hbase-env</config-type>
+ <config-type>ams-hbase-log4j</config-type>
+ </configuration-dependencies>
+
+ </service>
+ </services>
+</metainfo>
http://git-wip-us.apache.org/repos/asf/ambari/blob/a5f99f4f/ambari-server/src/test/resources/stacks/HDP/2.2.0/upgrades/upgrade_test_checks.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/resources/stacks/HDP/2.2.0/upgrades/upgrade_test_checks.xml b/ambari-server/src/test/resources/stacks/HDP/2.2.0/upgrades/upgrade_test_checks.xml
new file mode 100644
index 0000000..4ad019c
--- /dev/null
+++ b/ambari-server/src/test/resources/stacks/HDP/2.2.0/upgrades/upgrade_test_checks.xml
@@ -0,0 +1,188 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<upgrade xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <target>2.2.*</target>
+
+ <order>
+ <group xsi:type="cluster" name="PRE_CLUSTER" title="Pre Upgrade" stage="pre">
+ <execute-stage title="Confirm 1">
+ <task xsi:type="manual">
+ <message>Foo</message>
+ </task>
+ </execute-stage>
+ <execute-stage service="HDFS" component="NAMENODE" title="Finalize HDFS">
+ <task xsi:type="execute">
+ <command>ls</command>
+ </task>
+ </execute-stage>
+ <execute-stage title="Confirm 2">
+ <task xsi:type="manual">
+ <message>Foo</message>
+ </task>
+ </execute-stage>
+ </group>
+
+ <group name="ZOOKEEPER" title="Zookeeper">
+ <service name="ZOOKEEPER">
+ <component>ZOOKEEPER_SERVER</component>
+ <component>ZOOKEEPER_CLIENT</component>
+ </service>
+ </group>
+ <group name="CORE_MASTER" title="Core Masters">
+ <service name="HDFS">
+ <component>JOURNALNODE</component>
+ <component>NAMENODE</component>
+ </service>
+ <service name="YARN">
+ <component>RESOURCEMANAGER</component>
+ </service>
+ <service-check>false</service-check>
+ </group>
+
+ <group name="SERVICE_CHECK_1" title="Post-Master Service Checks" xsi:type="service-check">
+ <priority>
+ <service>HDFS</service>
+ <service>YARN</service>
+ </priority>
+ <exclude>
+ <service>AMBARI_METRICS</service>
+ </exclude>
+ </group>
+
+ <group name="CORE_SLAVES" title="Core Slaves" xsi:type="colocated">
+ <skippable>true</skippable> <!-- set skippable for test -->
+ <allow-retry>false</allow-retry> <!-- set no retry for test -->
+ <service name="HDFS">
+ <component>DATANODE</component>
+ </service>
+ <service name="HBASE">
+ <component>REGIONSERVER</component>
+ </service>
+ <service name="YARN">
+ <component>NODEMANAGER</component>
+ </service>
+
+ <batch>
+ <percent>20</percent>
+ <message>Please run additional tests</message>
+ </batch>
+ </group>
+
+ <group name="SERVICE_CHECK_2" title="Post-Slave Service Checks" xsi:type="service-check">
+ <priority>
+ <service>HDFS</service>
+ <service>YARN</service>
+ </priority>
+ <exclude>
+ <service>AMBARI_METRICSS</service>
+ </exclude>
+ </group>
+
+
+ <group xsi:type="cluster" name="POST_CLUSTER" title="Finalize Upgrade" stage="post">
+ <execute-stage title="Confirm Finalize">
+ <task xsi:type="manual">
+ <message>Please confirm you are ready to finalize</message>
+ </task>
+ </execute-stage>
+ <execute-stage service="HDFS" component="NAMENODE" title="Execute HDFS Finalize">
+ <task xsi:type="execute">
+ <command>ls</command>
+ </task>
+ </execute-stage>
+ <execute-stage title="Save Cluster State" service="" component="">
+ <task xsi:type="server_action" class="org.apache.ambari.server.serveraction.upgrades.FinalizeUpgradeAction">
+ </task>
+ </execute-stage>
+ </group>
+
+ </order>
+
+
+ <processing>
+
+ <service name="ZOOKEEPER">
+ <component name="ZOOKEEPER_SERVER">
+ <pre-upgrade>
+ <task xsi:type="manual">
+ <summary>SUMMARY OF PREPARE</summary>
+ <message>This is a manual task with a placeholder of {{foo/bar}}</message>
+ </task>
+ </pre-upgrade>
+ <upgrade>
+ <task xsi:type="restart" />
+ </upgrade>
+ <post-upgrade>
+ <task xsi:type="configure" />
+ </post-upgrade>
+ </component>
+ </service>
+ <service name="HDFS">
+ <component name="NAMENODE">
+ <pre-upgrade>
+ <task xsi:type="execute" hosts="master">
+ <command>su - {hdfs-user} -c 'dosomething'</command>
+ </task>
+ <task xsi:type="configure">
+ <type>hdfs-site</type>
+ <key>myproperty</key>
+ <value>mynewvalue</value>
+ </task>
+ <task xsi:type="manual">
+ <message>Update your database</message>
+ </task>
+ </pre-upgrade>
+ <upgrade>
+ <task xsi:type="restart" />
+ </upgrade>
+ <post-upgrade>
+ <task xsi:type="execute">
+ <command>ls</command>
+ </task>
+ </post-upgrade>
+ </component>
+ <component name="DATANODE">
+ <pre-downgrade />
+ <upgrade>
+ <task xsi:type="restart" />
+ </upgrade>
+ <post-downgrade>
+ <task xsi:type="manual">
+ <message>Manual Downgrade</message>
+ </task>
+ </post-downgrade>
+ </component>
+ </service>
+ <service name="YARN">
+ <component name="RESOURCEMANAGER">
+ <pre-upgrade>
+ <task xsi:type="execute">
+ <command>ls</command>
+ </task>
+ </pre-upgrade>
+ </component>
+ <component name="NODEMANAGER">
+ <pre-upgrade>
+ <task xsi:type="execute">
+ <command>ls</command>
+ </task>
+ </pre-upgrade>
+ </component>
+ </service>
+ </processing>
+</upgrade>