Cassandra -tokens 和 org.apache.cassandra.exceptions.ConfigurationException: For input string: Cassandra -tokens 是什么意思?org.apache.cassandra.exceptions.ConfigurationException: For input string是什么错误?

7

关于Cassandra有什么问题吗?

使用2个节点的令牌工具,在第二个群集上出现以下错误。

   initial_token: 85070591730234615865843651857942052864

INFO [main] 2014-02-25 01:15:39,670 CassandraDaemon.java (line 130) Logging initialized
 INFO [main] 2014-02-25 01:15:39,716 YamlConfigurationLoader.java (line 76) Loading settings from file:/etc/cassandra/cassandra.yaml
 INFO [main] 2014-02-25 01:15:40,407 DatabaseDescriptor.java (line 141) Data files directories: [/var/lib/cassandra/data]
 INFO [main] 2014-02-25 01:15:40,408 DatabaseDescriptor.java (line 142) Commit log directory: /var/lib/cassandra/commitlog
 INFO [main] 2014-02-25 01:15:40,409 DatabaseDescriptor.java (line 182) DiskAccessMode 'auto' determined to be mmap, indexAccessMode is mmap
 INFO [main] 2014-02-25 01:15:40,409 DatabaseDescriptor.java (line 196) disk_failure_policy is stop
 INFO [main] 2014-02-25 01:15:40,417 DatabaseDescriptor.java (line 266) Global memtable threshold is enabled at 122MB
 INFO [main] 2014-02-25 01:15:40,609 DatabaseDescriptor.java (line 399) Not using multi-threaded compaction
ERROR [main] 2014-02-25 01:15:40,612 DatabaseDescriptor.java (line 115) Fatal configuration error
org.apache.cassandra.exceptions.ConfigurationException: For input string: "85070591730234615865843651857942052864"
        at org.apache.cassandra.dht.Murmur3Partitioner$1.validate(Murmur3Partitioner.java:178)
        at org.apache.cassandra.config.DatabaseDescriptor.applyConfig(DatabaseDescriptor.java:438)
        at org.apache.cassandra.config.DatabaseDescriptor.<clinit>(DatabaseDescriptor.java:110)
        at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:151)
        at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:462)
        at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:552)
1个回答

6
这些并不是有效的Murmur3Partitioner标记,它们是RandomPartitioner标记。请查看这些关于生成Murmur3标记的 DataStax文档,或者如果您确实想使用RandomPartitioner,则编辑您在Cassandra中的partitioner设置。
仅供明确比较。
Murmur3 Partitioner    | Random Partitioner
------------------------------------------------------------
-9223372036854775808   | 0
-4611686018427387904   | 42535295865117307932921825928971026432
-0                     | 85070591730234615865843651857942052864
-4611686018427387904   | 127605887595351923798765477786913079296

你可以使用Python生成Murmur3令牌(n是DC中节点的数量):
python -c 'print [str(((2**64 / n) * i) - 2**63) for i in range(n)]'
# eg for 4 nodes...
python -c 'print [str(((2**64 / 4) * i) - 2**63) for i in range(4)]'

谢谢,这对我帮助很大。你能告诉我RandomPartitioner相比Murmur3Partitioner的好处吗?另外,当我在使用M.P.时运行bin/nodetool ring命令时,它会返回许多行。但现在当我在使用R.P时运行相同的命令时,它只返回两行。为什么会这样呢? - Naresh
Murmr比随机更好,它允许实现更好的数据分布。如果您启用了虚拟节点,则Nodetool ring将返回256 x节点数,这是默认设置。请改用nodetool status。 - Lyuben Todorov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接