Apache Spark Streaming维护二叉搜索树

时间:2015-08-11 22:32:13

标签: apache-spark spark-streaming apache-storm

我想了解如何做以下事情:
我想维护带有spark的二叉搜索树(BST) 我有两个简单的操作,我将它们放入流媒体中 这就是我考虑使用Spark Streaming的原因。

操作如下:
a)在BST上添加一个数字
b)删除一个号码
*假设我没有重复的数字。

我怎样才能以正确的方式做到这一点?我的主要问题是我不知道应该在哪里保留树。
(假设它的大小总是适合我的RAM)

对我来说,"大数据"这里是操作的数量,所以我想使用Spark Streaming来处理流中的大量操作 同样,树保持较小,并始终适合RAM。 (如果它没有?)

最好的方法是什么?

除此之外,我想使用堆栈数据结构而不是BST做同样的事情。
这些操作只是推送和弹出数字。

也许Apache Storm会更好地完成这些任务?

2 个答案:

答案 0 :(得分:2)

对于堆栈,您可以在推送时使用带有密钥的redis作为计数器或时间戳,当pooping弹出最新的时候。

答案 1 :(得分:1)

对于BST,您可以使用图x,并将其用作分布式数据结构。 另一种方法可能是Akka,http://alexminnaar.com/building-a-distributed-binary-search-tree-with-akka.htm

对于你可以使用的堆栈,将rdd与d stream配对,key是推送时的时间戳,但不知道如何弹出。