Skip to main content
 首页 » 编程设计

python之如何为我的双节点 Cassandra 集群生成 token

2025年05月04日9bhlsheji

我正在尝试在 Windows 机器上设置两个节点 Cassandra 集群。我基本上有两台 Windows 机器,我正在关注这个 datastax tutorial

每当我使用下面的命令从上面的教程中获取 token 号时 -

python -c "num=2; print ""\n"".join([(""token %d: %d"" %(i,(i*(2**127)/num))) for i in range(0,num)])" 

我总是得到这个错误 -

C:\Users\username>python -c "num=2; print ""\n"".join([(""token %d: %d"" %(i,(i*(2**127)/num))) for i 
in range(0,num)])" 
  File "<string>", line 1 
    num=2; print "\n".join([("token %d: %d" %(i,(i*(2**127)/num))) for i in range(0,num)]) 
                    ^ 
SyntaxError: invalid syntax 

请您参考如下方法:

如果将该命令放入实际的 Python 脚本中,您可能会更幸运。 这是我使用的一个类似的 Python 脚本(保存为 newCluster.py):

import sys 
 
if (len(sys.argv) > 1): 
        num=int(sys.argv[1]) 
else: 
        num=int(raw_input("How many nodes are in your cluster? ")) 
for i in range(0, num): 
        print 'node %d: %d' % (i, (i*(2**127)/num)) 

当我为两个节点运行它时,我得到:

How many nodes are in your cluster? 2 
node 0: 0 
node 1: 85070591730234615865843651857942052864 

这正是我编辑和运行它的方式:

您使用的是哪个版本的 Python?我已经在 2.6.7 和 2.7.3 中测试了这个脚本。

同样为了平衡,双节点集群的 initial_token 值只需相差 85,070,591,730,234,615,865,843,651,857,942,052,864。它们不一定必须是 0 和 85070591730234615865843651857942052864;尽管这两个值应该可以正常工作。