Browse Source

AMBARI-16942. Take into account reading 'hive.tez.container.size', 'yarn.scheduler.minimum-allocation-mb', 'yarn.nodemanager.resource.memory-mb' & 'tez.am.resource.memory.mb' configs from configurations if they are changed in current Stack Advisor invocation

Swapan Shridhar 9 năm trước cách đây
mục cha
commit
8f353c9a89

+ 99 - 56
ambari-server/src/main/resources/stacks/HDP/2.5/services/stack_advisor.py

@@ -300,8 +300,8 @@ class HDP25StackAdvisor(HDP24StackAdvisor):
     LLAP_MAX_CONCURRENCY = 32 # Allow a max of 32 concurrency.
 
     # initial memory setting to make sure hive.llap.daemon.yarn.container.mb >= yarn.scheduler.minimum-allocation-mb
-    Logger.debug("Setting hive.llap.daemon.yarn.container.mb to yarn min container size as initial size (" + str(self.get_yarn_min_container_size(services)) + " MB).")
-    putHiveInteractiveSiteProperty('hive.llap.daemon.yarn.container.mb', long(self.get_yarn_min_container_size(services)))
+    Logger.debug("Setting hive.llap.daemon.yarn.container.mb to yarn min container size as initial size (" + str(self.get_yarn_min_container_size(services, configurations)) + " MB).")
+    putHiveInteractiveSiteProperty('hive.llap.daemon.yarn.container.mb', long(self.get_yarn_min_container_size(services, configurations)))
 
     try:
       if self.HIVE_INTERACTIVE_SITE in services['configurations'] and \
@@ -359,13 +359,13 @@ class HDP25StackAdvisor(HDP24StackAdvisor):
         assert (node_manager_host_list is not None), "Information about NODEMANAGER not found in cluster."
         node_manager_cnt = len(node_manager_host_list)
         llap_slider_cap_percentage = self.get_llap_cap_percent_slider(services, configurations)
-        yarn_nm_mem_in_mb = self.get_yarn_nm_mem_in_mb(services)
+        yarn_nm_mem_in_mb = self.get_yarn_nm_mem_in_mb(services, configurations)
         total_cluster_capacity = node_manager_cnt * yarn_nm_mem_in_mb
         Logger.info("\n\nCalculated total_cluster_capacity : {0}, using following : node_manager_cnt : {1}, "
                     "yarn_nm_mem_in_mb : {2}".format(total_cluster_capacity, node_manager_cnt, yarn_nm_mem_in_mb))
 
-        yarn_min_container_size = self.get_yarn_min_container_size(services)
-        tez_am_container_size = self._normalizeUp(self.get_tez_am_container_size(services), yarn_min_container_size)
+        yarn_min_container_size = self.get_yarn_min_container_size(services, configurations)
+        tez_am_container_size = self._normalizeUp(self.get_tez_am_container_size(services, configurations), yarn_min_container_size)
         total_llap_queue_size = float(llap_slider_cap_percentage) / 100 * total_cluster_capacity
         # Get calculated value for Slider AM container Size
         slider_am_container_size = self.calculate_slider_am_size(yarn_min_container_size)
@@ -425,7 +425,7 @@ class HDP25StackAdvisor(HDP24StackAdvisor):
 
 
         # Calculate value for 'hive.llap.daemon.num.executors', a per node config.
-        hive_tez_container_size = self.get_hive_tez_container_size(services)
+        hive_tez_container_size = self.get_hive_tez_container_size(services, configurations)
         if 'yarn.nodemanager.resource.cpu-vcores' in services['configurations']['yarn-site']['properties']:
           cpu_per_nm_host = float(services['configurations']['yarn-site']['properties'][
                                     'yarn.nodemanager.resource.cpu-vcores'])
@@ -509,7 +509,7 @@ class HDP25StackAdvisor(HDP24StackAdvisor):
       traceback.print_exc()
 
       try:
-        yarn_min_container_size = long(self.get_yarn_min_container_size(services))
+        yarn_min_container_size = long(self.get_yarn_min_container_size(services, configurations))
         slider_am_container_size = long(self.calculate_slider_am_size(yarn_min_container_size))
         putHiveInteractiveSiteProperty('hive.server2.tez.sessions.per.default.queue', 0)
         putHiveInteractiveSitePropertyAttribute('hive.server2.tez.sessions.per.default.queue', "minimum", 0)
@@ -625,33 +625,53 @@ class HDP25StackAdvisor(HDP24StackAdvisor):
       raise Fail("Couldn't retrieve Hive Server interactive's 'num_llap_nodes' config.")
 
   """
-  Gets HIVE Tez container size (hive.tez.container.size)
+  Gets HIVE Tez container size (hive.tez.container.size). Takes into account if it has been calculated as part of current
+  Stack Advisor invocation.
   """
-  def get_hive_tez_container_size(self, services):
-    hive_container_size = 0
-    if 'hive.tez.container.size' in services['configurations']['hive-site']['properties']:
-      hive_container_size = float(
-        services['configurations']['hive-site']['properties']['hive.tez.container.size'])
-      assert (
-        hive_container_size > 0), "'hive.tez.container.size' current value : {0}. Expected value : > 0".format(
-        hive_container_size)
-    else:
+  def get_hive_tez_container_size(self, services, configurations):
+    hive_container_size = None
+    # Check if 'hive.tez.container.size' is modified in current ST invocation.
+    if 'hive-site' in configurations and 'hive.tez.container.size' in configurations['hive-site']['properties']:
+      hive_container_size = float(configurations['hive-site']['properties']['hive.tez.container.size'])
+      Logger.info("''hive.tez.container.size'' read from configurations as : {0}".format(hive_container_size))
+
+    if not hive_container_size:
+      # Check if 'hive.tez.container.size' is input in services array.
+      if 'hive.tez.container.size' in services['configurations']['hive-site']['properties']:
+        hive_container_size = float(services['configurations']['hive-site']['properties']['hive.tez.container.size'])
+        Logger.info("''hive.tez.container.size'' read from services as : {0}".format(hive_container_size))
+
+    if not hive_container_size:
       raise Fail("Couldn't retrieve Hive Server 'hive.tez.container.size' config.")
+
+    assert (hive_container_size > 0), "'hive.tez.container.size' current value : {0}. Expected value : > 0".format(
+          hive_container_size)
+
     return hive_container_size
 
   """
-  Gets YARN's mimimum container size (yarn.scheduler.minimum-allocation-mb)
+  Gets YARN's mimimum container size (yarn.scheduler.minimum-allocation-mb). Takes into account if it has been calculated
+  as part of current Stack Advisor invocation.
   """
-  def get_yarn_min_container_size(self, services):
-    yarn_min_container_size = 0
-    if 'yarn.scheduler.minimum-allocation-mb' in services['configurations']['yarn-site']['properties']:
-      yarn_min_container_size = float(
-        services['configurations']['yarn-site']['properties']['yarn.scheduler.minimum-allocation-mb'])
-      assert (
-        yarn_min_container_size > 0), "'yarn.scheduler.minimum-allocation-mb' current value : {0}. Expected value : > 0".format(
-        yarn_min_container_size)
-    else:
+  def get_yarn_min_container_size(self, services, configurations):
+    yarn_min_container_size = None
+    # Check if 'yarn.scheduler.minimum-allocation-mb' is modified in current ST invocation.
+    if 'yarn-site' in configurations and 'yarn.scheduler.minimum-allocation-mb' in configurations['yarn-site']['properties']:
+      yarn_min_container_size = float(configurations['yarn-site']['properties']['yarn.scheduler.minimum-allocation-mb'])
+      Logger.info("''yarn.scheduler.minimum-allocation-mb'' read from configurations as : {0}".format(yarn_min_container_size))
+
+    if not yarn_min_container_size:
+      # Check if 'yarn.scheduler.minimum-allocation-mb' is input in services array.
+      if 'yarn-site' in services['configurations'] and \
+          'yarn.scheduler.minimum-allocation-mb' in services['configurations']['yarn-site']['properties']:
+        yarn_min_container_size = float(services['configurations']['yarn-site']['properties']['yarn.scheduler.minimum-allocation-mb'])
+        Logger.info("''yarn.scheduler.minimum-allocation-mb'' read from services as : {0}".format(yarn_min_container_size))
+
+    if not yarn_min_container_size:
       raise Fail("Couldn't retrieve YARN's 'yarn.scheduler.minimum-allocation-mb' config.")
+
+    assert (yarn_min_container_size > 0), "'yarn.scheduler.minimum-allocation-mb' current value : {0}. " \
+                                            "Expected value : > 0".format(yarn_min_container_size)
     return yarn_min_container_size
 
   """
@@ -666,52 +686,75 @@ class HDP25StackAdvisor(HDP24StackAdvisor):
       return 256
 
   """
-  Gets YARN NodeManager memory in MB (yarn.nodemanager.resource.memory-mb).
+  Gets YARN NodeManager memory in MB (yarn.nodemanager.resource.memory-mb). Takes into account if it has been calculated
+  as part of current Stack Advisor invocation.
   """
-  def get_yarn_nm_mem_in_mb(self, services):
-    if 'yarn-site' in services['configurations'] and \
-        'yarn.nodemanager.resource.memory-mb' in services['configurations']['yarn-site']['properties']:
-      yarn_nm_mem_in_mb = float(
-        services['configurations']['yarn-site']['properties']['yarn.nodemanager.resource.memory-mb'])
-      assert (
-        yarn_nm_mem_in_mb > 0.0), "'yarn.nodemanager.resource.memory-mb' current value : {0}. Expected value : > 0".format(
-        yarn_nm_mem_in_mb)
-    else:
-      raise Fail(
-        "Couldn't retrieve YARN's 'yarn.nodemanager.resource.memory-mb' config.")
+  def get_yarn_nm_mem_in_mb(self, services, configurations):
+    yarn_nm_mem_in_mb = None
+
+    # Check if 'yarn.nodemanager.resource.memory-mb' is modified in current ST invocation.
+    if 'yarn-site' in configurations and 'yarn.nodemanager.resource.memory-mb' in configurations['yarn-site']['properties']:
+      yarn_nm_mem_in_mb = float(configurations['yarn-site']['properties']['yarn.nodemanager.resource.memory-mb'])
+      Logger.info("''yarn.nodemanager.resource.memory-mb'' read from configurations as : {0}".format(yarn_nm_mem_in_mb))
+      print "from services : ",services['configurations']['yarn-site']['properties']['yarn.nodemanager.resource.memory-mb']
+
+    if not yarn_nm_mem_in_mb:
+      # Check if 'yarn.nodemanager.resource.memory-mb' is input in services array.
+      if 'yarn-site' in services['configurations'] and \
+          'yarn.nodemanager.resource.memory-mb' in services['configurations']['yarn-site']['properties']:
+        yarn_nm_mem_in_mb = float(services['configurations']['yarn-site']['properties']['yarn.nodemanager.resource.memory-mb'])
+
+    if not yarn_nm_mem_in_mb:
+      raise Fail("Couldn't retrieve YARN's 'yarn.nodemanager.resource.memory-mb' config.")
+
+    assert (yarn_nm_mem_in_mb > 0.0), "'yarn.nodemanager.resource.memory-mb' current value : {0}. " \
+                                      "Expected value : > 0".format(yarn_nm_mem_in_mb)
+
     return yarn_nm_mem_in_mb
 
   """
-  Gets Tez App Master container size (tez.am.resource.memory.mb)
+  Gets Tez App Master container size (tez.am.resource.memory.mb). Takes into account if it has been calculated
+  as part of current Stack Advisor invocation.
   """
-  def get_tez_am_container_size(self, services):
-    llap_daemon_container_size = 0
-    if self.HIVE_INTERACTIVE_SITE in services['configurations'] and \
-        'tez.am.resource.memory.mb' in services['configurations']['tez-interactive-site']['properties']:
-      llap_daemon_container_size = float(
-        services['configurations']['tez-interactive-site']['properties']['tez.am.resource.memory.mb'])
-      assert (
-        llap_daemon_container_size > 0), "'tez.am.resource.memory.mb' current value : {0}. Expected value : > 0".format(
-        llap_daemon_container_size)
-    else:
+  def get_tez_am_container_size(self, services, configurations):
+    llap_daemon_container_size = None
+
+    # Check if 'tez.am.resource.memory.mb' is modified in current ST invocation.
+    if 'tez-interactive-site' in configurations and 'tez.am.resource.memory.mb' in configurations['tez-interactive-site']['properties']:
+      llap_daemon_container_size = float(configurations['tez-interactive-site']['properties']['tez.am.resource.memory.mb'])
+      Logger.info("''tez.am.resource.memory.mb'' read from configurations as : {0}".format(llap_daemon_container_size))
+
+    if not llap_daemon_container_size:
+      # Check if 'tez.am.resource.memory.mb' is input in services array.
+      if self.HIVE_INTERACTIVE_SITE in services['configurations'] and \
+          'tez.am.resource.memory.mb' in services['configurations']['tez-interactive-site']['properties']:
+        llap_daemon_container_size = float(services['configurations']['tez-interactive-site']['properties']['tez.am.resource.memory.mb'])
+        Logger.info("''tez.am.resource.memory.mb'' read from services as : {0}".format(llap_daemon_container_size))
+
+
+    if not llap_daemon_container_size:
       raise Fail("Couldn't retrieve Hive Server interactive's 'tez.am.resource.memory.mb' config.")
+
+    assert (llap_daemon_container_size > 0), "'tez.am.resource.memory.mb' current value : {0}. " \
+                                             "Expected value : > 0".format(llap_daemon_container_size)
+
     return llap_daemon_container_size
 
   """
   Minimum 'llap' queue capacity required in order to get LLAP app running.
   """
-  def min_llap_queue_perc_required_in_cluster(self, services, hosts):
+  def min_llap_queue_perc_required_in_cluster(self, services, hosts, configurations):
     # Get llap queue size if sized at 20%
     node_manager_hosts = self.get_node_manager_hosts(services, hosts)
-    yarn_rm_mem_in_mb = self.get_yarn_nm_mem_in_mb(services)
+    yarn_rm_mem_in_mb = self.get_yarn_nm_mem_in_mb(services, configurations)
     total_cluster_cap = len(node_manager_hosts) * yarn_rm_mem_in_mb
     total_llap_queue_size_at_20_perc = 20.0 / 100 * total_cluster_cap
 
     # Calculate based on minimum size required by containers.
-    yarn_min_container_size = self.get_yarn_min_container_size(services)
+    yarn_min_container_size = self.get_yarn_min_container_size(services, configurations)
     slider_am_size = self.calculate_slider_am_size(yarn_min_container_size)
-    hive_tez_container_size = self.get_hive_tez_container_size(services)
-    tez_am_container_size = self.get_tez_am_container_size(services)
+    hive_tez_container_size = self.get_hive_tez_container_size(services, configurations)
+    tez_am_container_size = self.get_tez_am_container_size(services, configurations)
     normalized_val = self._normalizeUp(slider_am_size, yarn_min_container_size) + self._normalizeUp\
       (hive_tez_container_size, yarn_min_container_size) + self._normalizeUp(tez_am_container_size, yarn_min_container_size)
 
@@ -757,7 +800,7 @@ class HDP25StackAdvisor(HDP24StackAdvisor):
       if 'llap_queue_capacity' in services['configurations']['hive-interactive-env']['properties']:
         llap_slider_cap_percentage = int(
           services['configurations']['hive-interactive-env']['properties']['llap_queue_capacity'])
-        llap_min_reqd_cap_percentage = self.min_llap_queue_perc_required_in_cluster(services, hosts)
+        llap_min_reqd_cap_percentage = self.min_llap_queue_perc_required_in_cluster(services, hosts, configurations)
         if llap_slider_cap_percentage <= 0 or llap_slider_cap_percentage > 100:
           Logger.info("Adjusting HIVE 'llap_queue_capacity' from {0}% to {1}%".format(llap_slider_cap_percentage, llap_min_reqd_cap_percentage))
           putHiveInteractiveEnvProperty('llap_queue_capacity', llap_min_reqd_cap_percentage)

+ 438 - 65
ambari-server/src/test/python/stacks/2.5/common/test_stack_advisor.py

@@ -141,15 +141,6 @@ class TestHDP25StackAdvisor(TestCase):
       ]
     }
 
-    self.clusterData = {
-      "cpu": 4,
-      "mapMemory": 3000,
-      "amMemory": 2000,
-      "reduceMemory": 2056,
-      "containers": 3,
-      "ramPerContainer": 256
-    }
-
     # Expected config outputs.
 
     # Expected capacity-scheduler with 'llap' (size:20) and 'default' queue at root level.
@@ -642,9 +633,21 @@ class TestHDP25StackAdvisor(TestCase):
       }
     }
 
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 30,
+      "ramPerContainer": 512,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 10240 * 1024
+      }
+    }
+
     configurations = {
     }
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services, self.hosts)
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services, self.hosts)
     # Check output
     self.assertEquals(configurations['hive-interactive-site']['properties']['hive.llap.daemon.queue.name'],
                       self.expected_hive_interactive_site_llap['hive-interactive-site']['properties']['hive.llap.daemon.queue.name'])
@@ -784,9 +787,23 @@ class TestHDP25StackAdvisor(TestCase):
       }
     }
 
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 30,
+      "ramPerContainer": 512,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 10240 * 1024
+      }
+    }
+
+
     configurations = {
     }
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services, self.hosts)
+
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services, self.hosts)
     # Check output
 
     self.assertEquals(configurations['hive-interactive-site']['properties']['hive.llap.daemon.queue.name'],
@@ -922,10 +939,22 @@ class TestHDP25StackAdvisor(TestCase):
       }
     }
 
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 30,
+      "ramPerContainer": 512,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 10240 * 1024
+      }
+    }
+
     configurations = {
     }
 
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services, self.hosts)
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services, self.hosts)
 
     # Check output
     self.assertEquals(configurations['hive-interactive-site']['properties']['hive.llap.daemon.queue.name'],
@@ -1062,9 +1091,23 @@ class TestHDP25StackAdvisor(TestCase):
       }
     }
 
+
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 30,
+      "ramPerContainer": 512,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 10240 * 1024
+      }
+    }
+
     configurations = {
     }
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services, self.hosts)
+
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services, self.hosts)
     # Check output
     self.assertEquals(configurations['hive-interactive-site']['properties']['hive.llap.daemon.queue.name'],
                       self.expected_hive_interactive_site_llap['hive-interactive-site']['properties']['hive.llap.daemon.queue.name'])
@@ -1211,10 +1254,24 @@ class TestHDP25StackAdvisor(TestCase):
       }
     }
 
+
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 30,
+      "ramPerContainer": 512,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 10240 * 1024
+      }
+    }
+
+
     configurations = {
     }
 
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services, self.hosts)
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services, self.hosts)
 
     # Check output
     self.assertEquals(configurations['hive-interactive-site']['properties']['hive.llap.daemon.queue.name'],
@@ -1361,10 +1418,24 @@ class TestHDP25StackAdvisor(TestCase):
       }
     }
 
+
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 30,
+      "ramPerContainer": 512,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 10240 * 1024
+      }
+    }
+
     configurations = {
     }
 
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services, self.hosts)
+
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services, self.hosts)
 
     # Check output
     self.assertEquals(configurations['hive-interactive-site']['properties']['hive.llap.daemon.queue.name'],
@@ -1511,10 +1582,24 @@ class TestHDP25StackAdvisor(TestCase):
       }
     }
 
+
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 30,
+      "ramPerContainer": 512,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 10240 * 1024
+      }
+    }
+
+
     configurations = {
     }
 
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services, self.hosts)
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services, self.hosts)
 
     # Check output
     self.assertEquals(configurations['hive-interactive-site']['properties']['hive.llap.daemon.queue.name'],
@@ -1639,10 +1724,23 @@ class TestHDP25StackAdvisor(TestCase):
       }
     }
 
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 30,
+      "ramPerContainer": 512,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 10240 * 1024
+      }
+    }
+
+
     configurations = {
     }
 
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services, self.hosts)
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services, self.hosts)
 
     # Check output
     self.assertTrue('hive.llap.daemon.queue.name' not in configurations['hive-interactive-site']['properties'])
@@ -1774,10 +1872,22 @@ class TestHDP25StackAdvisor(TestCase):
       }
     }
 
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 30,
+      "ramPerContainer": 512,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 10240 * 1024
+      }
+    }
+
     configurations = {
     }
 
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services, self.hosts)
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services, self.hosts)
 
     # Check output
     self.assertEquals(configurations['hive-interactive-site']['properties']['hive.llap.daemon.queue.name'],
@@ -1930,10 +2040,23 @@ class TestHDP25StackAdvisor(TestCase):
     }
 
 
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 30,
+      "ramPerContainer": 512,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 10240 * 1024
+      }
+    }
+
+
     configurations = {
     }
 
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services, self.hosts)
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services, self.hosts)
 
     # Check output
     self.assertEquals(configurations['hive-interactive-site']['properties'],
@@ -2078,11 +2201,22 @@ class TestHDP25StackAdvisor(TestCase):
       }
     }
 
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 30,
+      "ramPerContainer": 512,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 10240 * 1024
+      }
+    }
 
     configurations = {
     }
 
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services, self.hosts)
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services, self.hosts)
 
     # Check output
     self.assertEquals(configurations['hive-interactive-site']['properties'],
@@ -2200,11 +2334,23 @@ class TestHDP25StackAdvisor(TestCase):
       }
     }
 
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 30,
+      "ramPerContainer": 512,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 10240 * 1024
+      }
+    }
+
 
     configurations = {
     }
 
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services, self.hosts)
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services, self.hosts)
 
     # Check output
     self.assertEquals(configurations['hive-interactive-site']['properties'],
@@ -2362,11 +2508,22 @@ class TestHDP25StackAdvisor(TestCase):
       }
     }
 
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 30,
+      "ramPerContainer": 512,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 10240 * 1024
+      }
+    }
 
     configurations = {
     }
 
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services_15, self.hosts)
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services_15, self.hosts)
 
     # Check output
     self.assertEquals(configurations['capacity-scheduler']['properties'],
@@ -2465,11 +2622,22 @@ class TestHDP25StackAdvisor(TestCase):
       }
     }
 
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 30,
+      "ramPerContainer": 512,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 10240 * 1024
+      }
+    }
 
 
     configurations = {
     }
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services, self.hosts)
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services, self.hosts)
 
     # Check output
     self.assertEquals(configurations['capacity-scheduler']['properties'],
@@ -2567,9 +2735,22 @@ class TestHDP25StackAdvisor(TestCase):
       }
     }
 
+
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 30,
+      "ramPerContainer": 512,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 10240 * 1024
+      }
+    }
+
     configurations = {
     }
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services, self.hosts)
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services, self.hosts)
 
     # Check output
     self.assertEquals(configurations['capacity-scheduler']['properties'],
@@ -2724,11 +2905,23 @@ class TestHDP25StackAdvisor(TestCase):
       }
     }
 
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 30,
+      "ramPerContainer": 512,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 10240 * 1024
+      }
+    }
+
 
     configurations = {
     }
 
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services, self.hosts)
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services, self.hosts)
 
     cap_sched_output_dict = convertToDict(configurations['capacity-scheduler']['properties']['capacity-scheduler'])
     cap_sched_expected_dict = convertToDict(self.expected_capacity_scheduler_llap_Stopped_size_0['properties']['capacity-scheduler'])
@@ -2879,10 +3072,21 @@ class TestHDP25StackAdvisor(TestCase):
       }
     }
 
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 30,
+      "ramPerContainer": 512,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 10240 * 1024
+      }
+    }
 
     configurations = {
     }
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services_18, self.hosts)
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services_18, self.hosts)
 
     self.assertEquals(configurations['capacity-scheduler']['properties'],
                       self.expected_capacity_scheduler_empty['properties'])
@@ -3047,11 +3251,21 @@ class TestHDP25StackAdvisor(TestCase):
     }
 
 
-    configurations = {
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 30,
+      "ramPerContainer": 512,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 10240 * 1024
+      }
     }
 
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services, self.hosts)
-
+    configurations = {
+    }
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services, self.hosts)
     self.assertEqual(configurations['hive-interactive-site']['properties']['hive.server2.tez.sessions.per.default.queue'], '1')
     self.assertEquals(configurations['hive-interactive-site']['property_attributes']['hive.server2.tez.sessions.per.default.queue'], {'minimum': '1', 'maximum': '32'})
 
@@ -3069,7 +3283,6 @@ class TestHDP25StackAdvisor(TestCase):
     self.assertEqual(configurations['hive-interactive-env']['properties']['slider_am_container_size'], '512')
 
 
-
   # Test 19: (1). 'default' and 'llap' (State : RUNNING) queue exists at root level in capacity-scheduler, and
   #         'capacity-scheduler' configs are passed-in as single "/n" separated string  and
   #         (2). enable_hive_interactive' is 'on' and (3). configuration change detected for 'enable_hive_interactive'
@@ -3221,27 +3434,42 @@ class TestHDP25StackAdvisor(TestCase):
       }
     }
 
+
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 30,
+      "ramPerContainer": 512,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 10240 * 1024
+      }
+    }
+
+
     configurations = {
     }
 
 
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services, self.hosts)
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services, self.hosts)
 
-    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.server2.tez.sessions.per.default.queue'], '3')
+    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.server2.tez.sessions.per.default.queue'], '2')
     self.assertEquals(configurations['hive-interactive-site']['property_attributes']['hive.server2.tez.sessions.per.default.queue'], {'minimum': '1', 'maximum': '32'})
 
     self.assertEqual(configurations['hive-interactive-env']['properties']['num_llap_nodes'], '1')
 
-    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.daemon.yarn.container.mb'], '3069')
+    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.daemon.yarn.container.mb'], '3072')
 
     self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.daemon.num.executors'], '1')
 
-    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.io.memory.size'], '2728')
+    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.io.memory.size'], '2731')
     self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.io.enabled'], 'true')
 
     self.assertEqual(configurations['hive-interactive-env']['properties']['llap_heap_size'], '272')
 
-    self.assertEqual(configurations['hive-interactive-env']['properties']['slider_am_container_size'], '341')
+    self.assertEqual(configurations['hive-interactive-env']['properties']['slider_am_container_size'], '512')
+
 
 
 
@@ -3397,22 +3625,36 @@ class TestHDP25StackAdvisor(TestCase):
       }
     }
 
+
+
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 30,
+      "ramPerContainer": 1024,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 51200 * 1024
+      }
+    }
+
     configurations = {
     }
 
 
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services, self.hosts)
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services, self.hosts)
 
     self.assertTrue('hive.server2.tez.sessions.per.default.queue' not in configurations['hive-interactive-site']['properties'])
     self.assertTrue('hive.server2.tez.sessions.per.default.queue' not in configurations['hive-interactive-site']['property_attributes'])
 
     self.assertEqual(configurations['hive-interactive-env']['properties']['num_llap_nodes'], '1')
 
-    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.daemon.yarn.container.mb'], '18432')
+    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.daemon.yarn.container.mb'], '10240')
 
     self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.daemon.num.executors'], '1')
 
-    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.io.memory.size'], '17408')
+    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.io.memory.size'], '9216')
     self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.io.enabled'], 'true')
 
     self.assertEqual(configurations['hive-interactive-env']['properties']['llap_heap_size'], '819')
@@ -3576,11 +3818,24 @@ class TestHDP25StackAdvisor(TestCase):
     }
 
 
+
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 30,
+      "ramPerContainer": 2048,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 40960 * 1024
+      }
+    }
+
     configurations = {
     }
 
 
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services, self.hosts)
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services, self.hosts)
 
     self.assertEqual(configurations['hive-interactive-site']['properties']['hive.server2.tez.sessions.per.default.queue'], '13')
     self.assertEquals(configurations['hive-interactive-site']['property_attributes']['hive.server2.tez.sessions.per.default.queue'], {'minimum': '1', 'maximum': '32'})
@@ -3749,22 +4004,36 @@ class TestHDP25StackAdvisor(TestCase):
       }
     }
 
+
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 30,
+      "ramPerContainer": 341,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 12288 * 1024
+      }
+    }
+
+
     configurations = {
     }
 
 
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services, self.hosts)
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services, self.hosts)
 
-    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.server2.tez.sessions.per.default.queue'], '6')
+    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.server2.tez.sessions.per.default.queue'], '5')
     self.assertEquals(configurations['hive-interactive-site']['property_attributes']['hive.server2.tez.sessions.per.default.queue'], {'minimum': '1', 'maximum': '32'})
 
     self.assertEqual(configurations['hive-interactive-env']['properties']['num_llap_nodes'], '2')
 
-    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.daemon.yarn.container.mb'], '12276')
+    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.daemon.yarn.container.mb'], '10230')
 
     self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.daemon.num.executors'], '3')
 
-    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.io.memory.size'], '9204')
+    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.io.memory.size'], '7158')
     self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.io.enabled'], 'true')
 
     self.assertEqual(configurations['hive-interactive-env']['properties']['llap_heap_size'], '2457')
@@ -3923,19 +4192,32 @@ class TestHDP25StackAdvisor(TestCase):
     }
 
 
+
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 30,
+      "ramPerContainer": 2048,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 204800 * 1024
+      }
+    }
+
     configurations = {
     }
 
 
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services, self.hosts)
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services, self.hosts)
 
     self.assertEqual(configurations['hive-interactive-env']['properties']['num_llap_nodes'], '1')
 
-    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.daemon.yarn.container.mb'], '204800')
+    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.daemon.yarn.container.mb'], '61440')
 
     self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.daemon.num.executors'], '3')
 
-    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.io.memory.size'], '201728')
+    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.io.memory.size'], '58368')
     self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.io.enabled'], 'true')
 
     self.assertEqual(configurations['hive-interactive-env']['properties']['llap_heap_size'], '2457')
@@ -3947,7 +4229,6 @@ class TestHDP25StackAdvisor(TestCase):
 
 
 
-
   ####################### 'Five Node Managers' cluster - tests for calculating llap configs ################
 
 
@@ -4100,11 +4381,24 @@ class TestHDP25StackAdvisor(TestCase):
     }
 
 
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 30,
+      "ramPerContainer": 3072,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 40960 * 1024
+      }
+    }
+
+
     configurations = {
     }
 
 
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services, self.hosts)
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services, self.hosts)
 
     self.assertEqual(configurations['hive-interactive-site']['properties']['hive.server2.tez.sessions.per.default.queue'], '15')
     self.assertEquals(configurations['hive-interactive-site']['property_attributes']['hive.server2.tez.sessions.per.default.queue'], {'minimum': '1', 'maximum': '32'})
@@ -4124,6 +4418,7 @@ class TestHDP25StackAdvisor(TestCase):
 
 
 
+
   # Test 25: (1). 'default' and 'llap' (State : RUNNING) queue exists at root level in capacity-scheduler, and
   #          'capacity-scheduler' configs are passed-in as single "/n" separated string  and
   #          (2). enable_hive_interactive' is 'on' and (3). configuration change detected for 'enable_hive_interactive'
@@ -4274,22 +4569,35 @@ class TestHDP25StackAdvisor(TestCase):
       }
     }
 
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 30,
+      "ramPerContainer": 341,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 204800 * 1024
+      }
+    }
+
+
     configurations = {
     }
 
 
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services, self.hosts)
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services, self.hosts)
 
     self.assertEqual(configurations['hive-interactive-site']['properties']['hive.server2.tez.sessions.per.default.queue'], '32')
     self.assertEquals(configurations['hive-interactive-site']['property_attributes']['hive.server2.tez.sessions.per.default.queue'], {'minimum': '1', 'maximum': '32'})
 
-    self.assertEqual(configurations['hive-interactive-env']['properties']['num_llap_nodes'], '4')
+    self.assertEqual(configurations['hive-interactive-env']['properties']['num_llap_nodes'], '3')
 
-    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.daemon.yarn.container.mb'], '204600')
+    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.daemon.yarn.container.mb'], '10230')
 
     self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.daemon.num.executors'], '10')
 
-    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.io.memory.size'], '201190')
+    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.io.memory.size'], '6820')
     self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.io.enabled'], 'true')
 
     self.assertEqual(configurations['hive-interactive-env']['properties']['llap_heap_size'], '2728')
@@ -4298,6 +4606,7 @@ class TestHDP25StackAdvisor(TestCase):
 
 
 
+
   # Test 26: (1). 'default' and 'llap' (State : RUNNING) queue exists at root level in capacity-scheduler, and
   #          'capacity-scheduler' configs are passed-in as single "/n" separated string  and
   #          (2). enable_hive_interactive' is 'on' and (3). configuration change detected for 'hive.server2.tez.sessions.per.default.queue'
@@ -4447,20 +4756,31 @@ class TestHDP25StackAdvisor(TestCase):
       }
     }
 
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 3,
+      "ramPerContainer": 82240,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 204800 * 1024
+      }
+    }
 
     configurations = {
     }
 
-
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services, self.hosts)
+    print "\n\n\n\n\ yyyyyyy"
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services, self.hosts)
 
     self.assertEqual(configurations['hive-interactive-env']['properties']['num_llap_nodes'], '2')
 
-    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.daemon.yarn.container.mb'], '204800')
+    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.daemon.yarn.container.mb'], '164480')
 
     self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.daemon.num.executors'], '3')
 
-    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.io.memory.size'], '201728')
+    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.io.memory.size'], '161408')
     self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.io.enabled'], 'true')
 
     self.assertEqual(configurations['hive-interactive-env']['properties']['llap_heap_size'], '2457')
@@ -4471,6 +4791,7 @@ class TestHDP25StackAdvisor(TestCase):
 
 
 
+
   # Test 27: (1). only 'default' queue exists at root level in capacity-scheduler, and
   #          'capacity-scheduler' configs are passed-in as single "/n" separated string  and
   #          (2). configuration change detected for 'enable_hive_interactive'
@@ -4610,20 +4931,31 @@ class TestHDP25StackAdvisor(TestCase):
       }
     }
 
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 3,
+      "ramPerContainer": 164480,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 204800 * 1024
+      }
+    }
 
     configurations = {
     }
 
 
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services, self.hosts)
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services, self.hosts)
 
-    self.assertEqual(configurations['hive-interactive-env']['properties']['num_llap_nodes'], '2')
+    self.assertEqual(configurations['hive-interactive-env']['properties']['num_llap_nodes'], '1')
 
-    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.daemon.yarn.container.mb'], '204800')
+    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.daemon.yarn.container.mb'], '164480')
 
     self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.daemon.num.executors'], '3')
 
-    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.io.memory.size'], '201728')
+    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.io.memory.size'], '161408')
     self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.io.enabled'], 'true')
 
     self.assertEqual(configurations['hive-interactive-env']['properties']['llap_heap_size'], '2457')
@@ -4634,6 +4966,7 @@ class TestHDP25StackAdvisor(TestCase):
 
 
 
+
   # Test 28: (1). 'default' and 'llap' (State : RUNNING) queue exists at root level in capacity-scheduler, and
   #          'capacity-scheduler' configs are passed-in as dictionary and
   #          services['configurations']["capacity-scheduler"]["properties"]["capacity-scheduler"] is set to value "null"  and
@@ -4775,19 +5108,31 @@ class TestHDP25StackAdvisor(TestCase):
       }
     }
 
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 3,
+      "ramPerContainer": 82240,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 328960 * 1024
+      }
+    }
+
 
     configurations = {
     }
 
-    self.stackAdvisor.recommendYARNConfigurations(configurations, self.clusterData, services, self.hosts)
+    self.stackAdvisor.recommendYARNConfigurations(configurations, clusterData, services, self.hosts)
 
     self.assertEqual(configurations['hive-interactive-env']['properties']['num_llap_nodes'], '2')
 
-    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.daemon.yarn.container.mb'], '204800')
+    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.daemon.yarn.container.mb'], '246720')
 
     self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.daemon.num.executors'], '3')
 
-    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.io.memory.size'], '201728')
+    self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.io.memory.size'], '243648')
     self.assertEqual(configurations['hive-interactive-site']['properties']['hive.llap.io.enabled'], 'true')
 
     self.assertEqual(configurations['hive-interactive-env']['properties']['llap_heap_size'], '2457')
@@ -4795,6 +5140,10 @@ class TestHDP25StackAdvisor(TestCase):
     self.assertEqual(configurations['hive-interactive-env']['properties']['slider_am_container_size'], '1024')
 
 
+
+
+
+
   # Test 29: (1). only 'default' queue exists at root level in capacity-scheduler, and
   #          'capacity-scheduler' configs are passed-in as single "/n" separated string  and
   #         Expected : 'hive.llap.daemon.queue.name' property attributes getting set with current YARN leaf queues.
@@ -4933,10 +5282,22 @@ class TestHDP25StackAdvisor(TestCase):
     }
 
 
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 3,
+      "ramPerContainer": 82240,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 328960 * 1024
+      }
+    }
+
     configurations = {
     }
 
-    self.stackAdvisor.recommendHIVEConfigurations(configurations, self.clusterData, services, self.hosts)
+    self.stackAdvisor.recommendHIVEConfigurations(configurations, clusterData, services, self.hosts)
     self.assertEquals(configurations['hive-interactive-site']['properties']['hive.llap.daemon.queue.name'],
                       self.expected_hive_interactive_site_llap['hive-interactive-site']['properties']['hive.llap.daemon.queue.name'])
 
@@ -4945,6 +5306,7 @@ class TestHDP25StackAdvisor(TestCase):
 
 
 
+
   # Test 30: (1). More than 2 queues at leaf level exists in capacity-scheduler (one queue is named 'llap') and
   #         'capacity-scheduler' configs are passed-in as single "/n" separated string
   #         Expected : 'hive.llap.daemon.queue.name' property attributes getting set with current YARN leaf queues.
@@ -5102,10 +5464,21 @@ class TestHDP25StackAdvisor(TestCase):
       }
     }
 
+    clusterData = {
+      "cpu": 4,
+      "mapMemory": 30000,
+      "amMemory": 20000,
+      "reduceMemory": 20560,
+      "containers": 3,
+      "ramPerContainer": 82240,
+      "referenceNodeManagerHost" : {
+        "total_mem" : 328960 * 1024
+      }
+    }
 
     configurations = {
     }
-    self.stackAdvisor.recommendHIVEConfigurations(configurations, self.clusterData, services, self.hosts)
+    self.stackAdvisor.recommendHIVEConfigurations(configurations, clusterData, services, self.hosts)
     self.assertEquals(configurations['hive-interactive-site']['property_attributes']['hive.llap.daemon.queue.name'],
                       self.expected_hive_interactive_site_prop_attr_as_a1_b_llap['hive-interactive-site']['property_attributes']['hive.llap.daemon.queue.name'])