Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache storm 自定义反序列化程序不会被称为apache storm_Apache Storm_Apache Storm Topology - Fatal编程技术网

Apache storm 自定义反序列化程序不会被称为apache storm

Apache storm 自定义反序列化程序不会被称为apache storm,apache-storm,apache-storm-topology,Apache Storm,Apache Storm Topology,风暴版本-1.0.6 我为我的一个类注册了一个自定义序列化程序。正如预期的那样,它的write方法被调用并成功运行。然而,我的自定义序列化程序的read方法根本并没有被调用,尽管execute在下游被调用。 我在本地集群中测试这一点,并将“始终尝试序列化”设置为true 我的猜测是,出于某种原因,storm对我的自定义序列化不满意,并在没有序列化的情况下将元组按原样传递给下游。我在下游螺栓中看到的字段的指针值与发出的值相同 我没有看到任何警告或错误。我怎么知道在这种情况下出了什么问题?我知道我可

风暴版本-1.0.6

我为我的一个类注册了一个自定义序列化程序。正如预期的那样,它的write方法被调用并成功运行。然而,我的自定义序列化程序的read方法根本并没有被调用,尽管execute在下游被调用。 我在本地集群中测试这一点,并将“始终尝试序列化”设置为true

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


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

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


请参阅,检查的位置以及在非本地群集中发生的位置。

谢谢。即使拓扑在集群中运行,但螺栓恰好在同一个辅助进程中运行,也是这种情况吗?是的。看看我链接的ExecutorTransfer类,它是处理在执行器之间分派元组的代码。如果目标执行器在同一个worker中是本地的,则没有理由序列化元组,因为它可以通过引用传递。