Actually nope it did not work fine...

With multiple ALS iteration, I am getting the same error (with or without
my mllib changes)....

Exception in thread "main" org.apache.spark.SparkException: Job aborted due
to stage failure: Task 206 in stage 52.0 failed 4 times, most recent
failure: Lost task 206.3 in stage 52.0 (TID 9999,
tblpmidn42adv-hdp.tdc.vzwcorp.com): java.lang.ClassCastException:
scala.Tuple1 cannot be cast to scala.Product2


org.apache.spark.rdd.CoGroupedRDD$$anonfun$compute$5$$anonfun$apply$4.apply(CoGroupedRDD.scala:159)

        scala.collection.Iterator$$anon$11.next(Iterator.scala:328)


org.apache.spark.util.collection.ExternalAppendOnlyMap.insertAll(ExternalAppendOnlyMap.scala:138)


org.apache.spark.rdd.CoGroupedRDD$$anonfun$compute$5.apply(CoGroupedRDD.scala:159)


org.apache.spark.rdd.CoGroupedRDD$$anonfun$compute$5.apply(CoGroupedRDD.scala:158)


scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:772)


scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)

        scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)


scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:771)

        org.apache.spark.rdd.CoGroupedRDD.compute(CoGroupedRDD.scala:158)

        org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:262)

        org.apache.spark.rdd.RDD.iterator(RDD.scala:229)


org.apache.spark.rdd.MappedValuesRDD.compute(MappedValuesRDD.scala:31)

        org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:262)

        org.apache.spark.rdd.RDD.iterator(RDD.scala:229)


org.apache.spark.rdd.FlatMappedValuesRDD.compute(FlatMappedValuesRDD.scala:31)

        org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:262)

        org.apache.spark.rdd.RDD.iterator(RDD.scala:229)


org.apache.spark.rdd.MappedValuesRDD.compute(MappedValuesRDD.scala:31)

        org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:262)

        org.apache.spark.rdd.RDD.iterator(RDD.scala:229)


org.apache.spark.rdd.CoGroupedRDD$$anonfun$compute$2.apply(CoGroupedRDD.scala:129)


org.apache.spark.rdd.CoGroupedRDD$$anonfun$compute$2.apply(CoGroupedRDD.scala:126)


scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:772)


scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)

        scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:108)


scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:771)

        org.apache.spark.rdd.CoGroupedRDD.compute(CoGroupedRDD.scala:126)

        org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:262)

        org.apache.spark.rdd.RDD.iterator(RDD.scala:229)


org.apache.spark.rdd.MappedValuesRDD.compute(MappedValuesRDD.scala:31)

        org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:262)

        org.apache.spark.rdd.RDD.iterator(RDD.scala:229)


org.apache.spark.rdd.FlatMappedValuesRDD.compute(FlatMappedValuesRDD.scala:31)

        org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:262)

        org.apache.spark.rdd.RDD.iterator(RDD.scala:229)

        org.apache.spark.rdd.FlatMappedRDD.compute(FlatMappedRDD.scala:33)

        org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:262)

        org.apache.spark.rdd.RDD.iterator(RDD.scala:229)


org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:68)


org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:41)

        org.apache.spark.scheduler.Task.run(Task.scala:54)


org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:199)


java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)


java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

        java.lang.Thread.run(Thread.java:744)

Driver stacktrace:

at org.apache.spark.scheduler.DAGScheduler.org
$apache$spark$scheduler$DAGScheduler$$failJobAndIndependentStages(DAGScheduler.scala:1153)

at
org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1142)

at
org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1141)

at
scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)

at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)

at
org.apache.spark.scheduler.DAGScheduler.abortStage(DAGScheduler.scala:1141)

at
org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:682)

at
org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:682)

at scala.Option.foreach(Option.scala:236)

at
org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:682)

at
org.apache.spark.scheduler.DAGSchedulerEventProcessActor$$anonfun$receive$2.applyOrElse(DAGScheduler.scala:1359)

at akka.actor.ActorCell.receiveMessage(ActorCell.scala:498)

at akka.actor.ActorCell.invoke(ActorCell.scala:456)

at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:237)

at akka.dispatch.Mailbox.run(Mailbox.scala:219)

at
akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:386)

at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)

at
scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)

at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)

at
scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

The behavior is consistent in standalone and yarn mode...

I am at the following checkin: commit
ec79063fad44751a6689f5e58d47886babeaecff

I also tested yarn deployment and I will use standalone mode to deploy
stable spark release (1.0.1 right now) and all the mllib changes I can test
on our datasets through yarn deployment...it works fine...

By the way, let me try if I can reproduce this issue on MovieLensALS
locally....Most likely it is a bug

Thanks.

Deb


On Sat, Aug 9, 2014 at 11:12 AM, Debasish Das <debasish.da...@gmail.com>
wrote:

> Including mllib inside assembly worked fine...If I deploy only the core
> and send mllib as --jars then this problem shows up...
>
> Xiangrui could you please comment if it is a bug or expected behavior ? I
> will create a JIRA if this needs to be tracked...
>
>
> On Sat, Aug 9, 2014 at 11:01 AM, Matt Forbes <m...@tellapart.com> wrote:
>
>> I was having this same problem early this week and had to include my
>> changes in the assembly.
>>
>>
>> On Sat, Aug 9, 2014 at 9:59 AM, Debasish Das <debasish.da...@gmail.com>
>> wrote:
>>
>>> I validated that I can reproduce this problem with master as well
>>> (without
>>> adding any of my mllib changes)...
>>>
>>> I separated mllib jar from assembly, deploy the assembly and then I
>>> supply
>>> the mllib jar as --jars option to spark-submit...
>>>
>>> I get this error:
>>>
>>> 14/08/09 12:49:32 INFO DAGScheduler: Failed to run count at ALS.scala:299
>>>
>>> Exception in thread "main" org.apache.spark.SparkException: Job aborted
>>> due
>>> to stage failure: Task 238 in stage 40.0 failed 4 times, most recent
>>> failure: Lost task 238.3 in stage 40.0 (TID 10002,
>>> tblpmidn05adv-hdp.tdc.vzwcorp.com): java.lang.ClassCastException:
>>> scala.Tuple1 cannot be cast to scala.Product2
>>>
>>>
>>>
>>> org.apache.spark.rdd.CoGroupedRDD$$anonfun$compute$5$$anonfun$apply$4.apply(CoGroupedRDD.scala:159)
>>>
>>>         scala.collection.Iterator$$anon$11.next(Iterator.scala:328)
>>>
>>>
>>>
>>> org.apache.spark.util.collection.ExternalAppendOnlyMap.insertAll(ExternalAppendOnlyMap.scala:138)
>>>
>>>
>>>
>>> org.apache.spark.rdd.CoGroupedRDD$$anonfun$compute$5.apply(CoGroupedRDD.scala:159)
>>>
>>>
>>>
>>> org.apache.spark.rdd.CoGroupedRDD$$anonfun$compute$5.apply(CoGroupedRDD.scala:158)
>>>
>>>
>>>
>>> scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:772)
>>>
>>>
>>>
>>> scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
>>>
>>>
>>> scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
>>>
>>>
>>>
>>> scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:771)
>>>
>>>         org.apache.spark.rdd.CoGroupedRDD.compute(CoGroupedRDD.scala:158)
>>>
>>>         org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:262)
>>>
>>>         org.apache.spark.rdd.RDD.iterator(RDD.scala:229)
>>>
>>>
>>> org.apache.spark.rdd.MappedValuesRDD.compute(MappedValuesRDD.scala:31)
>>>
>>>         org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:262)
>>>
>>>         org.apache.spark.rdd.RDD.iterator(RDD.scala:229)
>>>
>>>
>>>
>>> org.apache.spark.rdd.FlatMappedValuesRDD.compute(FlatMappedValuesRDD.scala:31)
>>>
>>>         org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:262)
>>>
>>>         org.apache.spark.rdd.RDD.iterator(RDD.scala:229)
>>>
>>>
>>> org.apache.spark.rdd.MappedValuesRDD.compute(MappedValuesRDD.scala:31)
>>>
>>>         org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:262)
>>>
>>>         org.apache.spark.rdd.RDD.iterator(RDD.scala:229)
>>>
>>>
>>>
>>> org.apache.spark.rdd.CoGroupedRDD$$anonfun$compute$2.apply(CoGroupedRDD.scala:129)
>>>
>>>
>>>
>>> org.apache.spark.rdd.CoGroupedRDD$$anonfun$compute$2.apply(CoGroupedRDD.scala:126)
>>>
>>>
>>>
>>> scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:772)
>>>
>>>
>>>
>>> scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
>>>
>>>
>>> scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:108)
>>>
>>>
>>>
>>> scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:771)
>>>
>>>         org.apache.spark.rdd.CoGroupedRDD.compute(CoGroupedRDD.scala:126)
>>>
>>>         org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:262)
>>>
>>>         org.apache.spark.rdd.RDD.iterator(RDD.scala:229)
>>>
>>>
>>> org.apache.spark.rdd.MappedValuesRDD.compute(MappedValuesRDD.scala:31)
>>>
>>>         org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:262)
>>>
>>>         org.apache.spark.rdd.RDD.iterator(RDD.scala:229)
>>>
>>>
>>>
>>> org.apache.spark.rdd.FlatMappedValuesRDD.compute(FlatMappedValuesRDD.scala:31)
>>>
>>>         org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:262)
>>>
>>>         org.apache.spark.rdd.RDD.iterator(RDD.scala:229)
>>>
>>>
>>> org.apache.spark.rdd.FlatMappedRDD.compute(FlatMappedRDD.scala:33)
>>>
>>>         org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:262)
>>>
>>>         org.apache.spark.CacheManager.getOrCompute(CacheManager.scala:61)
>>>
>>>         org.apache.spark.rdd.RDD.iterator(RDD.scala:227)
>>>
>>>
>>> org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:62)
>>>
>>>         org.apache.spark.scheduler.Task.run(Task.scala:54)
>>>
>>>
>>> org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:199)
>>>
>>>
>>>
>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>>>
>>>
>>>
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>>>
>>>         java.lang.Thread.run(Thread.java:744)
>>>
>>> Driver stacktrace:
>>>
>>> at org.apache.spark.scheduler.DAGScheduler.org
>>>
>>> $apache$spark$scheduler$DAGScheduler$$failJobAndIndependentStages(DAGScheduler.scala:1153)
>>>
>>> at
>>>
>>> org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1142)
>>>
>>> at
>>>
>>> org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1141)
>>>
>>> at
>>>
>>> scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
>>>
>>> at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
>>>
>>> at
>>>
>>> org.apache.spark.scheduler.DAGScheduler.abortStage(DAGScheduler.scala:1141)
>>>
>>> at
>>>
>>> org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:682)
>>>
>>> at
>>>
>>> org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:682)
>>>
>>> at scala.Option.foreach(Option.scala:236)
>>>
>>> at
>>>
>>> org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:682)
>>>
>>> at
>>>
>>> org.apache.spark.scheduler.DAGSchedulerEventProcessActor$$anonfun$receive$2.applyOrElse(DAGScheduler.scala:1359)
>>>
>>> at akka.actor.ActorCell.receiveMessage(ActorCell.scala:498)
>>>
>>> at akka.actor.ActorCell.invoke(ActorCell.scala:456)
>>>
>>> at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:237)
>>>
>>> at akka.dispatch.Mailbox.run(Mailbox.scala:219)
>>>
>>> at
>>>
>>> akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:386)
>>>
>>> at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
>>>
>>> at
>>>
>>> scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
>>>
>>> at
>>> scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
>>>
>>> at
>>>
>>> scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
>>>
>>> I will try now with mllib inside the assembly....If that works then
>>> something is weird here !
>>>
>>>
>>> On Sat, Aug 9, 2014 at 12:46 AM, Debasish Das <debasish.da...@gmail.com>
>>> wrote:
>>>
>>> > Hi Xiangrui,
>>> >
>>> > Based on your suggestion I moved core and mllib both to
>>> 1.1.0-SNAPSHOT...I
>>> > am still getting class cast exception:
>>> >
>>> > Exception in thread "main" org.apache.spark.SparkException: Job aborted
>>> > due to stage failure: Task 249 in stage 52.0 failed 4 times, most
>>> recent
>>> > failure: Lost task 249.3 in stage 52.0 (TID 10002,
>>> > tblpmidn06adv-hdp.tdc.vzwcorp.com): java.lang.ClassCastException:
>>> > scala.Tuple1 cannot be cast to scala.Product2
>>> >
>>> > I am running ALS.scala merged with my changes. I will try the mllib jar
>>> > without my changes next...
>>> >
>>> > Can this be due to the fact that my jars are compiled with Java 1.7_55
>>> but
>>> > the cluster JRE is at 1.7_45.
>>> >
>>> > Thanks.
>>> >
>>> > Deb
>>> >
>>> >
>>> >
>>> >
>>> > On Wed, Aug 6, 2014 at 12:01 PM, Debasish Das <
>>> debasish.da...@gmail.com>
>>> > wrote:
>>> >
>>> >> I did not play with Hadoop settings...everything is compiled with
>>> >> 2.3.0CDH5.0.2 for me...
>>> >>
>>> >> I did try to bump the version number of HBase from 0.94 to 0.96 or
>>> 0.98
>>> >> but there was no profile for CDH in the pom...but that's unrelated to
>>> this !
>>> >>
>>> >>
>>> >> On Wed, Aug 6, 2014 at 9:45 AM, DB Tsai <dbt...@dbtsai.com> wrote:
>>> >>
>>> >>> One related question, is mllib jar independent from hadoop version
>>> >>> (doesnt use hadoop api directly)? Can I use mllib jar compile for one
>>> >>> version of hadoop and use it in another version of hadoop?
>>> >>>
>>> >>> Sent from my Google Nexus 5
>>> >>> On Aug 6, 2014 8:29 AM, "Debasish Das" <debasish.da...@gmail.com>
>>> wrote:
>>> >>>
>>> >>>> Hi Xiangrui,
>>> >>>>
>>> >>>> Maintaining another file will be a pain later so I deployed spark
>>> 1.0.1
>>> >>>> without mllib and then my application jar bundles mllib
>>> 1.1.0-SNAPSHOT
>>> >>>> along with the code changes for quadratic optimization...
>>> >>>>
>>> >>>> Later the plan is to patch the snapshot mllib with the deployed
>>> stable
>>> >>>> mllib...
>>> >>>>
>>> >>>> There are 5 variants that I am experimenting with around 400M
>>> ratings
>>> >>>> (daily data, monthly data I will update in few days)...
>>> >>>>
>>> >>>> 1. LS
>>> >>>> 2. NNLS
>>> >>>> 3. Quadratic with bounds
>>> >>>> 4. Quadratic with L1
>>> >>>> 5. Quadratic with equality and positivity
>>> >>>>
>>> >>>> Now the ALS 1.1.0 snapshot runs fine but after completion on this
>>> step
>>> >>>> ALS.scala:311
>>> >>>>
>>> >>>> // Materialize usersOut and productsOut.
>>> >>>> usersOut.count()
>>> >>>>
>>> >>>> I am getting from one of the executors:
>>> java.lang.ClassCastException:
>>> >>>> scala.Tuple1 cannot be cast to scala.Product2
>>> >>>>
>>> >>>> I am debugging it further but I was wondering if this is due to RDD
>>> >>>> compatibility within 1.0.1 and 1.1.0-SNAPSHOT ?
>>> >>>>
>>> >>>> I have built the jars on my Mac which has Java 1.7.0_55 but the
>>> deployed
>>> >>>> cluster has Java 1.7.0_45.
>>> >>>>
>>> >>>> The flow runs fine on my localhost spark 1.0.1 with 1 worker. Can
>>> that
>>> >>>> Java
>>> >>>> version mismatch cause this ?
>>> >>>>
>>> >>>> Stack traces are below
>>> >>>>
>>> >>>> Thanks.
>>> >>>> Deb
>>> >>>>
>>> >>>>
>>> >>>> Executor stacktrace:
>>> >>>>
>>> >>>>
>>> >>>>
>>> org.apache.spark.rdd.CoGroupedRDD$$anonfun$compute$4.apply(CoGroupedRDD.scala:156)
>>> >>>>
>>> >>>>
>>> >>>>
>>> >>>>
>>> org.apache.spark.rdd.CoGroupedRDD$$anonfun$compute$4.apply(CoGroupedRDD.scala:154)
>>> >>>>
>>> >>>>
>>> >>>>
>>> >>>>
>>> scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
>>> >>>>
>>> >>>>
>>> >>>> scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
>>> >>>>
>>> >>>>
>>> >>>> org.apache.spark.rdd.CoGroupedRDD.compute(CoGroupedRDD.scala:154)
>>> >>>>
>>> >>>>
>>> org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:262)
>>> >>>>
>>> >>>>         org.apache.spark.rdd.RDD.iterator(RDD.scala:229)
>>> >>>>
>>> >>>>
>>> >>>>
>>> org.apache.spark.rdd.MappedValuesRDD.compute(MappedValuesRDD.scala:31)
>>> >>>>
>>> >>>>
>>> org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:262)
>>> >>>>
>>> >>>>         org.apache.spark.rdd.RDD.iterator(RDD.scala:229)
>>> >>>>
>>> >>>>
>>> >>>>
>>> >>>>
>>> org.apache.spark.rdd.FlatMappedValuesRDD.compute(FlatMappedValuesRDD.scala:31)
>>> >>>>
>>> >>>>
>>> org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:262)
>>> >>>>
>>> >>>>         org.apache.spark.rdd.RDD.iterator(RDD.scala:229)
>>> >>>>
>>> >>>>
>>> >>>>
>>> org.apache.spark.rdd.MappedValuesRDD.compute(MappedValuesRDD.scala:31)
>>> >>>>
>>> >>>>
>>> org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:262)
>>> >>>>
>>> >>>>         org.apache.spark.rdd.RDD.iterator(RDD.scala:229)
>>> >>>>
>>> >>>>
>>> >>>>
>>> >>>>
>>> org.apache.spark.rdd.CoGroupedRDD$$anonfun$compute$2.apply(CoGroupedRDD.scala:126)
>>> >>>>
>>> >>>>
>>> >>>>
>>> >>>>
>>> org.apache.spark.rdd.CoGroupedRDD$$anonfun$compute$2.apply(CoGroupedRDD.scala:123)
>>> >>>>
>>> >>>>
>>> >>>>
>>> >>>>
>>> scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:772)
>>> >>>>
>>> >>>>
>>> >>>>
>>> >>>>
>>> scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
>>> >>>>
>>> >>>>
>>> >>>> scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:108)
>>> >>>>
>>> >>>>
>>> >>>>
>>> >>>>
>>> scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:771)
>>> >>>>
>>> >>>>
>>> >>>> org.apache.spark.rdd.CoGroupedRDD.compute(CoGroupedRDD.scala:123)
>>> >>>>
>>> >>>>
>>> org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:262)
>>> >>>>
>>> >>>>         org.apache.spark.rdd.RDD.iterator(RDD.scala:229)
>>> >>>>
>>> >>>>
>>> >>>>
>>> org.apache.spark.rdd.MappedValuesRDD.compute(MappedValuesRDD.scala:31)
>>> >>>>
>>> >>>>
>>> org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:262)
>>> >>>>
>>> >>>>         org.apache.spark.rdd.RDD.iterator(RDD.scala:229)
>>> >>>>
>>> >>>>
>>> >>>>
>>> >>>>
>>> org.apache.spark.rdd.FlatMappedValuesRDD.compute(FlatMappedValuesRDD.scala:31)
>>> >>>>
>>> >>>>
>>> org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:262)
>>> >>>>
>>> >>>>         org.apache.spark.rdd.RDD.iterator(RDD.scala:229)
>>> >>>>
>>> >>>>
>>> >>>> org.apache.spark.rdd.FlatMappedRDD.compute(FlatMappedRDD.scala:33)
>>> >>>>
>>> >>>>
>>> org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:262)
>>> >>>>
>>> >>>>         org.apache.spark.rdd.RDD.iterator(RDD.scala:229)
>>> >>>>
>>> >>>>
>>> >>>>
>>> >>>>
>>> org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:158)
>>> >>>>
>>> >>>>
>>> >>>>
>>> >>>>
>>> org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:99)
>>> >>>>
>>> >>>>         org.apache.spark.scheduler.Task.run(Task.scala:51)
>>> >>>>
>>> >>>>
>>> >>>>
>>> org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:183)
>>> >>>>
>>> >>>>
>>> >>>>
>>> >>>>
>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>>> >>>>
>>> >>>>
>>> >>>>
>>> >>>>
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>>> >>>>
>>> >>>>         java.lang.Thread.run(Thread.java:744)
>>> >>>>
>>> >>>> Driver stacktrace:
>>> >>>>
>>> >>>> at org.apache.spark.scheduler.DAGScheduler.org
>>> >>>>
>>> >>>>
>>> $apache$spark$scheduler$DAGScheduler$$failJobAndIndependentStages(DAGScheduler.scala:1044)
>>> >>>>
>>> >>>> at
>>> >>>>
>>> >>>>
>>> org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1028)
>>> >>>>
>>> >>>> at
>>> >>>>
>>> >>>>
>>> org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1026)
>>> >>>>
>>> >>>> at
>>> >>>>
>>> >>>>
>>> scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
>>> >>>>
>>> >>>> at
>>> scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
>>> >>>>
>>> >>>> at
>>> >>>>
>>> >>>>
>>> org.apache.spark.scheduler.DAGScheduler.abortStage(DAGScheduler.scala:1026)
>>> >>>>
>>> >>>> at
>>> >>>>
>>> >>>>
>>> org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:634)
>>> >>>>
>>> >>>> at
>>> >>>>
>>> >>>>
>>> org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:634)
>>> >>>>
>>> >>>> at scala.Option.foreach(Option.scala:236)
>>> >>>>
>>> >>>> at
>>> >>>>
>>> >>>>
>>> org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:634)
>>> >>>>
>>> >>>> at
>>> >>>>
>>> >>>>
>>> org.apache.spark.scheduler.DAGSchedulerEventProcessActor$$anonfun$receive$2.applyOrElse(DAGScheduler.scala:1229)
>>> >>>>
>>> >>>> at akka.actor.ActorCell.receiveMessage(ActorCell.scala:498)
>>> >>>>
>>> >>>> at akka.actor.ActorCell.invoke(ActorCell.scala:456)
>>> >>>>
>>> >>>> at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:237)
>>> >>>>
>>> >>>> at akka.dispatch.Mailbox.run(Mailbox.scala:219)
>>> >>>>
>>> >>>> at
>>> >>>>
>>> >>>>
>>> akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:386)
>>> >>>>
>>> >>>> at
>>> scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
>>> >>>>
>>> >>>> at
>>> >>>>
>>> >>>>
>>> scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
>>> >>>>
>>> >>>> at
>>> >>>>
>>> scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
>>> >>>>
>>> >>>>  at
>>> >>>>
>>> >>>>
>>> scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
>>> >>>>
>>> >>>>
>>> >>>> On Tue, Aug 5, 2014 at 5:59 PM, Debasish Das <
>>> debasish.da...@gmail.com>
>>> >>>> wrote:
>>> >>>>
>>> >>>> > Hi Xiangrui,
>>> >>>> >
>>> >>>> > I used your idea and kept a cherry picked version of ALS.scala in
>>> my
>>> >>>> > application and call it ALSQp.scala...this is a OK workaround for
>>> now
>>> >>>> till
>>> >>>> > a version adds up to master for example...
>>> >>>> >
>>> >>>> > For the bug with userClassPathFirst, looks like Koert already
>>> found
>>> >>>> this
>>> >>>> > issue in the following JIRA:
>>> >>>> >
>>> >>>> > https://issues.apache.org/jira/browse/SPARK-1863
>>> >>>> >
>>> >>>> > By the way the userClassPathFirst feature is very useful since I
>>> am
>>> >>>> sure
>>> >>>> > the deployed version of spark on a production cluster will always
>>> be
>>> >>>> the
>>> >>>> > last stable (core at 1.0.1 in my case) and people would like to
>>> deploy
>>> >>>> > SNAPSHOT versions of libraries that build on top of spark core
>>> (mllib,
>>> >>>> > streaming etc)...
>>> >>>> >
>>> >>>> > Another way is to have a build option that deploys only the core
>>> and
>>> >>>> not
>>> >>>> > the libraries built upon core...
>>> >>>> >
>>> >>>> > Do we have an option like that in make-distribution script ?
>>> >>>> >
>>> >>>> > Thanks.
>>> >>>> > Deb
>>> >>>> >
>>> >>>> >
>>> >>>> > On Tue, Aug 5, 2014 at 10:37 AM, Xiangrui Meng <men...@gmail.com>
>>> >>>> wrote:
>>> >>>> >
>>> >>>> >> If you cannot change the Spark jar deployed on the cluster, an
>>> easy
>>> >>>> >> solution would be renaming ALS in your jar. If userClassPathFirst
>>> >>>> >> doesn't work, could you create a JIRA and attach the log? Thanks!
>>> >>>> >> -Xiangrui
>>> >>>> >>
>>> >>>> >> On Tue, Aug 5, 2014 at 9:10 AM, Debasish Das <
>>> >>>> debasish.da...@gmail.com>
>>> >>>> >> wrote:
>>> >>>> >> > I created the assembly file but still it wants to pick the
>>> mllib
>>> >>>> from
>>> >>>> >> the
>>> >>>> >> > cluster:
>>> >>>> >> >
>>> >>>> >> > jar tf ./target/ml-0.0.1-SNAPSHOT-jar-with-dependencies.jar |
>>> grep
>>> >>>> >> > QuadraticMinimizer
>>> >>>> >> >
>>> >>>> >> >
>>> >>>> org/apache/spark/mllib/optimization/QuadraticMinimizer$$anon$1.class
>>> >>>> >> >
>>> >>>> >> > /Users/v606014/dist-1.0.1/bin/spark-submit --master
>>> >>>> >> > spark://TUSCA09LMLVT00C.local:7077 --class ALSDriver
>>> >>>> >> > ./target/ml-0.0.1-SNAPSHOT-jar-with-dependencies.jar inputPath
>>> >>>> >> outputPath
>>> >>>> >> >
>>> >>>> >> > Exception in thread "main" java.lang.NoSuchMethodError:
>>> >>>> >> >
>>> >>>> >>
>>> >>>>
>>> org.apache.spark.mllib.recommendation.ALS.setLambdaL1(D)Lorg/apache/spark/mllib/recommendation/ALS;
>>> >>>> >> >
>>> >>>> >> > Now if I force it to use the jar that I gave using
>>> >>>> >> > spark.files.userClassPathFirst, then it fails on some
>>> serialization
>>> >>>> >> > issues...
>>> >>>> >> >
>>> >>>> >> > A simple solution is to cherry pick the files I need from spark
>>> >>>> branch
>>> >>>> >> to
>>> >>>> >> > the application branch but I am not sure that's the right
>>> thing to
>>> >>>> do...
>>> >>>> >> >
>>> >>>> >> > The way userClassPathFirst is behaving, there might be bugs in
>>> >>>> it...
>>> >>>> >> >
>>> >>>> >> > Any suggestions will be appreciated....
>>> >>>> >> >
>>> >>>> >> > Thanks.
>>> >>>> >> > Deb
>>> >>>> >> >
>>> >>>> >> >
>>> >>>> >> > On Sat, Aug 2, 2014 at 11:12 AM, Xiangrui Meng <
>>> men...@gmail.com>
>>> >>>> >> wrote:
>>> >>>> >> >>
>>> >>>> >> >> Yes, that should work. spark-mllib-1.1.0 should be compatible
>>> with
>>> >>>> >> >> spark-core-1.0.1.
>>> >>>> >> >>
>>> >>>> >> >> On Sat, Aug 2, 2014 at 10:54 AM, Debasish Das <
>>> >>>> >> debasish.da...@gmail.com>
>>> >>>> >> >> wrote:
>>> >>>> >> >> > Let me try it...
>>> >>>> >> >> >
>>> >>>> >> >> > Will this be fixed if I generate a assembly file with
>>> >>>> mllib-1.1.0
>>> >>>> >> >> > SNAPSHOT
>>> >>>> >> >> > jar and other dependencies with the rest of the application
>>> >>>> code ?
>>> >>>> >> >> >
>>> >>>> >> >> >
>>> >>>> >> >> >
>>> >>>> >> >> > On Sat, Aug 2, 2014 at 10:46 AM, Xiangrui Meng <
>>> >>>> men...@gmail.com>
>>> >>>> >> wrote:
>>> >>>> >> >> >>
>>> >>>> >> >> >> You can try enabling "spark.files.userClassPathFirst". But
>>> I'm
>>> >>>> not
>>> >>>> >> >> >> sure whether it could solve your problem. -Xiangrui
>>> >>>> >> >> >>
>>> >>>> >> >> >> On Sat, Aug 2, 2014 at 10:13 AM, Debasish Das
>>> >>>> >> >> >> <debasish.da...@gmail.com>
>>> >>>> >> >> >> wrote:
>>> >>>> >> >> >> > Hi,
>>> >>>> >> >> >> >
>>> >>>> >> >> >> > I have deployed spark stable 1.0.1 on the cluster but I
>>> have
>>> >>>> new
>>> >>>> >> code
>>> >>>> >> >> >> > that
>>> >>>> >> >> >> > I added in mllib-1.1.0-SNAPSHOT.
>>> >>>> >> >> >> >
>>> >>>> >> >> >> > I am trying to access the new code using spark-submit as
>>> >>>> follows:
>>> >>>> >> >> >> >
>>> >>>> >> >> >> > spark-job --class
>>> >>>> com.verizon.bda.mllib.recommendation.ALSDriver
>>> >>>> >> >> >> > --executor-memory 16g --total-executor-cores 16 --jars
>>> >>>> >> >> >> > spark-mllib_2.10-1.1.0-SNAPSHOT.jar,scopt_2.10-3.2.0.jar
>>> >>>> >> >> >> > sag-core-0.0.1-SNAPSHOT.jar --rank 25 --numIterations 10
>>> >>>> --lambda
>>> >>>> >> 1.0
>>> >>>> >> >> >> > --qpProblem 2 inputPath outputPath
>>> >>>> >> >> >> >
>>> >>>> >> >> >> > I can see the jars are getting added to httpServer as
>>> >>>> expected:
>>> >>>> >> >> >> >
>>> >>>> >> >> >> > 14/08/02 12:50:04 INFO SparkContext: Added JAR
>>> >>>> >> >> >> >
>>> >>>> >>
>>> file:/vzhome/v606014/spark-glm/spark-mllib_2.10-1.1.0-SNAPSHOT.jar at
>>> >>>> >> >> >> >
>>> >>>> >>
>>> http://10.145.84.20:37798/jars/spark-mllib_2.10-1.1.0-SNAPSHOT.jar
>>> >>>> >> >> >> > with
>>> >>>> >> >> >> > timestamp 1406998204236
>>> >>>> >> >> >> >
>>> >>>> >> >> >> > 14/08/02 12:50:04 INFO SparkContext: Added JAR
>>> >>>> >> >> >> > file:/vzhome/v606014/spark-glm/scopt_2.10-3.2.0.jar at
>>> >>>> >> >> >> > http://10.145.84.20:37798/jars/scopt_2.10-3.2.0.jar with
>>> >>>> >> timestamp
>>> >>>> >> >> >> > 1406998204237
>>> >>>> >> >> >> >
>>> >>>> >> >> >> > 14/08/02 12:50:04 INFO SparkContext: Added JAR
>>> >>>> >> >> >> >
>>> file:/vzhome/v606014/spark-glm/sag-core-0.0.1-SNAPSHOT.jar at
>>> >>>> >> >> >> >
>>> http://10.145.84.20:37798/jars/sag-core-0.0.1-SNAPSHOT.jar
>>> >>>> with
>>> >>>> >> >> >> > timestamp
>>> >>>> >> >> >> > 1406998204238
>>> >>>> >> >> >> >
>>> >>>> >> >> >> > But the job still can't access code form mllib-1.1.0
>>> >>>> >> SNAPSHOT.jar...I
>>> >>>> >> >> >> > think
>>> >>>> >> >> >> > it's picking up the mllib from cluster which is at
>>> 1.0.1...
>>> >>>> >> >> >> >
>>> >>>> >> >> >> > Please help. I will ask for a PR tomorrow but internally
>>> we
>>> >>>> want
>>> >>>> >> to
>>> >>>> >> >> >> > generate results from the new code.
>>> >>>> >> >> >> >
>>> >>>> >> >> >> > Thanks.
>>> >>>> >> >> >> >
>>> >>>> >> >> >> > Deb
>>> >>>> >> >> >
>>> >>>> >> >> >
>>> >>>> >> >
>>> >>>> >> >
>>> >>>> >>
>>> >>>> >
>>> >>>> >
>>> >>>>
>>> >>>
>>> >>
>>> >
>>>
>>
>>
>

Reply via email to