强制Cassandra保存要分区到特定节点的特定键值。

时间:2015-11-26 10:52:13

标签: cassandra replication database-replication database-partitioning partition

如何使用ByteOrderedPartitioner(BOP)强制根据自定义要求对特定键值进行分区。我想强制Cassandra根据自定义要求对数据进行分区和复制,而不引入自定义分区程序,我可以在多大程度上控制此行为以及如何控制?

总体而言:我希望以特定ID开头的数据位于预定义节点,因为我知道将从该节点大量访问数据。也像要复制到附近节点的数据一样。

2 个答案:

答案 0 :(得分:1)

  

我希望以特定ID开头的数据位于预定义节点,因为我知道将从该节点大量访问数据。

看起来你在谈论数据局部性问题,这在类似bigdata的计算(Spark,Hadoop等)中非常重要。但是,一般的方法不是将数据固定到特定节点,而只是将整个计算移动到数据本身。

将数据固定到特定节点可能会导致以下问题:

  • 如果您的节点出现故障,您应该怎么做?
  • 数据在群集中的均匀分布情况如何?由于节点超过(使用下)-utilization?
  • ,会出现任何热点/瓶颈吗?
  • 将来如何扩展群集?

将计算移动到数据对这些问题没有任何问题,但是您要选择的方法有。

答案 1 :(得分:0)

在这里找到答案...... http://www.mail-archive.com/user%40cassandra.apache.org/msg14997.html

更改cassandra.yaml文件中的设置“initial_token”我们可以将节点划分为关键范围,分区将选择将保存数据的第一次复制的节点和策略类SimpleStrategy将添加副本通过按照您希望的方式排列节点来处理节点,您可以利用复制策略。