【发布时间】:2015-04-10 15:35:37
【问题描述】:
我正在使用 Storm 0.93 和 Titan 0.5.4。 Titan 与我的应用程序在同一个 VM 中运行,并与外部运行的 cassandra 数据库通信。
当我将拓扑部署到 Storm 时,其中一个螺栓使用 Titan 的 API 进行一些查询。我收到以下异常:com.esotericsoftware.kryo.KryoException: Encountered unregistered class ID: 10.
这是因为 Titan 和 Storm 使用的 kyro 版本略有不同。 Titan 使用 2.22,storm 使用 2.21。
关于如何解决此问题的任何建议?
谢谢。
【问题讨论】:
-
您可以手动使用不同的类加载器来处理不同版本的 kryo,也许 OSGi 在您的情况下很有用。您将有两个类加载器,一个带有每个版本的 kryo 和要转换的自定义代码。有点长,也许有更好的东西?
标签: apache-storm titan kryo