Kryo Serialization?

63 views
Skip to first unread message

PaulON

unread,
Jun 16, 2016, 6:30:09 AM6/16/16
to cascading-user
Hey,

is anyone using Kryo Serialization successfully with Cascading?

I'm having an issue with TreeMaps that have a byte[] key.

These are what is required when using HBaseDynamicScheme but Kryo doesnt seem to be able to serialize/deserialize them.

I have overridden TreeMapSerializer to specify a ByteArrayComparator during create() instead of just trying to cast the key object to a comparator and I have registered Kryo as:

TupleSerializationProps.addSerialization(jobProperties, KryoSerialization.class.getName());
KryoFactory.ClassPair pair = new KryoFactory.ClassPair(TreeMap.class, ByteArrayTreeMapSerializer.class);
jobProperties.setProperty("cascading.kryo.registrations", pair.toString());

But while this seems to work for serialization, when deserializing I get the below error:

 Caused by: com.esotericsoftware.kryo.KryoException: Encountered unregistered class ID: 109
  at com.esotericsoftware.kryo.util.DefaultClassResolver.readClass(DefaultClassResolver.java:119)
  at com.esotericsoftware.kryo.Kryo.readClass(Kryo.java:610)
  at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:721)
  at com.esotericsoftware.kryo.serializers.MapSerializer.read(MapSerializer.java:134)
  at com.esotericsoftware.kryo.serializers.MapSerializer.read(MapSerializer.java:17)
  at com.esotericsoftware.kryo.Kryo.readObject(Kryo.java:626)
  at cascading.kryo.KryoDeserializer.deserialize(KryoDeserializer.java:37)
Anyone seen this before or have any ideas?

Cheers!


PaulON

unread,
Jun 16, 2016, 9:17:38 AM6/16/16
to cascading-user
I move some stuff around, but now I get
 Caused by: com.esotericsoftware.kryo.KryoException: Unable to find class:  [B
  at com.esotericsoftware.kryo.util.DefaultClassResolver.readName(DefaultClassResolver.java:138)
  at com.esotericsoftware.kryo.util.DefaultClassResolver.readClass(DefaultClassResolver.java:115)
  at com.esotericsoftware.kryo.Kryo.readClass(Kryo.java:610)
  at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:721)
  at com.esotericsoftware.kryo.serializers.MapSerializer.read(MapSerializer.java:134)
  at com.esotericsoftware.kryo.serializers.MapSerializer.read(MapSerializer.java:17)
  at com.esotericsoftware.kryo.Kryo.readObject(Kryo.java:626)
  at cascading.kryo.KryoDeserializer.deserialize(KryoDeserializer.java:37)
  at cascading.tuple.hadoop.TupleSerialization$SerializationElementReader.read(TupleSerialization.java:628)
Reply all
Reply to author
Forward
0 new messages