1

我们目前有一个写入量很大的网络分析应用程序,它从大量网站和商店收集大量实时事件,用于后续分析和报告。

我们最初计划的架构涉及处理请求的 Web 服务器集群,并将所有数据写入 Cassandra 集群,同时更新大量计数器以获取实时汇总报告。我们还计划在 CassandraFS 上直接使用 hadoop(作为 HDFS 的替代品 - 由 datastax 提供)在 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 之间来回传输数据才能支持我在单个数据库中的所有分析和报告?

4

1 回答 1

0

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

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

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

如果您负担得起 Datastax Enterprise 解决方案的 Hive 为复杂的分析执行 map-reduce,我建议您继续使用 Cassandra,因为 couchbase map-reduce 支持并不是那么好,并且基准测试显示 Couchbase 性能开始恶化,因为集群规模增长。

于 2013-08-01T23:40:46.380 回答