You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by vb...@apache.org on 2017/06/15 11:10:39 UTC

ambari git commit: AMBARI-21237. Add validation and recommendation if hive user value is different than hive.(vbrodetskyi)

Repository: ambari
Updated Branches:
  refs/heads/branch-2.5 8fee561b5 -> f0395176c


AMBARI-21237. Add validation and recommendation if hive user value is different than hive.(vbrodetskyi)


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

Branch: refs/heads/branch-2.5
Commit: f0395176c9159d29c3adf112c657e03e8ffd82c9
Parents: 8fee561
Author: Vitaly Brodetskyi <vb...@hortonworks.com>
Authored: Thu Jun 15 14:10:01 2017 +0300
Committer: Vitaly Brodetskyi <vb...@hortonworks.com>
Committed: Thu Jun 15 14:10:44 2017 +0300

----------------------------------------------------------------------
 .../services/YARN/configuration/yarn-site.xml   |  6 ++++
 .../stacks/HDP/2.6/services/stack_advisor.py    | 36 ++++++++++++++++++--
 2 files changed, 40 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/f0395176/ambari-server/src/main/resources/stacks/HDP/2.6/services/YARN/configuration/yarn-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.6/services/YARN/configuration/yarn-site.xml b/ambari-server/src/main/resources/stacks/HDP/2.6/services/YARN/configuration/yarn-site.xml
index cab0e65..5f8de49 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.6/services/YARN/configuration/yarn-site.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.6/services/YARN/configuration/yarn-site.xml
@@ -109,6 +109,12 @@
   <property>
     <name>yarn.nodemanager.kill-escape.user</name>
     <value>hive</value>
+    <depends-on>
+      <property>
+        <type>hive-env</type>
+        <name>hive_user</name>
+      </property>
+    </depends-on>
     <on-ambari-upgrade add="false"/>
   </property>
 </configuration>

http://git-wip-us.apache.org/repos/asf/ambari/blob/f0395176/ambari-server/src/main/resources/stacks/HDP/2.6/services/stack_advisor.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.6/services/stack_advisor.py b/ambari-server/src/main/resources/stacks/HDP/2.6/services/stack_advisor.py
index 9cd4acf..2b4c14c 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.6/services/stack_advisor.py
+++ b/ambari-server/src/main/resources/stacks/HDP/2.6/services/stack_advisor.py
@@ -181,6 +181,26 @@ class HDP26StackAdvisor(HDP25StackAdvisor):
     super(HDP26StackAdvisor, self).recommendYARNConfigurations(configurations, clusterData, services, hosts)
     putYarnSiteProperty = self.putProperty(configurations, "yarn-site", services)
     putYarnEnvProperty = self.putProperty(configurations, "yarn-env", services)
+    servicesList = [service["StackServices"]["service_name"] for service in services["services"]]
+
+    if 'HIVE' in servicesList and "yarn-site" in services["configurations"] and "yarn.nodemanager.kill-escape.user" in \
+                services["configurations"]["yarn-site"]["properties"] and 'hive-env' in services['configurations'] and \
+                'hive_user' in services['configurations']['hive-env']['properties']:
+      hive_user_name = services['configurations']['hive-env']['properties']['hive_user']
+      old_hive_user_name = getOldValue(self, services, "hive-env", "hive_user")
+      yarn_nm_kill_escape_user = services["configurations"]["yarn-site"]["properties"]["yarn.nodemanager.kill-escape.user"]
+      if not hive_user_name in yarn_nm_kill_escape_user:
+        if not yarn_nm_kill_escape_user or yarn_nm_kill_escape_user.strip() == "":
+          yarn_nm_kill_escape_user = hive_user_name
+        else:
+          escape_user_names = yarn_nm_kill_escape_user.split(",")
+          if old_hive_user_name in escape_user_names:
+            escape_user_names.remove(old_hive_user_name)
+          escape_user_names.append(hive_user_name)
+          yarn_nm_kill_escape_user = ",".join(escape_user_names)
+
+        putYarnSiteProperty("yarn.nodemanager.kill-escape.user", yarn_nm_kill_escape_user)
+
 
     if "yarn-site" in services["configurations"] and \
                     "yarn.resourcemanager.scheduler.monitor.enable" in services["configurations"]["yarn-site"]["properties"]:
@@ -392,6 +412,18 @@ class HDP26StackAdvisor(HDP25StackAdvisor):
   def validateYarnSiteConfigurations(self, properties, recommendedDefaults, configurations, services, hosts):
       validationItems = []
       siteProperties = services["configurations"]["yarn-site"]["properties"]
+      servicesList = [service["StackServices"]["service_name"] for service in services["services"]]
+
+      if 'HIVE' in servicesList and "yarn-site" in services["configurations"] and "yarn.nodemanager.kill-escape.user" in \
+          services["configurations"]["yarn-site"]["properties"] and 'hive-env' in services['configurations'] and \
+                  'hive_user' in services['configurations']['hive-env']['properties']:
+        hive_user = services['configurations']['hive-env']['properties']['hive_user']
+        yarn_nm_kill_escape_user = services["configurations"]["yarn-site"]["properties"]["yarn.nodemanager.kill-escape.user"]
+        if not hive_user in yarn_nm_kill_escape_user:
+          validationItems.append(
+            {"config-name": "yarn.nodemanager.kill-escape.user",
+             "item": self.getWarnItem("Value should contain %s" % hive_user)})
+
       if services["configurations"]["yarn-site"]["properties"]["yarn.http.policy"] == 'HTTP_ONLY':
          webapp_address = services["configurations"]["yarn-site"]["properties"]["yarn.timeline-service.webapp.address"]
          propertyValue = "http://"+webapp_address+"/ws/v1/applicationhistory"
@@ -400,9 +432,9 @@ class HDP26StackAdvisor(HDP25StackAdvisor):
          propertyValue = "https://"+webapp_address+"/ws/v1/applicationhistory"
       Logger.info("validateYarnSiteConfigurations: recommended value for webservice url"+services["configurations"]["yarn-site"]["properties"]["yarn.log.server.web-service.url"])
       if services["configurations"]["yarn-site"]["properties"]["yarn.log.server.web-service.url"] != propertyValue:
-         validationItems = [
+         validationItems.append(
               {"config-name": "yarn.log.server.web-service.url",
-               "item": self.getWarnItem("Value should be %s" % propertyValue)}]
+               "item": self.getWarnItem("Value should be %s" % propertyValue)})
       return self.toConfigurationValidationProblems(validationItems, "yarn-site")
 
   def validateDruidHistoricalConfigurations(self, properties, recommendedDefaults, configurations, services, hosts):