David F. Quiroga created AMBARI-24079:
-----------------------------------------

             Summary: ​Configuring Storm for Supervision
                 Key: AMBARI-24079
                 URL: https://issues.apache.org/jira/browse/AMBARI-24079
             Project: Ambari
          Issue Type: Improvement
          Components: ambari-server
            Reporter: David F. Quiroga
            Assignee: David F. Quiroga


[Configuring Storm for 
Supervision|https://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.6.4/bk_storm-component-guide/content/config-storm-supv.html]

Currently under 
 
[{{STORM/0.9.1/package/scripts}}|https://github.com/apache/ambari/tree/trunk/ambari-server/src/main/resources/common-services/STORM/0.9.1/package/scripts]
 there are {{supervisor.py}} and {{supervisor_prod.py}} (similar for Nimbus) 
when configuring Storm for supervision you update the {{metainfo.xml}} to 
reference the {{_prod.py}} files.

During a recent cluster upgrade ({{metainfo.xml}} changes lost) we looked at 
combining the two files, so the scripts check for supervision support and use 
it when available.

The "decision" to be supervised then occurs at the node level, and therefore 
can be managed at the node-level rather than at the service/whole-cluster 
level. 

 

Currently we perform a basic check (shown below) for support before each action 
(start, stop, status). A better way might be to do a conditional import. 

 
{quote}{{def component_supported(component_name):}}
   return_code, output = shell.call(("supervisorctl", "status",                 
                                                            
format("storm-\{component_name}")))
 {{  if return_code == 0 and 'ERROR' not in output:}}
  # return code of 0 if program installed and component configured 
 {{    return True}}
 {{  else:}}
 {{  # return code of non 0 if program not installed or component not 
configured}}
 {{    return False}}
{quote}

  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to