从我对 Cassandra 的一点了解来看,数据局部性似乎对访问节点的客户端应用程序是透明的,这是应该的。
但是,如果我明确地只想访问我所连接的节点本地的列族的数据怎么办?这样的事情可能吗?我还没有找到一种从开箱即用的客户端 API 获取此信息的方法,但似乎我可以通过系统表获取其中一些信息,但我不太清楚如何做到这一点.
这个想法是执行 mapreduce,但不使用 Hadoop。本地客户端将连接到其本地 cassandra 节点,对本地数据执行聚合,然后将其传回上游。
这样的事情有可能吗?从表面上看,这似乎是可能的,因为我已经看到了 Hadoop 能够使用 Cassandra 的证据,但是这些示例似乎是针对 Hadoop 而不是通用客户端的。本地客户端(与 Casandra 对话的位)将使用 Java。我目前正在使用 Hector,但我不确定它是否会提供任何数据位置信息。