title: How does spark-submit.sh work with different modes and different cluster managers?
body: <p>In Apache Spark,  how does spark-submit.sh work with different modes and different cluster managers? Specifically:</p>
  
  <p>In local deployment mode, </p>
  
  <ul>
  <li>does spark-submit.sh skip calling any cluster manager? </li>
  <li>Is it correct that there is no need to install a cluster manager on the local machine?</li>
  </ul>
  
  <p>In client or cluster deployment mode, </p>
  
  <ul>
  <li><p>Does spark-submit.sh work with different cluster managers (Spark standalone, YARN, Mesos, Kubernetes)? Do different cluster managers have different interfaces, and spark-submit.sh has to invoke them in different ways?</p></li>
  <li><p>Does spark-submit.sh appear to programmers the same interface except <code>--master</code>? option <code>--master</code> of spark-submit.sh is used to specify a cluster manager.</p></li>
  </ul>
  
  <p>Thanks.</p>