使用与Cassandra节点和Cassandra客户端相同的计算机

时间:2012-07-05 10:56:49

标签: cassandra

如果您使用的是Cassandra分布式键值存储,那么您将拥有多个Cassandra节点,因此还有几台计算机。当然,您还拥有一个或多个与Cassandra节点通信的客户端程序。客户端完成的计算密集型工作也可能分布在多台计算机上。客户端和Cassandra节点应该是独立的计算机吗?可以使用与Cassandra节点相同的计算机和Cassandra客户端吗?我希望它能够正常运行,但会出现无法接受的性能问题吗?

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

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

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

1 个答案:

答案 0 :(得分:2)

这是某些类型部署的有效设置。人们这样做的最常见情况是在对Cassandra运行Hadoop作业时。 Cassandra Wiki recommends you run one Hadoop TaskTracker on each node in your cluster。{{3}}。这种类型的部署与您所描述的类似。