[
https://issues.apache.org/jira/browse/SPARK-2442?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14060150#comment-14060150
]
Sean Owen commented on SPARK-2442:
----------------------------------
I think this duplicates https://issues.apache.org/jira/browse/SPARK-2421
> Add a Hadoop Writable serializer
> --------------------------------
>
> Key: SPARK-2442
> URL: https://issues.apache.org/jira/browse/SPARK-2442
> Project: Spark
> Issue Type: Bug
> Reporter: Hari Shreedharan
>
> Using data read from hadoop files in shuffles can cause exceptions with the
> following stacktrace:
> {code}
> java.io.NotSerializableException: org.apache.hadoop.io.BytesWritable
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1181)
> at
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1541)
> at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1506)
> at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1429)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1175)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
> at
> org.apache.spark.serializer.JavaSerializationStream.writeObject(JavaSerializer.scala:42)
> at
> org.apache.spark.storage.DiskBlockObjectWriter.write(BlockObjectWriter.scala:179)
> at
> org.apache.spark.scheduler.ShuffleMapTask$$anonfun$runTask$1.apply(ShuffleMapTask.scala:161)
> at
> org.apache.spark.scheduler.ShuffleMapTask$$anonfun$runTask$1.apply(ShuffleMapTask.scala:158)
> at scala.collection.Iterator$class.foreach(Iterator.scala:727)
> at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
> at
> org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:158)
> at
> org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:99)
> at org.apache.spark.scheduler.Task.run(Task.scala:51)
> at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:183)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:679)
> {code}
> This though seems to go away if Kyro serializer is used. I am wondering if
> adding a Hadoop-writables friendly serializer makes sense as it is likely to
> perform better than Kyro without registration, since Writables don't
> implement Serializable - so the serialization might not be the most efficient.
--
This message was sent by Atlassian JIRA
(v6.2#6252)