Storm 0.9.1和Titan图数据库0.4.2中的Kryo兼容性与apache cassandra 2.0.7作为存储后端

Vij*_*ary 2 kryo titan apache-storm

我们使用的是使用Kryo 2.17的Storm 0.9.1,我们有模块将数据插入到内部使用Kryo 2.21的titan图数据库中,导致以下问题:

了java.lang.RuntimeException:com.esotericsoftware.kryo.KryoException:java.lang.IllegalArgumentException异常:不能com.thinkaurelius.titan.graphdb.types.TypeAttributeType场com.thinkaurelius.titan.graphdb.types.TypeAttribute.type设置为COM .thinkaurelius.titan.graphdb.types.TypeAttribute序列化跟踪:type(com.thinkaurelius.titan.graphdb.types.TypeAttribute)

我们如何解决这个问题,因为在风暴中将Kryo升级到2.21导致没有这样的方法错误.我们还尝试在Titan图数据库中将Kryo降级到2.17,但我们面临与上述相同的问题.

Cur*_*len 6

Storm 0.9.1及更早版本依赖于Carbonite 1.3.2,这取决于kryo 2.17.Titan依赖kryo 2.21,这与kryo 2.17不相容

java类加载器无法区分kryo的两个版本,导致您看到的RuntimeException.

Storm最近升级到使用kryo 2.21的更新版Carbonite,请看这张票:https://issues.apache.org/jira/browse/STORM-263

风暴0.9.2孵化尚未发布,但它确实解决了这个问题.我们一起成功地运行了Storm和Titan.因此,您可以运行自己的0.9.2孵化风暴或等到0.9.2孵化正式发布.

此问题也在Aurelius google小组中进行了讨论