Sure. Should I create a Jira as well? I saw there's already a broader ticket regarding the ambiguous use of SPARK_HOME [1] (cc: Patrick as owner of that ticket)
I don't know if it would be more relevant to remove the use of SPARK_HOME when using mesos and have the assembly as the only way forward, or whether that's a too radical change that might break some existing systems. >From a real-world ops perspective, the assembly should be the way to go. I don't see installing and configuring Spark distros on a mesos master as a way to have the mesos executor in place. -kr, Gerard. [1] https://issues.apache.org/jira/browse/SPARK-1110 On Thu, May 22, 2014 at 6:19 AM, Andrew Ash <and...@andrewash.com> wrote: > Hi Gerard, > > I agree that your second option seems preferred. You shouldn't have to > specify a SPARK_HOME if the executor is going to use the spark.executor.uri > instead. Can you send in a pull request that includes your proposed > changes? > > Andrew > > > On Wed, May 21, 2014 at 10:19 AM, Gerard Maas <gerard.m...@gmail.com> > wrote: > > > Spark dev's, > > > > I was looking into a question asked on the user list where a > > ClassNotFoundException was thrown when running a job on Mesos. Curious > > issue with serialization on Mesos: more details here [1]: > > > > When trying to run that simple example on my Mesos installation, I faced > > another issue: I got an error that "SPARK_HOME" was not set. I found that > > curious b/c a local spark installation should not be required to run a > job > > on Mesos. All that's needed is the executor package, being the > > assembly.tar.gz on a reachable location (HDFS/S3/HTTP). > > > > I went looking into the code and indeed there's a check on SPARK_HOME [2] > > regardless of the presence of the assembly but it's actually only used if > > the assembly is not provided (which is a kind-of best-effort recovery > > strategy). > > > > Current flow: > > > > if (!SPARK_HOME) fail("No SPARK_HOME") > > else if (assembly) { use assembly) } > > else { try use SPARK_HOME to build spark_executor } > > > > Should be: > > sparkExecutor = if (assembly) {assembly} > > else if (SPARK_HOME) {try use SPARK_HOME to build > > spark_executor} > > else { fail("No executor found. Please provide > > spark.executor.uri (preferred) or spark.home") > > > > What do you think? > > > > -kr, Gerard. > > > > > > [1] > > > > > http://apache-spark-user-list.1001560.n3.nabble.com/ClassNotFoundException-with-Spark-Mesos-spark-shell-works-fine-td6165.html > > > > [2] > > > > > https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosSchedulerBackend.scala#L89 > > >