title: Spark on Mesos - running multiple Streaming jobs
body: <p>I have 2 spark streaming jobs that I want to run, as well as keeping some available resources for batch jobs and other operations.</p>
  
  <p>I evaluated Spark Standalone cluster manager, but I realized that I would have to fix the resources for two jobs, which would leave almost no computing power to batch jobs.</p>
  
  <p>I started evaluating Mesos, because it has "fine grained" execution model, where resources are shifted between Spark applications.</p>
  
  <p>1) Does it mean that a single core can be shifted between 2 <strong><em>streaming</em></strong> applications? </p>
  
  <p>2) Although I have spark &amp; cassandra, in order to exploit data locality, do I need to have dedicated core on each of the slave machines to avoid shuffling?</p>
  
  <p>3)   Would you recommend running Streaming jobs in "fine grained" or "course grained" mode. I know that logical answer is course grained (in order to minimize the latency of streaming apps) but what when resource in total cluster are limited (cluster of 3 nodes, 4 cores each - there are 2 streaming applications to run and multiple time to time batch jobs)</p>
  
  <p>4) In Mesos, when I run spark streaming job in cluster mode, will it occupy 1 core permanently (like Standalone cluster manager is doing), or will that core execute driver process and sometimes act as executor?</p>
  
  <p>Thank you </p>