Danijel Schiavuzzi created STORM-332:
----------------------------------------

             Summary: Add support for Kryo serialization in the Kafka spout 
classes
                 Key: STORM-332
                 URL: https://issues.apache.org/jira/browse/STORM-332
             Project: Apache Storm (Incubating)
          Issue Type: Improvement
            Reporter: Danijel Schiavuzzi


The classes {{storm.kafka.Broker}} and {{storm.kafka.Partition}} from the new 
kafka-spout module can't be serialized by Kryo (using the default 
FieldsSerializer):

{noformat}
 java.lang.RuntimeException: com.esotericsoftware.kryo.KryoException: Class 
cannot be created (missing no-arg constructor): storm.kafka.Broker
Serialization trace:
partitionMap (storm.kafka.trident.GlobalPartitionInformation)
{noformat}

A workaround to enabling Kryo compatibility is to add a private, no argument 
constructor to both classes (as done in 
backtype.storm.transactional.TransactionAttempt or backtype.storm.tuple.Values, 
for example).

This enables us to use the Kafka spout with Kryo, instead of Storm fallbacking 
to Java serialization.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to