2013-11-01 9 views
2

Я пытаюсь настроить два узла Cassandra Cluster на машине Windows. У меня есть в основном два окна машины, и я следовал этому datastax tutorialКак сгенерировать токены для моего кластера Cassandra?

Всякий раз, когда я использую следующую команду, чтобы получить номер лексемы из приведенного выше учебника -

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 

ответ

1

Возможно, вам повезло в том, что эта команда будет выполнена в реальном сценарии 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 

Вот как именно я и редактировать запустить его:

enter image description here

Какая версия Python вы используете? Я протестировал этот скрипт в 2.6.7 и 2.7.3.

Также, чтобы быть сбалансированным, ваши значения initial_token для кластера с двумя узлами просто должны иметь разницу в 85,070,591,730,234,615,865,843,651,857,942,052,864. Они не обязательно должны быть 0 и 85070591730234615865843651857942052864; хотя эти две ценности должны работать нормально.

+0

Я скопировал вышеуказанный контент в файл блокнота и сохранил его как newcluster.py. Когда я запускаю из командной строки cmd, как этот 'C: \ Users \ uname \ Desktop> newcluster.py'. Я всегда получаю эту ошибку «Файл« newcluster.py », строка 8 print 'node% d:% d'% (i, (i * (2 ** 127)/num)) ^ SyntaxError: недействительный синтаксис' – ferhan

+0

Я запускаю 'C: \ Python33> python Python 3.3.2 (v3.3.2: d047928ae3f6, 16 мая 2013, 00:06:53) [MSC v.1600 64 бит (AMD64)] на win32 Тип" help »,« copyright »,« credits »или« license »для получения дополнительной информации.' – ferhan

+0

удалите лишнее пространство между% и (в последней строке. Это должно быть больше похоже на узел «print»% d:% d '% (i , (i * (2 ** 127)/num)) ' – sdelmas