You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ds...@apache.org on 2017/09/28 14:17:45 UTC

ambari git commit: AMBARI-22074 Confusing AMS collector heap size validation loop (dsen)

Repository: ambari
Updated Branches:
  refs/heads/trunk c7c62c097 -> b660bf1a3


AMBARI-22074 Confusing AMS collector heap size validation loop (dsen)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/b660bf1a
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/b660bf1a
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/b660bf1a

Branch: refs/heads/trunk
Commit: b660bf1a30fd324d099f0cb3af1e525b4364a2d7
Parents: c7c62c0
Author: Dmytro Sen <ds...@apache.org>
Authored: Thu Sep 28 17:17:32 2017 +0300
Committer: Dmytro Sen <ds...@apache.org>
Committed: Thu Sep 28 17:17:32 2017 +0300

----------------------------------------------------------------------
 .../stacks/HDP/2.0.6/services/stack_advisor.py  | 36 +++++---------------
 1 file changed, 8 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/b660bf1a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/stack_advisor.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/stack_advisor.py b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/stack_advisor.py
index 0249ea2..5307176 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/stack_advisor.py
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/stack_advisor.py
@@ -1105,36 +1105,16 @@ class HDP206StackAdvisor(DefaultStackAdvisor):
 
   def validateAmsEnvConfigurations(self, properties, recommendedDefaults, configurations, services, hosts):
 
-    ams_env = getSiteProperties(configurations, "ams-env")
-    mb = 1024 * 1024
-    gb = 1024 * mb
     validationItems = []
+    collectorHeapsizeDefaultItem = self.validatorLessThenDefaultValue(properties, recommendedDefaults, "metrics_collector_heapsize")
+    validationItems.extend([{"config-name": "metrics_collector_heapsize", "item": collectorHeapsizeDefaultItem}])
+
+    ams_env = getSiteProperties(configurations, "ams-env")
     collector_heapsize = self.to_number(ams_env.get("metrics_collector_heapsize"))
-    amsCollectorHosts = self.getComponentHostNames(services, "AMBARI_METRICS", "METRICS_COLLECTOR")
-    for collectorHostName in amsCollectorHosts:
-      for host in hosts["items"]:
-        if host["Hosts"]["host_name"] == collectorHostName:
-          hostComponents = []
-          for service in services["services"]:
-            for component in service["components"]:
-              if component["StackServiceComponents"]["hostnames"] is not None:
-                if collectorHostName in component["StackServiceComponents"]["hostnames"]:
-                  hostComponents.append(component["StackServiceComponents"]["component_name"])
-
-          requiredMemory = self.getMemorySizeRequired(services, hostComponents, configurations)
-          unusedMemory = host["Hosts"]["total_mem"] * 1024 - requiredMemory # in bytes
-          collector_needs_increase = collector_heapsize * mb < 16 * gb
-
-          if unusedMemory > 4*gb and collector_needs_increase:  # warn user, if more than 4GB RAM is unused
-            recommended_collector_heapsize = int((unusedMemory - 4*gb)/5) + collector_heapsize * mb
-            recommended_collector_heapsize = min(16*gb, recommended_collector_heapsize) #Make sure heapsize <= 16GB
-            recommended_collector_heapsize = round_to_n(recommended_collector_heapsize/mb,128) # Round to 128m multiple
-            if collector_heapsize < recommended_collector_heapsize:
-              validation_msg = "Consider allocating {0} MB to metrics_collector_heapsize in ams-env to use up some " \
-                               "unused memory on host"
-              collectorHeapsizeItem = self.getWarnItem(validation_msg.format(recommended_collector_heapsize))
-              validationItems.extend([{"config-name": "metrics_collector_heapsize", "item": collectorHeapsizeItem}])
-    pass
+    if collector_heapsize > 32768:
+      collectorHeapsizeMaxItem = self.getWarnItem("Value is more than the recommended maximum heap size of 32G.")
+      validationItems.extend([{"config-name": "metrics_collector_heapsize", "item": collectorHeapsizeMaxItem}])
+
     return self.toConfigurationValidationProblems(validationItems, "ams-env")
 
   def getMemorySizeRequired(self, services, components, configurations):