我正在尝试在Windows计算机上设置两个节点的Cassandra群集。我基本上有两个Windows机器,我一直在关注此datastax tutorial

每当我使用以下命令从上述教程中获取令牌号时-

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和85070591730230234615865843651857942052864;尽管这两个值应该可以正常工作。

关于python - 如何为我的两个节点的Cassandra集群生成 token ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19722075/

10-12 17:12
查看更多