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

标签 apache-storm titan kryo

我们正在使用使用 Kryo 2.17 的 Storm 0.9.1 我们有一个模块将数据插入内部使用 Kryo 2.21 的泰坦图形数据库,这导致了以下问题:

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 序列化跟踪: 类型(com.thinkaurelius.titan.graphdb.types.TypeAttribute)

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

最佳答案

Storm 0.9.1 及更早版本依赖于 Carbonite 1.3.2,后者依赖于 kryo 2.17。 Titan 依赖于与 kryo 2.17 不兼容的 kryo 2.21

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

Storm 最近已升级到使用 kryo 2.21 的更新版本的 Carbonite,请参阅此票证: https://issues.apache.org/jira/browse/STORM-263

Storm 0.9.2-incubating 尚未发布,但它确实解决了这个问题。我们成功地同时运行了 Storm 和 Titan。因此,您可以运行自己构建的 storm 0.9.2-incubating 或等到 0.9.2-incubating 正式发布。

此问题也在 Aurelius google group 中讨论过

关于apache-storm - Storm 0.9.1 和 Titan 图形数据库 0.4.2 与 apache cassandra 2.0.7 作为存储后端的 Kryo 兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24244689/

相关文章:

Android SnappyDB 危险权限

java - ProcessSimulator.killAllProcesses(line:78)NoSuchMethodError ConcurrentHashMap.keySet()

java - TitanFactory静态构建方法

elasticsearch - Stormcrawler 缓慢且高延迟,爬行 300 个域

database - TitanDB - 按时间戳降序构建属性索引

graph - Bulbs/Gremlin/Titan 的关键索引

scala - Chill-kryo 中的异常

scala - 在 APACHE SPARK 中通过 KryoSerializer 和 JavaSerializer 使用 Scala Pickling 序列化

multithreading - Elasticsearch Transport客户端产生大量线程

apache-zookeeper - Storm UI 获取内部服务器错误 :org. apache.thrift7.transport.TTransportException : java.net.ConnectException:连接被拒绝