我们有一个不想连续运行storm拓扑的用例。相反,有一组输入(10K+)应该在指定的时间被处理,Spout连续发射这些输入,并得到拓扑中其余螺栓的处理。处理完所有输入后,在我的喷注中就没有任何东西可以从nextTuple发出。
此时,我们希望拓扑进入Hibernate状态,并在每天晚上12:00重新启动进程。
在storm配置中是否有任何属性可以设置为每天运行一次拓扑并在处理完成后Hibernate,并在指定时间启动?
我不知道像你要求的功能。Storm不是一个批处理系统,它应该连续运行。考虑一下Storm是否非常适合这个用例。
这就是说,你应该能够实现你想要的。您可以在喷口输入的末尾输入一个“I'm done”消息。当spout命中该消息并且所有其他挂起的消息都被挂起时,它可以使用Nimbus客户端终止或停用拓扑(这取决于您想终止或停用拓扑),请参阅https://stackoverflow.com/A/37134473/8845188。那么最后一步就是使用您最喜欢的调度软件在每天午夜重新提交/重新激活拓扑。
我创建了一个带有Spout的Storm拓扑,该Spout会发出许多元组用于基准测试。一旦所有的元组都从spout发出或者拓扑中不再有任何元组流动,我就想停止/终止我的拓扑。
我对Apache Storm的性能有一个问题,主要是从喷口出来的。 我有一个从kestrel队列发出项目的拓扑。我获取大约2000个项目,每次在喷注中调用时,我都会发出一个。 我正在使用1个spout任务和1个spout执行器运行。我已将设置为10。 为什么每次调用之间有这么大的时间间隔?outputCollector在发出一个新元组之前是否正在等待听到每个元组的反馈? 我正在运行Java8和st
我是Storm和Kafka的新手,我可以在一段时间后在本地虚拟机上安装它们。我目前有一个有效的wordCount拓扑,从dropBox文本文件中提取句子: 现在我想升级我的喷口,使用Kafka的文本,以便在拓扑结构中提交到我的下一个螺栓。我试图在git中遵循许多文章和代码,但没有任何成功。例如:这个Kafka喷口。谁能帮助我,给我一些方向,以便实现新的spout.java文件?谢谢你!
在storm Framework中是否有任何预定义的、重写的或任何可用的方法来实现这一点。 提前致谢:)
我使用storm0.9.4和storm-kafka:0.9.0-wip16a-scala292作为从kafka0.7读取的依赖项。 我们的Kafka保留政策是7天。 我从经纪人的最新偏移量开始读取。
这里可能发生了同样的事情:错误backtype.storm.util-Async循环死亡!BufferUnderFlowException:null,但我将添加一个完整的堆栈跟踪和一些更多的上下文。 Storm版本-9.3 Storm-Kafka版本-9.3 Kafka版本-0.8.2-beta 堆栈跟踪: Spout代码(注意,出于调试目的,我使用的是一个静态定义的分区映射,只有一个代理):