Cassandra节点的限制

12

我想知道Cassandra是否有节点硬件规格的限制,例如每个节点的最大存储容量是否存在任何限制。

我打算使用两个节点,每个节点具有48TB的存储空间(24个2TB 7200rpm硬盘),以及一些优秀的双路至强处理器。

我已经查找了这样的限制是否存在,但没有找到任何关于这个问题的资料。并且,为什么最近Cassandra的关注度如此之低,尽管它正在变得更加成熟,而且已经发布了0.8版,而大多数文章/博客都只与0.6v相关呢?

5个回答

9
Cassandra按行分发其数据,因此唯一的硬性限制是一行必须能够适应单个节点。简短的答案是否定的。较长的答案是,您需要确保为永久数据和提交日志设置单独的存储区域。还要记住的另一件事是,您仍然会遇到寻址速度问题。Cassandra的一个好处是您不需要有一个拥有那么多数据的单个节点(实际上这可能不明智,您的存储将超过处理能力)。如果使用较小的节点(硬盘空间方面),则存储和处理能力将一起扩展。

处理能力超过存储是一个好的优点。您对存储和处理能力的比例有什么好的想法吗?我打算使用总共16个(32个线程)核心的双路Xeon 7560来进行存储。 - Gary Lindahl
我无法评论甜点。但是,另一个需要考虑的因素是您的复制因子。您是否计划拥有3个或更多节点,并且RF≥2?如果不是这样,那么您将绕过许多Cassandra的好处(其中最重要的是没有单点故障)。 - dmcnelis
是的,甚至可能有超过3个大小相同且RF>=2的节点。顺便说一下,我也想听听使用备选方案(如RAID10)的情况,看它是否可以显著减轻Cassandra的复制工作。 - Gary Lindahl
1
我们在环境中使用RAID 5作为额外的冗余级别,而不是替代品...虽然我们确实进行了那样的讨论。你应该考虑在邮件列表上提出这个问题。 - dmcnelis

9

这里有一些关于大数据集考虑的注意事项(链接)

每个节点的48 TB数据可能太多了。最好有更多节点,每个节点存储较小量的数据。定期需要运行nodetool repair,其中涉及读取机器上的所有数据。如果在一台机器上存储了许多TB的数据,则这将非常痛苦。

我建议将每个节点的数据限制在约1TB左右。


6
Cassandra集群中每个节点的数据量应该是多少?,建议根据应用程序决定每个节点1-10TB之间的数据量。如果节点存储容量达到48TB,Cassandra仍然可以正常工作,但不会达到最佳状态。
请问您打算使用复制因子1还是2(如上所述有2个节点)?
在单个节点上存储这么多数据可能会导致某些操作(例如修复、压缩)极其缓慢。

如果我将每个节点分成10TB,那么应该使用什么样的CPU/RAM才能使Cassandra处理一切得当?我打算使用640GB RAM和48TB存储,因为只有一个列索引需要维护。 - Gary Lindahl
2
在http://wiki.apache.org/cassandra/CassandraHardware上有一些关于RAM的评论,但这很大程度上取决于您使用的键缓存或行缓存以及读写工作负载。与少量高规格节点相比,每个都配备适度硬件的更多节点可能会获得更好的结果。 - DNA

6

在使用Cassandra时,您还应该小心使用大量的RAM。 RAM对于缓存SSTables中的数据非常有用,但是给JVM过多的堆空间是适得其反的。不要给JVM超过12 GB的堆空间,否则垃圾回收将花费太长时间并阻碍性能。这也是为什么在Cassandra中拥有更多的较小节点更好的另一个原因。


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接