首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据流处理

数据流处理
EN

Stack Overflow用户
提问于 2015-11-18 11:26:32
回答 1查看 139关注 0票数 8

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

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

有没有人遇到过类似的事情?你会推荐什么想法/方法/工具?

EN

回答 1

Stack Overflow用户

发布于 2015-11-27 16:55:31

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

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

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

Apache Storm是一个免费的开源分布式实时计算系统。Storm使得可靠地处理无限数据流变得容易,就像Hadoop对批处理所做的那样进行实时处理。

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

API和文档

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

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

基本概念-喷嘴和螺栓(=图形节点)

Storm有一个插口,你可以通过它将数据读入你所谓的拓扑中。拓扑就是您所描述的这个图。当新的元组进入spout时,它们通过拓扑发送。每个节点都是一个Storm Bolts。

用例

Storm有许多用例:实时分析、在线机器学习、连续计算、分布式远程过程调用、ETL等等。Storm速度很快:基准测试显示,每个节点每秒处理的元组超过一百万个。它是可扩展的、容错的,保证您的数据将被处理,并且易于设置和操作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33771299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档