1

如果您使用 Cassandra 分布式键值存储,您将有多个 Cassandra 节点,因此会有几台计算机。数据不只是在那里,当然,您还有一个或多个与 Cassandra 节点通信的客户端程序。客户端完成的计算密集型工作也可能分布在多台计算机上。客户端和 Cassandra 节点是否应该是独立的计算机?可以将同一台计算机用作 Cassandra 节点和 Cassandra 客户端吗?从正确执行的意义上说,我希望它会起作用,但是会有不可接受的性能问题吗?

我看到的 Cassandra 文档中提到 Cassandra 节点和客户端应该是独立的计算机,但我没有看到明确的建议。

我为什么要问?我为什么要这样做?我想到的应用程序不需要客户端在本地存储任何数据,他们使用 Cassandra 存储所有持久数据。他们的工作是计算密集型的,因此瓶颈可能是客户端 CPU 处理而不是 Cassandra 处理。也不将它们用作 Cassandra 节点似乎很浪费。

另外,如果每个计算(客户端)节点也是一个 Cassandra 节点,我可以使用每个节点的 Cassandra 令牌(用于分发 Cassandra 的数据)来分发客户端计算。

4

1 回答 1

2

对于某些类型的部署,这是一个有效的设置。人们这样做的最常见情况是针对 Cassandra 运行 Hadoop 作业时。Cassandra Wiki 建议您在集群中的每个节点上运行一个 Hadoop TaskTracker 。这种类型的部署类似于您所描述的。

于 2012-07-05T16:31:30.857 回答