6

我最近遇到了一个案例,Cassandra 非常适合存储基于时间的事件,每个事件类型都有自定义 ttls(另一种解决方案是将它保存在 hadoop 中并手动进行簿记(ttls 和东西,恕我直言,这是一个非常复杂的想法)或切换到 hbase)。问题是 cassandra MapReduce 支持在没有 Datastax 企业版的情况下开箱即用的效果如何。

似乎他们在 CassandraFS 上投入了很多,但我问自己,普通的 Pig CassandraLoader 是否得到积极维护并且实际上可以扩展(因为它似乎只是在切片中迭代行)。这适用于数以百万计的行吗?

4

2 回答 2

1

您可以使用随机分区器进行映射/减少,但当然您获得的密钥是随机顺序的。您可能想在 cassandra 中使用 CL = 1 ,因此您不必每次在执行 map/reduce 时都从 2 个节点读取数据,它应该读取本地数据。不过我没用过猪。

于 2012-11-01T20:27:46.257 回答
-2

为什么不用hbase?Hbase 更适合时间序列数据。您可以轻松地将数十亿行放在非常小的集群上,并在启用 WAL 的小型 3 节点集群(高达 50MB/s)上每秒获得高达 500k 行。Cassandra 有几个缺陷:

  1. 在 cassandra 中,您实际上受到键数量的限制(想象一下,如果有数十亿行,您的修复将永远有效)。因此,您将设计架构,它将您的时间“分片”,例如 1 小时,实际时间戳将作为列放置。但是由于“巨大列”的高风险,这种方案不能很好地扩展。
  2. 其他问题 - 您不能在 cassandra 中映射减少数据范围,除非您使用有序分区器,这根本不是一个选项,因为它无法很好地平衡。
于 2012-11-01T12:40:58.907 回答