Cassandra和Couchbase之间这个用例的潜在权衡

时间:2013-08-01 17:25:09

标签: hadoop cassandra couchbase

我们目前拥有一个非常庞大的网络分析应用程序,它可以从大量网站和商店收集大量实时事件,以便进行后续分析和报告。

我们最初计划的架构涉及一组处理请求的Web服务器,并将所有数据写入Cassandra集群,同时更新大量计数器以用于实时聚合报告。我们还计划直接在CassandraFS上使用hadoop(作为数据存储提供的HDFS的替代),在Cassandra上驻留的数据上本地运行Map Reduce作业,以进行更多相关的分析。 MapR作业的输出将本地写回Cassandra中的ColumnFamilies。 Hadoop map reduce在主cassandra集群的只读副本上运行,该集群是写入较多的。我们的想法是避免多个数据跃点,并在一个存储库中包含分析的所有数据。

最近我们听到并且面临着管理和发展频繁节点中断和响应时间错误的cassandra集群的第一手问题。 Couchbase似乎在响应时间和动态增长和管理集群方面要好得多。所以我们正在考虑用Couchbase替换Cassandra。

然而,这提出了一些问题。

  1. Couchbase在大多数顺序写入繁重的情况下是否能很好地扩展?我没有看到我们的场景大量使用内存中缓存,因为编写的原始数据很少被回读,只有聚合度量。另外,我还没有读过很多关于当Couchbase需要经常(或者所有时间)打到磁盘来回写数据时会发生什么。它最终会比Cassandra表现差吗?

  2. Hadoop界面会发生什么变化? Couchbase有自己的map reduce功能,但我知道它们的范围有限。我是否需要在CouchbaseDB和HDFS之间来回传输数据,以便能够支持我在单个数据库中的所有分析和报告?

1 个答案:

答案 0 :(得分:0)

我最近评估了Cassandra和Couchbase以及客户需求的其他选项,因此我可以了解两个数据存储区。

Couchbase非常容易管理,一旦您在节点上安装了服务器,您就可以从仪表板中完全管理集群。但是,随着数据大小的增长,couchbase的扩展性不如Cassandra。我也没有找到一种无缝集成Couchbase和HDFS / Hadoop的方法。

Cassandra在超快写入吞吐量方面表现非常出色,但它没有任何服务器端聚合功能。群集管理比Couchbase稍微困难一些,因为每次添加或删除节点时都必须重新平衡群集。除此之外,从性能的角度来看,只要您正确设计了架构,Cassandra就可以非常无缝地运行。

如果您能够为Hive提供Datastax Enterprise解决方案以进行map-reduce以进行复杂的分析,我建议您继续使用Cassandra,因为couchbase map-reduce支持并不是那么好,并且基准测试显示Couchbase性能开始随着簇大小的增加而变小。