nosql - 使用Cassandra的RandomPartitioner时的关键选择

标签 nosql cassandra

当您将 OrderPreservingPartitioner 与列族键(例如表示 YYYYMMDD 的 int)一起使用时,您将在写入时获得热点,并且大部分负载将命中 cassandra 环中的一个/两个节点。如果您使用的是 RandomPartitioner,当使用不经常更改的 key (即 YYYYMMDD)时,cassandra 会分散负载吗?

简而言之,RandomPartitioner 是否将负载分散到少量不定期更改的离散键值上?

Partirioner 选择的是键空间还是集群级别设置?

注意:因此,如果您使用 md5 20110902,您将得到 59b7841383176e942495550ecc801a9e。如果我使用 key 20110902(即 59b7841383176e942495550ecc801a9e)重复加载数据,那将不会仅将数据分配给分配有 59b78413.... 的单个节点。 Cassandra 是否正在做其他事情来分散负载

最佳答案

不,如果您继续重复使用相同的键,RandomPartitioner 无法分散负载。它通过将不同的键分配给不同的节点来分散负载,但对相同键的插入将始终转到相同的节点。

Cassandra 确实通过复制因子分散了负载,例如,如果您使用 RF=3,则 key 可以存在于三个节点上。但是,如果您继续使用 key 20110902,则每次都是相同的三个节点。

简而言之,负载平衡发生在关键级别。为了分散负载,您需要选择不同的 key 。

关于nosql - 使用Cassandra的RandomPartitioner时的关键选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7443548/

相关文章:

csv - 如何将 .tsv 文件加载到 cassandra 中

mysql - 时间戳分区键上的 Spark JoinWithCassandraTable STUCK

java - Jedis 与代理的连接

cassandra - 稳定加载程序。错误 : could not achieve replication factor 2 (found 1 replicas only), 检查您的 key 空间复制设置

java - Spark 提交 : --packages vs --jars

cassandra - 如何更新 Cassandra 中的列

amazon-web-services - 动态数据库 |如何在不指定分区键的情况下按排序顺序查询所有记录

json - 通过 MongoID 在 MongoDB 中导入大数据集

mysql - 适用于传感器数据的数据存储

elasticsearch - Elasticsearch-子集合中的元素分组