6

Apache Ignite 和 Apache Storm 在许多方面是两种截然不同的技术——尤其是因为 Storm 有一个非常具体的用例,而 Ignite 在一个屋檐下有相当多的工具集。据我了解,Ignite 的核心是它的内存存储。建立在此之上的是其对数据局部性敏感的计算。建立在上面的是各种很酷的“玩具”。我感兴趣的是 Streaming 功能,它基本上是一个查询不断变化的内存缓存的侦听器。

如果我将滑动窗口设置为一个元组,Ignite 会像 Storm 一样提供一次一个元组的功能。数据由 Ignite 存储在内存中。Storm 不会在内存中“存储”数据,但元组当然也存储在内存中。因此,在这两种情况下,我都有流式传输,并且我在内存中有数据,并且我能够分发我的计算。

我感觉编写执行许多数据转换步骤的程序可能更容易在 Storm 中编写,因为这两种技术都是抽象的。对此有什么好说的?

第二个问题:性能怎么样?我猜想 Ignite 的数据本地化可能会给它带来优势。另一方面,我认为多个步骤可能更好地分布在 Storm 中(各种机器上的不同螺栓),而 Ignite 程序可能不会那么容易拆分。

如果我仍然想分发流(不仅仅是每个数据,还有不同机器上的步骤)。我想我必须编写多个 Ignite 流媒体,它们通过缓存进行通信,对吧?这听起来比在 Storm 中更难写(让我们回到第一个问题)。

4

1 回答 1

3

我感觉编写执行许多数据转换步骤的程序可能更容易在storm中编写,因为这两种技术都是抽象的。对此有什么好说的?

你可能是对的。尽管 Ignite 也通过将新生成的元组流式传输到另一个缓存中来对它提供良好的支持,但似乎在风暴中多次转换会更容易。

性能怎么样?我猜想 Ignite 的数据本地化可能会给它带来优势。另一方面,我认为多个步骤可能更好地分布在 Storm 中(各种机器上的不同螺栓),而 Ignite 程序可能不会那么容易拆分。

根据我在社区中听到的消息,Ignite 应该比 Storm 快一个数量级。

如果我仍然想分发流(不仅仅是每个数据,还有不同机器上的步骤)。我想我必须编写多个 Ignite 流媒体,它们通过缓存进行通信,对吧?

是的你是对的。在 Ignite 中拥有多个缓存并不是一件坏事,实际上是推荐的。大多数用户最终拥有一打或两个。

这听起来比在 Storm 中更难写(让我们回到第一个问题)。

听起来你需要决定性能对你有多重要。

于 2015-11-28T05:35:39.367 回答