Storm版本 - 1.0.6。
我有一个为我的某个类注册的自定义序列化程序。正如预期的那样,它的write方法被调用,并成功运行。但是,我的自定义序列化程序的读取方法根本不会被调用,尽管在下游螺栓中调用了execute。 我正在本地集群中测试它,总是尝试序列化设置为true。
我的猜测是,由于某种原因,风暴对我的自定义序列化不满意,并将元组原样传递给下游而不进行序列化。我在下游螺栓中看到的字段的指针值与发出的字段相同。
我没有看到任何警告或错误。我怎么知道这种情况出了什么问题?我知道我可以获得源代码和调试,但任何其他人认为有用的提示会有帮助吗?
答案 0 :(得分:1)
我认为本地模式集群只测试序列化,而不是反序列化。当所有工作人员都在一个进程中运行时,没有理由对元组进行序列化和反序列化,因为它们不会通过网络。总是尝试序列化设置只是使Storm序列化元组无论如何测试序列化工作,但元组不会在本地集群中以序列化形式传输。
请参阅serialization check,其中检查位于called,而deserialization位于非本地群集中。