问题标签 [apache-storm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
944 浏览

c# - 分布式 Map/Reduce 框架

我正在寻找.net 分布式地图/减少框架。我打算将其用于实时数据查询并在多个节点上并行处理查询。我目前正在使用 WCF 进行 Web 层和应用层之间的通信。

例如,如果我有 5 个带有内存数据的节点。如果我将过滤器传递给 5 个节点。过滤器在节点拥有的数据块上执行,结果被还原为最终答案。

只是想知道是否已经有一个框架可以映射工作并减少结果。我看起来更像是风暴的雨云(Twitter 实时地图/减少)。由于许多并发症,不能使用 nimbus。而且 Zookeeper 的开销太大。

我正在尝试使用框架实现以下目标 1)将作业(主要是发送到所有可用节点的请求)映射到可用节点并减少结果。2) 在故障转移时,将作业映射到新节点。3) 管理集群。(如果节点已关闭,则将其从可用服务器列表中删除)

数据将在内存中,因此我不需要分布式文件系统。带有 WCF 作为底层通信的 .NET 将是理想的,但如果有其他框架(任何语言)请告诉我。

任何帮助(框架、代码项目、研究论文、实际代码:))将不胜感激。

0 投票
2 回答
1307 浏览

java - Java数据处理工作流框架

我有一个数据流,基本上是一个 SQL 表,每分钟添加 30-50 条记录。需要以接近实时的速度处理(记录应在出现在数据库后大约 10 分钟内处理)。我想在这里使用一些像解决方案这样的工作流来让我更容易处理所有记录。我需要这个解决方案来获得高可用性——系统应该在单独的硬件节点上工作,并且如果其中一个节点出现故障,它应该是容错的。基本上会发生的是这样的:

  • 一条新记录被添加到数据库中
  • 工作流开始处理它
  • 作为该处理的结果做一些事情(发送电子邮件,插入数据库等)
  • 框架应记住该记录已被处理

另一个要求是,如果在处理其中一个记录期间出现错误,则不应阻止框架处理其他记录。它应该只记住这个特定的记录需要重新处理。

我听说 twitter-storm 做了类似的事情,但在这里使用它不是矫枉过正吗?据我了解,它的主要目的是同时处理大量数据,我在这里根本不需要。

0 投票
0 回答
1733 浏览

apache-storm - 风暴列表不显示正在运行的拓扑?

Nimbus 和 Supervisor 在同一台机器上。我正在使用“bin/storm XX.jar XX.XX”在storm上运行我的jar,stdout显示这个拓扑运行良好。

但是当我使用“bin/storm list”时,没有显示我的拓扑信息。

0 投票
1 回答
491 浏览

apache-storm - Vertica 的风暴螺栓

我是 Storm 世界的新手,我正在寻找易于使用且性能良好的优质 Vertica Bolt。

0 投票
1 回答
711 浏览

bigdata - Storm 实时处理:如果宕机了怎么办?

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

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

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

0 投票
2 回答
3630 浏览

logging - 使用 Twitter Storm 处理日志数据?

我们有大量的应用程序分布在多个数据中心的多台机器上。

在一天中,我们将接收到信号(内部或外部),这些信号会在每个应用程序中引发一系列事件。

因此,每个信号都会产生大量的事件日志数据。日志本身并不是特别结构化的,并且它们在应用程序之间也有很大不同。他们确实遵循基本约定:

我们在日志行中有 ID 号,可以帮助将事件与信号联系起来——然而,这些并不是万无一失的,我们有时需要使用其他方式来尝试将事件拼凑在一起。

我一直在阅读有关 Twitter 的 Storm 系统的信息,我对尝试使用它来实时分析大量日志数据并将其拼凑起来非常感兴趣。

我想做这样的事情:

  • 根据实时数据趋势生成报告和流图。
  • 查询一个信号,然后在所有应用程序中调出与该信号相关的整个事件链,包括链中步骤之间的延迟。(这个很重要)。
  • 查看相关事件,并深入了解应用程序在某个事件发生时还做了什么。

输入数据?

日志数据存储在本地日志文件中(这不太可能改变),所以我们需要一种方法将数据吞入 Storm 本身。日志文件也可以被压缩。我已经考虑过使用 Flume 或 Logstash - 人们对这些有什么看法?或者是否有其他方法可以很好地与 Storm 配合使用?

存储事件?

我还需要一种方法来存储实时报告和图表的数据,以及事件数据本身。

第二部分我觉得有点棘手——什么样的存储后端适合存储事件,以及它们之间的链接?某种图形数据库是否合适,是那些新奇的无模式 NoSQL 数据库之一,还是更传统的东西?

风暴合适吗?

最后,Storm 适合这个角色,还是其他更适合的角色?

如果我确实选择了 Storm,我可以采取什么样的方法来解决这个问题?我希望其他人有类似问题的经验。

干杯,维克多

0 投票
1 回答
2650 浏览

maven - 是否可以在单台机器上设置 Storm API

我试图弄清楚是否可以在一台机器上设置整个风暴项目以用于测试和模拟目的,所以这个问题主要针对那些尝试过这个的人。我知道使用 Hadoop(这是 Storm 的基础) 允许模拟集群的能力。我已经阅读了一些关于 Maven 以及如何使用它在本地运行 Storm,但不确定 Maven 是什么以及它如何真正工作。我希望这里有人可以帮助我。

0 投票
2 回答
1842 浏览

java - 使用 Java 代码进行 Storm 拓扑重新平衡

我正在尝试重新平衡使用 KafkaSpout 的 Storm 拓扑。我的代码是:

但是,在重新平衡期间,会显示以下错误跟踪:

有人可以告诉我可能是什么问题吗?我是否需要在 kafkaSpout 中定义更多内容,以便在重新平衡时正确关闭然后重新启动?

0 投票
2 回答
1198 浏览

linux - 无法使用 java 代码在 linux 运行时创建文件

我正在编译 maven 项目以在 linux 机器上运行 Storm Topology。

以下是 Bolt 类中的一个方法,这里我想在运行时创建一个文件,其中缓冲的 Reader 将从输入中收集数据并将其写入文件。

元组输入对象:包含要写入的数据。
/root/data/javacode/top_output.csv:文件名。
所有 IO 包都已在代码中导入。

每当我使用mvn package编译项目时,都会出现编译错误:

每当我评论 Filewriter 相关代码时,它都会成功运行。上面的代码中提到了行号。代码有什么问题?

0 投票
5 回答
21145 浏览

apache-storm - Storm vs. Trident:什么时候不使用 Trident?

我正在使用Storm,它适用于很多用例。最近我看了Trident,它是 Storm 的高级抽象。它支持一次性处理并使有状态处理更容易。

但现在我想知道.. 为什么我不能总是使用 Trident 而不是 Storm?

到目前为止我读到的:

  • Trident 批量处理消息,因此吞吐时间可能会更长。
  • Trident 还不能处理拓扑中的循环。

使用 Trident 代替 Storm 时还有其他缺点吗?因为现在,我认为我上面列出的缺点是微不足道的。

哪些用例不能用 Trident 实现?


后果:

自从我提出这个问题后,我的公司决定先选择 Trident。我们只会在出现性能问题时使用纯 Storm。遗憾的是,这不是一个积极的决定,它只是成为默认行为(当时我不在)。

他们的假设是,在大多数用例中,我们需要状态或仅处理一次,或者我们将在不久的将来需要它。我理解他们的推理,因为从 Storm 迁移到 Trident 或返回不是一个简单的转换,但在我个人看来,没有状态的流处理的概念并没有被所有人理解,这是使用 Trident 的主要原因。