You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ambari.apache.org by "Raymond (JIRA)" <ji...@apache.org> on 2016/10/18 15:04:58 UTC
[jira] [Comment Edited] (AMBARI-18376) Deploying 2 Clusters
simultaneously results in one cluster failing.
[ https://issues.apache.org/jira/browse/AMBARI-18376?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15585686#comment-15585686 ]
Raymond edited comment on AMBARI-18376 at 10/18/16 3:04 PM:
------------------------------------------------------------
This seems like it should work on 2.4 as well, but not tested.
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/topology/TopologyManager.java b/ambari-server/src/main/java/org/apache/ambari/server/topology/TopologyManager.java
index b3e3941..b7e5563 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/topology/TopologyManager.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/topology/TopologyManager.java
@@ -570,24 +570,26 @@ public class TopologyManager {
return clusterTopologyMap.get(clusterId);
}
- public Map<String, Collection<String>> getPendingHostComponents() {
+ public Map<String, Collection<String>> getPendingHostComponents(String clusterName) {
ensureInitialized();
Map<String, Collection<String>> hostComponentMap = new HashMap<String, Collection<String>>();
for (LogicalRequest logicalRequest : allRequests.values()) {
Map<Long, HostRoleCommandStatusSummaryDTO> summary = logicalRequest.getStageSummaries();
- final CalculatedStatus status = CalculatedStatus.statusFromStageSummary(summary, summary.keySet());
- if (status.getStatus().isInProgress()) {
- Map<String, Collection<String>> requestTopology = logicalRequest.getProjectedTopology();
- for (Map.Entry<String, Collection<String>> entry : requestTopology.entrySet()) {
- String host = entry.getKey();
- Collection<String> hostComponents = hostComponentMap.get(host);
- if (hostComponents == null) {
- hostComponents = new HashSet<String>();
- hostComponentMap.put(host, hostComponents);
+ if (clusterName != null && clusterName.equals(logicalRequest.getClusterName())) {
+ final CalculatedStatus status = CalculatedStatus.statusFromStageSummary(summary, summary.keySet());
+ if (status.getStatus().isInProgress()) {
+ Map<String, Collection<String>> requestTopology = logicalRequest.getProjectedTopology();
+ for (Map.Entry<String, Collection<String>> entry : requestTopology.entrySet()) {
+ String host = entry.getKey();
+ Collection<String> hostComponents = hostComponentMap.get(host);
+ if (hostComponents == null) {
+ hostComponents = new HashSet<String>();
+ hostComponentMap.put(host, hostComponents);
+ }
+ hostComponents.addAll(entry.getValue());
+ }
}
- hostComponents.addAll(entry.getValue());
- }
}
}
return hostComponentMap;
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/utils/StageUtils.java b/ambari-server/src/main/java/org/apache/ambari/server/utils/StageUtils.java
index 240bfc7..9232916 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/utils/StageUtils.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/utils/StageUtils.java
@@ -287,7 +287,7 @@ public class StageUtils {
}
// add hosts from topology manager
- Map<String, Collection<String>> pendingHostComponents = topologyManager.getPendingHostComponents();
+ Map<String, Collection<String>> pendingHostComponents = topologyManager.getPendingHostComponents(cluster.getClusterName());
for (String hostname : pendingHostComponents.keySet()) {
if (!hostsSet.contains(hostname)) {
hostsSet.add(hostname);
was (Author: rlee-pivotal):
This seems like it should work on 2.4 as well, but not tested.
> Deploying 2 Clusters simultaneously results in one cluster failing.
> -------------------------------------------------------------------
>
> Key: AMBARI-18376
> URL: https://issues.apache.org/jira/browse/AMBARI-18376
> Project: Ambari
> Issue Type: Bug
> Affects Versions: 2.2.2
> Reporter: Raymond
> Priority: Minor
> Labels: patch
> Fix For: 2.2.2
>
>
> Steps to Reproduce:
> 1) Spin up an Ambari server node
> 2) Setup 10 ambari agent nodes
> 3) create 2 blueprints and 2 cluster templates with 5 nodes for each cluster (hdfs, zookeeper, yarn)
> 4) Upload both blueprints using the ambari api
> 5) Upload both cluster templates using the ambari api
> One cluster will fail, ssh into one of the nodes (with a zookeeper server) on the failed cluster.
> Find the zoo.cfg file in /etc/zookeeper (find /etc/zookeeper -name zoo.cfg)
> Actual: cat the zoo.cfg, notice all hostnames of both clusters are in this file
> Expected: zoo.cfg should contain only the hostnames defined for this cluster.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)