就目前的情况来看,这个问题并不适合我们的问答形式。我们希望答案能得到事实、参考资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或广泛讨论。如果您觉得这个问题可以改进,并可能重新打开,请访问帮助中心寻求指导。
7年前关门了。
storm是一个免费的开源分布式实时计算系统。它接收数据流并对其进行处理。如果风暴平息,部分数据再也无法通过,这意味着计算将不同步,该怎么办?
暴风雪如何解决这个问题?如果不能,怎么解决这个问题呢?
一个类似的问题是:如何读取在风暴被添加之前存在的旧数据?
就目前的情况来看,这个问题并不适合我们的问答形式。我们希望答案能得到事实、参考资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或广泛讨论。如果您觉得这个问题可以改进,并可能重新打开,请访问帮助中心寻求指导。
7年前关门了。
storm是一个免费的开源分布式实时计算系统。它接收数据流并对其进行处理。如果风暴平息,部分数据再也无法通过,这意味着计算将不同步,该怎么办?
暴风雪如何解决这个问题?如果不能,怎么解决这个问题呢?
一个类似的问题是:如何读取在风暴被添加之前存在的旧数据?
1条答案
按热度按时间ldxq2e6h1#
如何读取添加风暴之前存在的旧数据?
数据必须存储在某个地方(比如hdfs)。您编写了一个接受来自某个传输(比如jms)的数据的喷口。然后,需要编写重放代码从hdfs读取适当的数据,将其放到jms通道上,storm将处理它。诀窍在于知道数据需要返回多远,这可能是外部系统的责任,比如重放代码。这个重播代码可以查询数据库,或者风暴处理的结果,不管它们是什么。
总的来说,“如果它下降怎么办”的问题取决于你在做什么类型的计算,以及你的系统是否处理背压。简而言之,流的持久性很大程度上取决于传递给storm的消息传递/传输机制。
示例:如果您需要简单地转换(xslt)单个事件,那么就不会出现实时故障,如果风暴平息,也不会出现状态问题。您只需启动备份并继续处理。
提供饲料的系统可能需要处理背压。像kafka这样的消息传输可以处理持久的消息,并允许storm恢复到它停止的地方。
需要详细说明导致“计算不同步”的具体用例,以提供更好、更具体的答案。