Dmytro Sen created AMBARI-10316:
-----------------------------------

             Summary: Stack-advisor mechanism when recommending 
configuration-dependencies has incorrect services.json content
                 Key: AMBARI-10316
                 URL: https://issues.apache.org/jira/browse/AMBARI-10316
             Project: Ambari
          Issue Type: Bug
          Components: ambari-server, stacks
    Affects Versions: 2.1.0
            Reporter: Dmytro Sen
            Assignee: Dmytro Sen
            Priority: Critical
             Fix For: 2.1.0


When the POST call is made for recommending {{configuration-dependencies}}, we 
generate the services.json file with following extra content:
{code}
  "changed-configurations" : [ {
    "type" : "yarn-site",
    "name" : "yarn.scheduler.maximum-allocation-mb"
  } ],
  "depended-configurations" : [ {
    "type" : "mapred-site",
    "name" : "yarn.app.mapreduce.am.resource.mb"
  }, {
    "type" : "yarn-site",
    "name" : "yarn.scheduler.maximum-allocation-mb"
  }, {
    "type" : "mapred-site",
    "name" : "yarn.app.mapreduce.am.admin-command-opts"
  }, {
    "type" : "mapred-site",
    "name" : "mapreduce.map.memory.mb"
  }, {
    "type" : "mapred-site",
    "name" : "yarn.app.mapreduce.am.command-opts"
  }, {
    "type" : "mapred-site",
    "name" : "mapreduce.reduce.java.opts"
  }, {
    "type" : "mapred-site",
    "name" : "mapreduce.reduce.memory.mb"
  }, {
    "type" : "mapred-site",
    "name" : "mapreduce.task.io.sort.mb"
  }, {
    "type" : "mapred-site",
    "name" : "mapreduce.map.java.opts"
  } ]
{code}

The configuration depended-by should not be added on to the services.json like 
this. All the configuration dependencies should be got from manipulating the 
{{org.apache.ambari.server.api.services.stackadvisor.commands.StackAdvisorCommand.GET_SERVICES_INFO_URI}}
 value. Changing the value to include configuration depends_on and depended_by 
information. Then the python script should build the dependency-chain inside 
itself instead of doing it in Java and adding to services.json.

The reason this is important is that for future functionality, we need 
services.json and hosts.json to faithfully represent the cluster's services and 
hosts information. The custom stack-advisor scripts should have logic to 
interpret it for their own needs. If we do some processing in Java, then 
stack-providers will not have chance to make their own interpretations.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to