【问题标题】:Storm real-time processing: What if it goes down? [closed]Storm 实时处理:如果宕机了怎么办? [关闭]
【发布时间】:2013-02-05 15:29:39
【问题描述】:

Storm 是一个免费的开源分布式实时计算系统。它接收数据流并对其进行处理。如果 Storm 出现故障并且部分数据从未通过它,这意味着计算将不同步怎么办?

Storm 如何解决这个问题?如果不能,如何解决这个问题?

类似的问题是:如何读取在添加 Storm 之前存在的旧数据?

【问题讨论】:

    标签: bigdata apache-storm


    【解决方案1】:

    如何读取添加 Storm 之前存在的旧数据?

    数据必须存储在某个地方(例如 HDFS)。你编写了一个 Spout,它接受来自某些传输(比如 JMS)的数据。然后,您需要编写重放代码以从 HDFS 读取适当的数据,将其放在 JMS 通道上,Storm 会处理它。诀窍是知道您需要在数据中回溯多远,这可能是外部系统的责任,例如重放代码。此重放代码可能会查询数据库,或 Storm 处理的结果,无论它们可能是什么。

    总体而言,“如果它出现故障怎么办”问题取决于您正在执行的计算类型以及您的系统是否处理背压。简而言之,流的大部分持久性取决于传递给 Storm 的消息传递/传输机制。

    示例:如果您需要简单地转换 (xslt) 单个事件,则不会发生实时故障,并且如果 Storm 发生故障,也不会出现状态问题。您只需启动备份并继续处理。

    提供 Feed 的系统可能需要处理背压。像 Kafka 这样的消息传输可以处理持久消息,并允许 Storm 从中断的地方继续。

    需要详细说明导致“计算不同步”的特定用例,以提供更好、更具体的答案。

    【讨论】:

    • 感谢您的回答。例如,假设 Twitters Storm 出现故障并错过了 2 小时的点击和推文。它会重新联机并恢复计算,但指标(每天的推文等)会延迟 2 小时。它是如何解决这个问题的,你知道吗?
    • 假设 Twitter 正在使用像 Kafka 这样的消息传递系统,这没有问题。消息“点击”和“推文”只是在队列中闲置,直到 Storm 回来。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-15
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 2013-02-20
    • 1970-01-01
    相关资源
    最近更新 更多