Repository: ambari
Updated Branches:
  refs/heads/trunk 9919961cc -> 12008010a


AMBARI-20469. Add a new property to yarn-site.xml 
yarn.log.server.web-service.url (Madhuvanthi Radhakrishnan via alejandro)


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

Branch: refs/heads/trunk
Commit: 12008010a2ec12d87190c7b97f63459d97f9ea96
Parents: 9919961
Author: Alejandro Fernandez <afernan...@hortonworks.com>
Authored: Thu Mar 16 17:34:36 2017 -0700
Committer: Alejandro Fernandez <afernan...@hortonworks.com>
Committed: Thu Mar 16 17:34:36 2017 -0700

----------------------------------------------------------------------
 .../YARN/3.0.0.3.0/configuration/yarn-site.xml  | 20 +++++++++++
 .../YARN/3.0.0.3.0/service_advisor.py           | 36 ++++++++++++++++++++
 2 files changed, 56 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/12008010/ambari-server/src/main/resources/common-services/YARN/3.0.0.3.0/configuration/yarn-site.xml
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/YARN/3.0.0.3.0/configuration/yarn-site.xml
 
b/ambari-server/src/main/resources/common-services/YARN/3.0.0.3.0/configuration/yarn-site.xml
index dd5e9a4..4fbd1e6 100644
--- 
a/ambari-server/src/main/resources/common-services/YARN/3.0.0.3.0/configuration/yarn-site.xml
+++ 
b/ambari-server/src/main/resources/common-services/YARN/3.0.0.3.0/configuration/yarn-site.xml
@@ -1106,6 +1106,26 @@ yarn.node-labels.manager-class
     <on-ambari-upgrade add="false"/>
   </property>
   <property>
+    <name>yarn.log.server.web-service.url</name>
+    <value>http://localhost:8188/ws/v1/applicationhistory</value>
+    <description>Log Server Web Service URL.</description>
+    <depends-on>
+      <property>
+        <type>yarn-site</type>
+        <name>yarn.http.policy</name>
+      </property>
+      <property>
+        <type>yarn-site</type>
+        <name>yarn.resourcemanager.webapp.address</name>
+      </property>
+      <property>
+        <type>yarn-site</type>
+        <name>yarn.resourcemanager.webapp.https.address</name>
+      </property>
+    </depends-on>
+    <on-ambari-upgrade add="false"/>
+  </property>
+  <property>
     
<name>yarn.timeline-service.entity-group-fs-store.cleaner-interval-seconds</name>
     <description>
       Scan interval for ATS v1.5 entity group file system storage cleaner.This

http://git-wip-us.apache.org/repos/asf/ambari/blob/12008010/ambari-server/src/main/resources/common-services/YARN/3.0.0.3.0/service_advisor.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/YARN/3.0.0.3.0/service_advisor.py
 
b/ambari-server/src/main/resources/common-services/YARN/3.0.0.3.0/service_advisor.py
index 4fdf84f..16d5bbc 100644
--- 
a/ambari-server/src/main/resources/common-services/YARN/3.0.0.3.0/service_advisor.py
+++ 
b/ambari-server/src/main/resources/common-services/YARN/3.0.0.3.0/service_advisor.py
@@ -462,6 +462,25 @@ class YARNRecommender(service_advisor.ServiceAdvisor):
     else:
       ranger_yarn_plugin_enabled = False
 
+     #yarn timeline service url depends on http policy and takes the host name 
of the yarn webapp.
+    if "yarn-site" in services["configurations"] and \
+         "yarn.http.policy" in 
services["configurations"]["yarn-site"]["properties"] and \
+          "yarn.log.server.web-service.url" in 
services["configurations"]["yarn-site"]["properties"]:
+      webservice_url = ''
+      if 
services["configurations"]["yarn-site"]["properties"]["yarn.http.policy"] == 
'HTTP_ONLY':
+         if "yarn.timeline-service.webapp.address" in 
services["configurations"]["yarn-site"]["properties"]:
+           webapp_address = 
services["configurations"]["yarn-site"]["properties"]["yarn.timeline-service.webapp.address"]
+           webservice_url = 
"http://"+webapp_address+"/ws/v1/applicationhistory";
+         else:
+           Logger.error("Required config yarn.timeline-service.webapp.address 
in yarn-site does not exist. Unable to set yarn.log.server.web-service.url")
+      else:
+        if "yarn.timeline-service.webapp.https.address" in 
services["configurations"]["yarn-site"]["properties"]:
+          webapp_address = 
services["configurations"]["yarn-site"]["properties"]["yarn.timeline-service.webapp.https.address"]
+          webservice_url = 
"https://"+webapp_address+"/ws/v1/applicationhistory";
+        else:
+          Logger.error("Required config 
yarn.timeline-service.webapp.https.address in yarn-site does not exist. Unable 
to set yarn.log.server.web-service.url")
+      putYarnSiteProperty('yarn.log.server.web-service.url',webservice_url )
+
     if ranger_yarn_plugin_enabled and 'ranger-yarn-plugin-properties' in 
services['configurations'] and 'REPOSITORY_CONFIG_USERNAME' in 
services['configurations']['ranger-yarn-plugin-properties']['properties']:
       Logger.info("Setting Yarn Repo user for Ranger.")
       putRangerYarnPluginProperty = self.putProperty(configurations, 
"ranger-yarn-plugin-properties", services)
@@ -1693,6 +1712,7 @@ class YARNValidator(service_advisor.ServiceAdvisor):
 
     self.validators = [("yarn-site", 
self.validateYARNSiteConfigurationsFromHDP206),
                        ("yarn-site", 
self.validateYARNSiteConfigurationsFromHDP25),
+                       ("yarn-ste" , 
self.validateYarnSiteConfigurationsFromHDP26),
                        ("yarn-env", 
self.validateYARNEnvConfigurationsFromHDP206),
                        ("yarn-env", 
self.validateYARNEnvConfigurationsFromHDP22),
                        ("ranger-yarn-plugin-properties", 
self.validateYARNRangerPluginConfigurationsFromHDP22)]
@@ -1749,6 +1769,22 @@ class YARNValidator(service_advisor.ServiceAdvisor):
     validationProblems = 
self.toConfigurationValidationProblems(validationItems, "yarn-site")
     return validationProblems
 
+  def validateYarnSiteConfigurationsFromHDP26(self, properties, 
recommendedDefaults, configurations, services, hosts):
+    validationItems = []
+    siteProperties = services["configurations"]["yarn-site"]["properties"]
+    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";
+    else:
+      webapp_address = 
services["configurations"]["yarn-site"]["properties"]["yarn.timeline-service.webapp.https.address"]
+      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 = [
+                      {"config-name": "yarn.log.server.web-service.url",
+                       "item": self.getWarnItem("Value should be %s" % 
propertyValue)}]
+    return self.toConfigurationValidationProblems(validationItems, "yarn-site")
+
   def validateYARNEnvConfigurationsFromHDP206(self, properties, 
recommendedDefaults, configurations, services, hosts):
     """
     This was copied from HDP 2.0.6; validate yarn-env

Reply via email to