【问题标题】:Storm: eventhub spout stops receiving messagesStorm:eventhub spout 停止接收消息
【发布时间】:2016-05-24 17:15:39
【问题描述】:

目前我正在开发一个风暴拓扑来处理原始机器测量数据。但是,我遇到了喷口无法解释的问题。

我正在 Azure HDInsight 上运行一个用 Java 编写的简单风暴拓扑。事件是从 eventthub 中读取的,为此我使用了 microsoft eventthub spout(0.9 版)。这个 eventthub 有 8 个分区,也就是说我还需要 8 个 Eventthubspout 实例。

但是,当我运行拓扑几个小时时,spout 一个接一个地停止接收消息,直到每个 spout 都安静下来。没有给出任何反馈。当我通过其他方式检查 eventthub 时,它仍在运行。 Storm/the spouts 根本不再注册任何东西。

我对这里可能出现的问题有几个想法:

  • 首先,最近我们调整了发送到拓扑的消息。通过批处理(和拓扑本身的解析),我们显着减少了消息量。每条消息的大小也大大增加。这可能会导致两个问题:

    1. 每个分区仅每 +/- 4 秒收到一条消息,这对于 Storm 来说太低了。会不会是因为这个自动超时崩溃了?

    2. “有时”消息是否太大,导致 spout 崩溃/显示奇怪的行为?

  • 其次,由于某些 Azure 错误或网络不可用,有时 eventthub 可能会短暂脱机。这可能意味着 eventthub 暂时没有发送消息。不接收数据时,spout 关闭但无法唤醒?

由于上述每个原因,eventthub spout 不应该自动从中恢复吗?可以做些什么来调试/解决这个问题?

【问题讨论】:

    标签: java azure apache-storm azure-eventhub


    【解决方案1】:

    我尝试搜索一些可以确保从异常中自动恢复 eventthub spout 的代码,但似乎没有任何代码可以执行此操作。

    但是,我认为这个问题可能是由 https://issues.apache.org/jira/browse/STORM-329 等 Storm 错误引起的。

    要调试这样的问题,可以尝试参考How to debug Apache Storm in Eclipse?在Eclipse上远程调试,在HDInsight Storm的worker JVM中启用调试。

    希望对您有所帮助。最好的问候。

    【讨论】:

    • 感谢您的回复!我将尝试通过eclipse进行远程调试。另外,我更新了问题描述。还有其他建议吗?
    【解决方案2】:

    有没有可能你不支持元组? 如果您不确认,则 spout 会假定消息仍处于“待处理”状态,并且不会尝试从事件中心获取新消息。

    您是否从 spout 中看到任何错误?

    【讨论】:

    • 我将拓扑降级为一个bolt的一个实例(加上必要的8个eventthub spout实例),它只做了一点解析。完成后,我确保它确认元组。此外,spout 没有任何错误消息。我只看到喷口的偶尔检查点,直到它完全停止:2016-02-13 05:03:46 cmesSimplePartitionManager [INFO] 保存状态 545487898960, 2016-02-13 05:03:46 cmesZookeeperStateStore [INFO] 数据得救了。路径:/eventhubspout/TimeOrderingTopology/test-ns/test/partitions/7,数据:545487898960
    • 对不起,acking 是我唯一的想法。但是,我可以告诉你,我有时会从 spout 收到“超时”错误,(如果在 X 时间内没有收到任何消息)但是 spout 确实会恢复并在消息到来时带来消息,所以这导致我相信有这个恢复过程,它只是由于某种原因在这里不起作用。
    【解决方案3】:

    我也遇到过类似的问题,在检查了所有的storm eventthub 代码等之后,我意识到至少在storm 端没有等待。所以 azure eventthub 本身一定有问题。 以下帮助增加了我每分钟从 eventthub 收到的事件。 azure 中的吞吐量单位设置为默认值 1。spout 以 12/min 的速度接收。将吞吐量单位设置为 5 后,开始以 500 个/分钟的速度接收。

    这是一篇不错的文章:https://blog.bennymichielsen.be/2015/08/11/scaling-an-azure-event-hub-throughput-units/

    如果这对您也有帮助,请告诉我。

    【讨论】:

      猜你喜欢
      • 2018-08-14
      • 1970-01-01
      • 1970-01-01
      • 2018-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-03
      相关资源
      最近更新 更多