0

风暴版本 - 1.0.6。

我为我的一个课程注册了一个自定义序列化程序。正如预期的那样,它的 write 方法被调用并成功运行。但是,尽管在下游螺栓中调用了执行,但我的自定义序列化程序的读取方法根本没有被调用。我在本地集群中对此进行测试,始终尝试将序列化设置为 true。

我的猜测是,由于某种原因,storm 对我的自定义序列化不满意,并将元组原样传递到下游而不进行序列化。我在下游螺栓中看到的字段的指针值与发出的相同。

我没有看到任何警告或错误。我怎么知道在这种情况下出了什么问题?我知道我可以获取源代码并进行调试,但是还有其他任何人认为会有所帮助的提示吗?

4

1 回答 1

1

我相信本地模式集群只测试序列化,而不是反序列化。当所有工作人员都在一个进程中运行时,没有理由对元组进行序列化和反序列化,因为它们不会通过网络。总是尝试序列化设置只会让 Storm 序列化元组以测试序列化是否有效,但元组不会在本地集群中以序列化形式传输。

请参阅序列化检查,其中调用了检查以及在非本地集群中发生反序列化的位置。

于 2018-03-20T20:45:59.390 回答