<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>question Re: Why does Storm fail with this deserialization error only when using multiple workers? in Support Questions</title>
    <link>https://community.cloudera.com/t5/Support-Questions/Why-does-Storm-fail-with-this-deserialization-error-only/m-p/113447#M76245</link>
    <description>&lt;P&gt;Wondering why HDP 2.6 (means HADOOP 2.7.3) comes with Avro 1.7.4 version which does not support Serialization. &lt;A href="https://hadoop.apache.org/docs/r2.7.3/hadoop-mapreduce-client/hadoop-mapreduce-client-core/dependency-analysis.html" target="_blank"&gt;https://hadoop.apache.org/docs/r2.7.3/hadoop-mapreduce-client/hadoop-mapreduce-client-core/dependency-analysis.html&lt;/A&gt;&lt;/P&gt;</description>
    <pubDate>Mon, 14 May 2018 22:22:20 GMT</pubDate>
    <dc:creator>NikhilSilsarma</dc:creator>
    <dc:date>2018-05-14T22:22:20Z</dc:date>
    <item>
      <title>Why does Storm fail with this deserialization error only when using multiple workers?</title>
      <link>https://community.cloudera.com/t5/Support-Questions/Why-does-Storm-fail-with-this-deserialization-error-only/m-p/113441#M76239</link>
      <description>&lt;P&gt;I have a Storm topology with bolts that pass Avro GenericRecord objects, i.e. the new AvroGenericRecordBolt (https://github.com/apache/storm/blob/master/external/storm-hdfs/src/main/java/org/apache/storm/hdfs/bolt/AvroGenericRecordBolt.java) and a custom bolt which emits GenericRecords.  When I run the topology in a single worker, everything is fine.  When I run with multiple workers, I get the serialization errors below.  I tried registering GenericData$Record with kryo, but since Record doesn't implement Serializable that doesn't work either (as expected).&lt;/P&gt;&lt;P&gt;- Why does this error appear only when I have multiple workers?&lt;/P&gt;&lt;P&gt;- Any suggestions to get around this given that Record isn't Serializable?&lt;/P&gt;&lt;PRE&gt;java.lang.RuntimeException: java.lang.RuntimeException: java.io.NotSerializableException: org.apache.avro.generic.GenericData$Record
        at backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:128) ~[storm-core-0.9.3.2.2.4.12-1.jar:0.9.3.2.2.4.12-1]
        at backtype.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:99) ~[storm-core-0.9.3.2.2.4.12-1.jar:0.9.3.2.2.4.12-1]
        at backtype.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:80) ~[storm-core-0.9.3.2.2.4.12-1.jar:0.9.3.2.2.4.12-1]
        at backtype.storm.disruptor$consume_loop_STAR_$fn__1077.invoke(disruptor.clj:94) ~[storm-core-0.9.3.2.2.4.12-1.jar:0.9.3.2.2.4.12-1]
        at backtype.storm.util$async_loop$fn__551.invoke(util.clj:465) ~[storm-core-0.9.3.2.2.4.12-1.jar:0.9.3.2.2.4.12-1]
        at clojure.lang.AFn.run(AFn.java:24) [clojure-1.5.1.jar:na]
        at java.lang.Thread.run(Thread.java:744) [na:1.7.0_45]
Caused by: java.lang.RuntimeException: java.io.NotSerializableException: org.apache.avro.generic.GenericData$Record
        at backtype.storm.serialization.SerializableSerializer.write(SerializableSerializer.java:41) ~[storm-core-0.9.3.2.2.4.12-1.jar:0.9.3.2.2.4.12-1]
        at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:568) ~[kryo-2.21.jar:na]
        at com.esotericsoftware.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:75) ~[kryo-2.21.jar:na]
        at com.esotericsoftware.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:18) ~[kryo-2.21.jar:na]
        at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:486) ~[kryo-2.21.jar:na]
        at backtype.storm.serialization.KryoValuesSerializer.serializeInto(KryoValuesSerializer.java:44) ~[storm-core-0.9.3.2.2.4.12-1.jar:0.9.3.2.2.4.12-1]
        at backtype.storm.serialization.KryoTupleSerializer.serialize(KryoTupleSerializer.java:44) ~[storm-core-0.9.3.2.2.4.12-1.jar:0.9.3.2.2.4.12-1]
        at backtype.storm.daemon.worker$mk_transfer_fn$transfer_fn__5386.invoke(worker.clj:139) ~[storm-core-0.9.3.2.2.4.12-1.jar:0.9.3.2.2.4.12-1]
        at backtype.storm.daemon.executor$start_batch_transfer__GT_worker_handler_BANG_$fn__5107.invoke(executor.clj:263) ~[storm-core-0.9.3.2.2.4.12-1.jar:0.9.3.2.2.4.12-1]
        at backtype.storm.disruptor$clojure_handler$reify__1064.onEvent(disruptor.clj:58) ~[storm-core-0.9.3.2.2.4.12-1.jar:0.9.3.2.2.4.12-1]
        at backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:125) ~[storm-core-0.9.3.2.2.4.12-1.jar:0.9.3.2.2.4.12-1]
        ... 6 common frames omitted
Caused by: java.io.NotSerializableException: org.apache.avro.generic.GenericData$Record
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183) ~[na:1.7.0_45]
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347) ~[na:1.7.0_45]
        at backtype.storm.serialization.SerializableSerializer.write(SerializableSerializer.java:38) ~[storm-core-0.9.3.2.2.4.12-1.jar:0.9.3.2.2.4.12-1]
        ... 16 common frames omitted&lt;/PRE&gt;</description>
      <pubDate>Wed, 27 Jan 2016 05:13:17 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/Why-does-Storm-fail-with-this-deserialization-error-only/m-p/113441#M76239</guid>
      <dc:creator>Aaron_Dossett</dc:creator>
      <dc:date>2016-01-27T05:13:17Z</dc:date>
    </item>
    <item>
      <title>Re: Why does Storm fail with this deserialization error only when using multiple workers?</title>
      <link>https://community.cloudera.com/t5/Support-Questions/Why-does-Storm-fail-with-this-deserialization-error-only/m-p/113442#M76240</link>
      <description>&lt;P&gt;When you are deploying to a single worker, there is no inter-worker communication, so there is no need to (de)serialize the data (everything is happening in the same JVM).&lt;/P&gt;&lt;P&gt;To work around the issue, you would have to implement your own kryo serializer for the GenericRecord.Record class.&lt;/P&gt;</description>
      <pubDate>Wed, 27 Jan 2016 05:25:06 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/Why-does-Storm-fail-with-this-deserialization-error-only/m-p/113442#M76240</guid>
      <dc:creator>tgoetz</dc:creator>
      <dc:date>2016-01-27T05:25:06Z</dc:date>
    </item>
    <item>
      <title>Re: Why does Storm fail with this deserialization error only when using multiple workers?</title>
      <link>https://community.cloudera.com/t5/Support-Questions/Why-does-Storm-fail-with-this-deserialization-error-only/m-p/113443#M76241</link>
      <description>&lt;P&gt;Thanks &lt;A rel="user" href="https://community.cloudera.com/users/208/tgoetz.html" nodeid="208"&gt;@tgoetz&lt;/A&gt;, that makes sense. I have seen other deserialization errors in single worker topologies, which made this a bit surprising.&lt;/P&gt;</description>
      <pubDate>Wed, 27 Jan 2016 05:31:50 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/Why-does-Storm-fail-with-this-deserialization-error-only/m-p/113443#M76241</guid>
      <dc:creator>Aaron_Dossett</dc:creator>
      <dc:date>2016-01-27T05:31:50Z</dc:date>
    </item>
    <item>
      <title>Re: Why does Storm fail with this deserialization error only when using multiple workers?</title>
      <link>https://community.cloudera.com/t5/Support-Questions/Why-does-Storm-fail-with-this-deserialization-error-only/m-p/113444#M76242</link>
      <description>&lt;P&gt;FYI, same or upper version of Storm 0.10.0-beta, you can set 'topology.testing.always.try.serialize' to 'true' when testing your topology in local to force (de)serialization, and set it off when distributing works to multiple hosts.&lt;/P&gt;</description>
      <pubDate>Wed, 27 Jan 2016 09:43:08 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/Why-does-Storm-fail-with-this-deserialization-error-only/m-p/113444#M76242</guid>
      <dc:creator>HeartSaVioR</dc:creator>
      <dc:date>2016-01-27T09:43:08Z</dc:date>
    </item>
    <item>
      <title>Re: Why does Storm fail with this deserialization error only when using multiple workers?</title>
      <link>https://community.cloudera.com/t5/Support-Questions/Why-does-Storm-fail-with-this-deserialization-error-only/m-p/113445#M76243</link>
      <description>&lt;P&gt;Great tip, &lt;A href="https://community.hortonworks.com/users/2219/jlim.html"&gt;@Jungtaek Lim&lt;/A&gt;! I might be missing something obvious, but my first attempt at registering a serializer seemed to have no effect at all.&lt;/P&gt;&lt;PRE&gt;conf.registerSerialization(GenericData.Record.class, AvroGenericSerializer.class);
&lt;/PRE&gt;&lt;P&gt;I got precisely the same error message. It's possible that my serializer has a bug, but I didn't see any error related to the serializer itself.&lt;/P&gt;</description>
      <pubDate>Wed, 27 Jan 2016 10:13:12 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/Why-does-Storm-fail-with-this-deserialization-error-only/m-p/113445#M76243</guid>
      <dc:creator>Aaron_Dossett</dc:creator>
      <dc:date>2016-01-27T10:13:12Z</dc:date>
    </item>
    <item>
      <title>Re: Why does Storm fail with this deserialization error only when using multiple workers?</title>
      <link>https://community.cloudera.com/t5/Support-Questions/Why-does-Storm-fail-with-this-deserialization-error-only/m-p/113446#M76244</link>
      <description>&lt;P&gt;I clearly have a LOT more to learn, but adding this fixes the issue:&lt;/P&gt;&lt;P&gt; conf.setSkipMissingKryoRegistrations(false);&lt;/P&gt;</description>
      <pubDate>Wed, 27 Jan 2016 10:38:46 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/Why-does-Storm-fail-with-this-deserialization-error-only/m-p/113446#M76244</guid>
      <dc:creator>Aaron_Dossett</dc:creator>
      <dc:date>2016-01-27T10:38:46Z</dc:date>
    </item>
    <item>
      <title>Re: Why does Storm fail with this deserialization error only when using multiple workers?</title>
      <link>https://community.cloudera.com/t5/Support-Questions/Why-does-Storm-fail-with-this-deserialization-error-only/m-p/113447#M76245</link>
      <description>&lt;P&gt;Wondering why HDP 2.6 (means HADOOP 2.7.3) comes with Avro 1.7.4 version which does not support Serialization. &lt;A href="https://hadoop.apache.org/docs/r2.7.3/hadoop-mapreduce-client/hadoop-mapreduce-client-core/dependency-analysis.html" target="_blank"&gt;https://hadoop.apache.org/docs/r2.7.3/hadoop-mapreduce-client/hadoop-mapreduce-client-core/dependency-analysis.html&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 14 May 2018 22:22:20 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/Why-does-Storm-fail-with-this-deserialization-error-only/m-p/113447#M76245</guid>
      <dc:creator>NikhilSilsarma</dc:creator>
      <dc:date>2018-05-14T22:22:20Z</dc:date>
    </item>
    <item>
      <title>Re: Why does Storm fail with this deserialization error only when using multiple workers?</title>
      <link>https://community.cloudera.com/t5/Support-Questions/Why-does-Storm-fail-with-this-deserialization-error-only/m-p/113448#M76246</link>
      <description>&lt;P&gt;To keep us on our toes!&lt;/P&gt;</description>
      <pubDate>Tue, 15 May 2018 04:23:47 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/Why-does-Storm-fail-with-this-deserialization-error-only/m-p/113448#M76246</guid>
      <dc:creator>Aaron_Dossett</dc:creator>
      <dc:date>2018-05-15T04:23:47Z</dc:date>
    </item>
  </channel>
</rss>

