将Spark与Cassandra结合使用?

时间:2015-12-16 23:49:17

标签: apache-spark cassandra datastax-enterprise

在我们当前的基础架构中,我们使用Cassandra集群作为我们的后端数据库,通过Solr,我们使用Web UI为客户在必要时对我们的数据库执行读取查询。

我被要求将Spark视为未来可以实施的内容,但我无法理解它将如何改善我们目前的工作。

所以我的基本问题是:

1)Spark是否会取代Solr来查询数据库,就像用户在我们网站上查找内容一样?

2)只是一个普遍的想法,改善我们目前的情况需要什么类型的基础设施(5个Cassandra节点,所有这些节点也运行Solr)。 换句话说,我们很容易看到构建另一个只有Spark节点的集群吗?

3)Spark节点可以在与Cassandra相同的物理机器上运行吗?由于内存的限制,我猜测这将是一个坏主意,因为我对Spark的基本理解是它在内存中做了所有事情。

4)我可以用什么好的快速/基本资源来开始弄清楚Spark如何让我们受益?我可以访问Datastax Academy课程,所以我会仔细阅读这些课程,只是想知道是否还有其他任何可以帮助我的研究。

基本上一旦我弄清楚它是什么,更重要的是我们可以如何利用我们的优势,我将开始玩一些测试实例,但我应该首先熟悉基础知识。

1 个答案:

答案 0 :(得分:6)

1)不,Spark是一个批处理系统,Solr是实时索引解决方案。 solr的延迟将是次要的,Spark工作意味着需要几分钟(或更长时间)。应该确实没有Spark可以替代Solr的情况。

2)我通常建议在同一台机器上同时运行C *和Spark的第二个数据中心。这将通过复制从第一个数据中心获取数据。

3)Spark不会在内存中做任何事情。根据您的使用情况,在与C *相同的机器上运行可能是个好主意。这可以允许从C *读取数据的位置,并在表扫描时间显着帮助。我通常还建议将Spark Executors和C *节点放在一起。

4)DS Academy 320课程可能是最好的资源。 https://academy.datastax.com/courses/getting-started-apache-spark