【发布时间】: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 根本不再注册任何东西。
我对这里可能出现的问题有几个想法:
-
首先,最近我们调整了发送到拓扑的消息。通过批处理(和拓扑本身的解析),我们显着减少了消息量。每条消息的大小也大大增加。这可能会导致两个问题:
每个分区仅每 +/- 4 秒收到一条消息,这对于 Storm 来说太低了。会不会是因为这个自动超时崩溃了?
“有时”消息是否太大,导致 spout 崩溃/显示奇怪的行为?
其次,由于某些 Azure 错误或网络不可用,有时 eventthub 可能会短暂脱机。这可能意味着 eventthub 暂时没有发送消息。不接收数据时,spout 关闭但无法唤醒?
由于上述每个原因,eventthub spout 不应该自动从中恢复吗?可以做些什么来调试/解决这个问题?
【问题讨论】:
标签: java azure apache-storm azure-eventhub