Hi all,

I have a peculiar problem...

I'm using a kafka storm combo to feed updates to my Titan Graph db. The
topology runs quite happily when local but as soon as I try to run it on a
cluster I run into Kryo errors.

2014-10-09 18:41:47 b.s.util [ERROR] Async loop died!
java.lang.RuntimeException: com.esotericsoftware.kryo.KryoException:
Encountered unregistered class ID: 10
at
backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:128)
~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
at
backtype.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:99)
~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
at
backtype.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:80)
~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
at
backtype.storm.daemon.executor$fn__5641$fn__5653$fn__5700.invoke(executor.clj:746)
~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
at backtype.storm.util$async_loop$fn__457.invoke(util.clj:431)
~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
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: com.esotericsoftware.kryo.KryoException: Encountered
unregistered class ID: 10
at
com.esotericsoftware.kryo.util.DefaultClassResolver.readClass(DefaultClassResolver.java:119)
~[kryo-2.21.jar:na]
at com.esotericsoftware.kryo.Kryo.readClass(Kryo.java:610)
~[kryo-2.21.jar:na]
at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:721)
~[kryo-2.21.jar:na]
at
com.thinkaurelius.titan.graphdb.database.serialize.kryo.KryoSerializer.readClassAndObject(KryoSerializer.java:77)
~[stormjar.jar:na]
at
com.thinkaurelius.titan.graphdb.database.serialize.StandardSerializer.readClassAndObject(StandardSerializer.java:85)
~[stormjar.jar:na]
at
com.thinkaurelius.titan.graphdb.database.EdgeSerializer.readPropertyValue(EdgeSerializer.java:206)
~[stormjar.jar:na]
at
com.thinkaurelius.titan.graphdb.database.EdgeSerializer.readPropertyValue(EdgeSerializer.java:201)
~[stormjar.jar:na]
at
com.thinkaurelius.titan.graphdb.database.EdgeSerializer.parseRelation(EdgeSerializer.java:134)
~[stormjar.jar:na]
at
com.thinkaurelius.titan.graphdb.database.EdgeSerializer.readRelation(EdgeSerializer.java:70)
~[stormjar.jar:na]
at
com.thinkaurelius.titan.graphdb.transaction.RelationConstructor.readRelation(RelationConstructor.java:61)
~[stormjar.jar:na]
at
com.thinkaurelius.titan.graphdb.transaction.RelationConstructor$1$1.next(RelationConstructor.java:46)
~[stormjar.jar:na]
at
com.thinkaurelius.titan.graphdb.transaction.RelationConstructor$1$1.next(RelationConstructor.java:34)
~[stormjar.jar:na]
at
com.thinkaurelius.titan.graphdb.types.vertices.TitanSchemaVertex.getDefinition(TitanSchemaVertex.java:73)
~[stormjar.jar:na]
at
com.thinkaurelius.titan.graphdb.types.vertices.PropertyKeyVertex.getDataType(PropertyKeyVertex.java:17)
~[stormjar.jar:na]
at
com.thinkaurelius.titan.graphdb.query.QueryUtil.constraints2QNF(QueryUtil.java:148)
~[stormjar.jar:na]
at
com.thinkaurelius.titan.graphdb.query.graph.GraphCentricQueryBuilder.constructQuery(GraphCentricQueryBuilder.java:208)
~[stormjar.jar:na]
at
com.thinkaurelius.titan.graphdb.query.graph.GraphCentricQueryBuilder.vertices(GraphCentricQueryBuilder.java:155)
~[stormjar.jar:na]
at
com.tinkerpop.pipes.transform.GraphQueryPipe.processNextStart(GraphQueryPipe.java:49)
~[stormjar.jar:na]
at
com.tinkerpop.pipes.transform.GraphQueryPipe.processNextStart(GraphQueryPipe.java:17)
~[stormjar.jar:na]
at com.tinkerpop.pipes.AbstractPipe.next(AbstractPipe.java:89)
~[stormjar.jar:na]
at com.tinkerpop.pipes.IdentityPipe.processNextStart(IdentityPipe.java:19)
~[stormjar.jar:na]
at com.tinkerpop.pipes.AbstractPipe.next(AbstractPipe.java:89)
~[stormjar.jar:na]
at com.tinkerpop.pipes.util.Pipeline.next(Pipeline.java:115)
~[stormjar.jar:na]
at com.tinkerpop.pipes.util.PipeHelper.fillCollection(PipeHelper.java:52)
~[stormjar.jar:na]
at
com.tinkerpop.gremlin.java.GremlinPipeline.toList(GremlinPipeline.java:1564)
~[stormjar.jar:na]
at
com.comcast.graph.event.bolt.GraphSearchMetricsBolt.execute(GraphSearchMetricsBolt.java:83)
~[stormjar.jar:na]
at
backtype.storm.topology.BasicBoltExecutor.execute(BasicBoltExecutor.java:50)
~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
at
backtype.storm.daemon.executor$fn__5641$tuple_action_fn__5643.invoke(executor.clj:631)
~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
at
backtype.storm.daemon.executor$mk_task_receiver$fn__5564.invoke(executor.clj:399)
~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
at
backtype.storm.disruptor$clojure_handler$reify__745.onEvent(disruptor.clj:58)
~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
at
backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:120)
~[storm-core-0.9.2-incubating.jar:0.9.2-incubating]
... 6 common frames omitted

Looking at my dependency tree, titan has a dependency on kryo 2.22, how
does this conflict with Storm and 2.21?

titan:
*[INFO] |  \- com.esotericsoftware.kryo:kryo:jar:2.22:compile*

Regards,

Nick

Reply via email to