Usiłuję skonfigurować dwa węzły Cassandra Cluster na komputerze z systemem Windows. Mam w zasadzie dwie maszyny z systemem Windows i śledziłem ten datastax seminarium
Ilekroć używam poniższego polecenia, aby uzyskać numer tokena z powyższego samouczka -
python -c "num=2; print ""n"".join([(""token %d: %d"" %(i,(i*(2**127)/num))) for i in range(0,num)])"
Zawsze pojawia się ten błąd -
C:Usersusername>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
Odpowiedzi:
1 dla odpowiedzi № 1Możesz mieć więcej szczęścia, umieszczając to polecenie w rzeczywistym skrypcie Python. Oto podobny skrypt Pythona, którego używam (zapisany jako 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))
Gdy uruchomię to dla dwóch węzłów, otrzymuję:
How many nodes are in your cluster? 2
node 0: 0
node 1: 85070591730234615865843651857942052864
Oto dokładnie, jak go edytuję i uruchamiam:
Jakiej wersji Pythona używasz? Testowałem ten skrypt w wersjach 2.6.7 i 2.7.3.
Również dla zrównoważenia, twoje wartości początkowego_tokenadla klastra z dwoma węzłami po prostu trzeba mieć różnicę 85.070.591,730,234,615,865,843,651,857,942,052,864. Nie muszą to koniecznie być 0 i 85070591730234615865843651857942052864; chociaż te dwie wartości powinny działać dobrze.