【问题标题】:Kryo compatibility in Storm 0.9.1and Titan graph database 0.4.2 with apache cassandra 2.0.7 as storage backendStorm 0.9.1 和 Titan 图形数据库 0.4.2 中的 Kryo 兼容性,使用 apache cassandra 2.0.7 作为存储后端
【发布时间】:2014-06-16 13:17:37
【问题描述】:

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

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

【问题讨论】:

    标签: apache-storm titan kryo


    【解决方案1】:

    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

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

    Aurelius google group也讨论过这个问题

    【讨论】:

    猜你喜欢
    • 2016-08-04
    • 2013-10-28
    • 1970-01-01
    • 2016-09-03
    • 1970-01-01
    • 2017-04-05
    • 1970-01-01
    • 2019-10-14
    • 1970-01-01
    相关资源
    最近更新 更多