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

时间:2014-06-16 13:17:38

标签: apache-storm titan kryo

我们正在使用使用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,但我们面临与上述相同的问题。

1 个答案:

答案 0 :(得分: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 group

中讨论过