gpt4 book ai didi

stream - 数据流处理

转载 作者:行者123 更新时间:2023-12-03 22:47:36 24 4
gpt4 key购买 nike

我有一类计算似乎很自然地采用图结构。该图远非线性,因为有多个输入以及扇出的节点和需要其他几个节点的结果的节点。在所有这些计算中,也可能有几个汇。但是,不存在循环。输入节点被更新(不一定一次一个),我让它们的值流过(在这一点上纯粹是概念性的)图。节点在输入更改时保持状态,并且计算必须相对于输入按顺序运行。

由于我必须经常编写此类计算,而且我不愿意每次都编写临时代码,因此我尝试编写一个小型库,以便通过为各种顶点编写类来轻松拼凑此类计算。然而,我的代码相当不优雅,并且没有利用这些计算的并行结构。虽然每个顶点通常都是轻量级的,但计算可能会变得非常复杂和“宽”。为了使问题更加复杂,这些计算的输入在循环中非常频繁地更新。幸运的是,这些问题的规模足够小,我可以在单个节点上处理它们。

有没有人处理过类似的事情?您会推荐哪些想法/方法/工具?

最佳答案

Apache Storm:分布式硬件上可靠的实时流处理

这听起来像是 Apache Storm(开源)最适合解决的问题:http://storm.apache.org/

Apache Storm 是关于实时流式计算的,它一次处理一个元组(数据点)。 Storm 保证每个元组至少被处理一次。使用 Storm Trident,您可以进一步抽象 Storm 并获得恰好一次的语义。

Apache Storm is a free and open source distributed realtime computation system. Storm makes it easy to reliably process unbounded streams of data, doing for realtime processing what Hadoop did for batch processing.



我和我的公司多年来一直在使用 Apache Storm,它是最成熟的大数据技术之一。大数据技术是以水平分布的方式(在廉价的商品硬件上)运行的技术。

API 和文档

主要 API 适用于 Java,但也有适用于 Ruby、Python、Javascript、Perl 的适配器。但是,您实际上可以使用任何语言: http://storm.apache.org/about/multi-language.html

文档很好(尽管 JavaDoc 可以使用更多细节): http://storm.apache.org/documentation.html

基本思想 - Spouts 和 Bolts(= 图形节点)

Spouts and Bolts from Apache Storm

Storm 有 Spout,您可以从中读取数据到所谓的拓扑中。拓扑就是你描述的这个图。当新元组进入 spouts 时,它们会通过拓扑发送。每个节点都是 Storm bolt 之一。

用例

Storm has many use cases: realtime analytics, online machine learning, continuous computation, distributed RPC, ETL, and more. Storm is fast: a benchmark clocked it at over a million tuples processed per second per node. It is scalable, fault-tolerant, guarantees your data will be processed, and is easy to set up and operate.

关于stream - 数据流处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33771299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com