Actually apparently there is a pull request for it. Thanks for reporting! https://github.com/apache/spark/pull/1836
On Fri, Aug 8, 2014 at 10:50 AM, Ron Gonzalez <zlgonza...@yahoo.com> wrote: > Sure let me give it a try. Any tips? I've only started looking at Spark > code more closely recently. > I can compare Spark-1.0.1 code and see what's going on... > > Thanks, > Ron > > > On Friday, August 8, 2014 10:43 AM, Reynold Xin <r...@databricks.com> > wrote: > > > I created a JIRA ticket to track this: > https://issues.apache.org/jira/browse/SPARK-2928 > > Let me know if you need help with it. > > > > On Fri, Aug 8, 2014 at 10:40 AM, Reynold Xin <r...@databricks.com> wrote: > > Yes, I'm pretty sure it doesn't actually use the right serializer in > TorrentBroadcast: > https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/broadcast/TorrentBroadcast.scala#L232 > > And TorrentBroadcast is turned on by default for 1.1 right now. Do you > want to submit a pull request to fix that? This would be a critical fix for > 1.1 that's worth doing. > > > > On Fri, Aug 8, 2014 at 10:37 AM, Ron Gonzalez <zlgonza...@yahoo.com> > wrote: > > > Oops, exception is below. > > For local, it works and that's the case since TorrentBroadcast has if > !isLocal, then that's the only time the broadcast actually happens. It really > seems as if the Kryo wrapper didn't kick in for some reason. Do we have a > unit test that tests the Kryo serialization that I can give a try? > > Thanks, > > Ron > > > Exception in thread "Driver" java.lang.reflect.InvocationTargetException > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at > org.apache.spark.deploy.yarn.ApplicationMaster$$anon$2.run(ApplicationMaster.scala:180) > Caused by: java.io.NotSerializableException: > org.apache.avro.generic.GenericData$Record > - custom writeObject data (class "scala.collection.mutable.HashMap") > > > > On Friday, August 8, 2014 10:16 AM, Reynold Xin <r...@databricks.com> > wrote: > > > Looks like you didn't actually paste the exception message. Do you mind > doing that? > > > > On Fri, Aug 8, 2014 at 10:14 AM, Reynold Xin <r...@databricks.com> wrote: > > > Pasting a better formatted trace: > > > > > > > > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180) > > at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347) > > at > > > scala.collection.mutable.HashMap$$anonfun$writeObject$1.apply(HashMap.scala:137) > > at > > > scala.collection.mutable.HashMap$$anonfun$writeObject$1.apply(HashMap.scala:135) > > at > > > scala.collection.mutable.HashTable$class.foreachEntry(HashTable.scala:226) > > at scala.collection.mutable.HashMap.foreachEntry(HashMap.scala:39) > > at > > scala.collection.mutable.HashTable$class.serializeTo(HashTable.scala:124) > > at scala.collection.mutable.HashMap.serializeTo(HashMap.scala:39) > > at scala.collection.mutable.HashMap.writeObject(HashMap.scala:135) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > > at > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > at java.lang.reflect.Method.invoke(Method.java:606) at > > java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:988) > > at > > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495) > > at > > > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431) > > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177) > > at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347) > > at org.apache.spark.util.Utils$.serialize(Utils.scala:64) > > at > > > org.apache.spark.broadcast.TorrentBroadcast$.blockifyObject(TorrentBroadcast.scala:232) > > at > > > org.apache.spark.broadcast.TorrentBroadcast.sendBroadcast(TorrentBroadcast.scala:85) > > at > > > org.apache.spark.broadcast.TorrentBroadcast.<init>(TorrentBroadcast.scala:66) > > at > > > org.apache.spark.broadcast.TorrentBroadcastFactory.newBroadcast(TorrentBroadcastFactory.scala:36) > > at > > > org.apache.spark.broadcast.TorrentBroadcastFactory.newBroadcast(TorrentBroadcastFactory.scala:29) > > at > > > > > org.apache.spark.broadcast.BroadcastManager.newBroadcast(BroadcastManager.scala:62) > > at org.apache.spark.SparkContext.broadcast(SparkContext.scala:809) > > > > > > On Fri, Aug 8, 2014 at 10:12 AM, Ron Gonzalez < > > zlgonza...@yahoo.com.invalid> wrote: > > > >> Hi, > >> I have a running spark app against the released version of 1.0.1. I > >> recently decided to try and upgrade to the trunk version. Interestingly > >> enough, after building the 1.1.0-SNAPSHOT assembly, replacing it as my > >> assembly in my app caused errors. In particular, it seems Kryo > >> serialization isn't taking. Replacing it with 1.0.1 automatically gets > it > >> working again. > >> > >> Any thoughts? Is this a known issue? > >> > >> Thanks, > >> Ron > >> > >> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180) > >> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347) > at > >> > scala.collection.mutable.HashMap$$anonfun$writeObject$1.apply(HashMap.scala:137) > >> at > >> > scala.collection.mutable.HashMap$$anonfun$writeObject$1.apply(HashMap.scala:135) > >> at > >> > scala.collection.mutable.HashTable$class.foreachEntry(HashTable.scala:226) > >> at scala.collection.mutable.HashMap.foreachEntry(HashMap.scala:39) at > >> > scala.collection.mutable.HashTable$class.serializeTo(HashTable.scala:124) > >> at scala.collection.mutable.HashMap.serializeTo(HashMap.scala:39) at > >> scala.collection.mutable.HashMap.writeObject(HashMap.scala:135) at > >> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at > >> > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > >> at > >> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > >> at java.lang.reflect.Method.invoke(Method.java:606) at > >> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:988) > >> at > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495) > >> at > >> > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431) > >> at > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177) at > >> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347) at > >> org.apache.spark.util.Utils$.serialize(Utils.scala:64) at > >> > org.apache.spark.broadcast.TorrentBroadcast$.blockifyObject(TorrentBroadcast.scala:232) > >> at > >> > org.apache.spark.broadcast.TorrentBroadcast.sendBroadcast(TorrentBroadcast.scala:85) > >> at > >> > org.apache.spark.broadcast.TorrentBroadcast.<init>(TorrentBroadcast.scala:66) > >> at > >> > org.apache.spark.broadcast.TorrentBroadcastFactory.newBroadcast(TorrentBroadcastFactory.scala:36) > >> at > >> > org.apache.spark.broadcast.TorrentBroadcastFactory.newBroadcast(TorrentBroadcastFactory.scala:29) > >> at > >> > org.apache.spark.broadcast.BroadcastManager.newBroadcast(BroadcastManager.scala:62) > >> at org.apache.spark.SparkContext.broadcast(SparkContext.scala:809) > > > > > > > > > > > > >