Начальный адрес ccm уже используется; возможно, кластер уже запущен или вам может потребоваться добавить псевдоним петли - PullRequest
0 голосов
/ 13 января 2020

Я изо всех сил пытаюсь запустить кластер Cassandra с помощью команды 'ccm start'.

Я создал кластер с именем Gdelt с 3 узлами, как показано ниже: ccm status дает:

Cluster: 'Gdelt' 
-------------------
node1: DOWN (Not initialized)
node3: DOWN (Not initialized)
node2: DOWN (Not initialized)
node4: DOWN (Not initialized)

но ccm start выдает следующую ошибку:

Traceback (most recent call last):
  File "/usr/local/bin/ccm", line 112, in <module>
    cmd.run()
  File "/usr/local/lib/python2.7/dist-packages/ccmlib/cmds/cluster_cmds.py", line 510, in run
    allow_root=self.options.allow_root) is None:
  File "/usr/local/lib/python2.7/dist-packages/ccmlib/cluster.py", line 390, in start
    common.assert_socket_available(itf)
  File "/usr/local/lib/python2.7/dist-packages/ccmlib/common.py", line 521, in assert_socket_available
    raise UnavailableSocketError("Inet address %s:%s is not available: %s; a cluster may already be running or you may need to add the loopback alias" % (addr, port, msg))
ccmlib.common.UnavailableSocketError: Inet address 127.0.0.1:9042 is not available: [Errno 98] Address already in use; a cluster may already be running or you may need to add the loopback alias
Traceback (most recent call last):
  File "/usr/local/bin/ccm", line 112, in <module>
    cmd.run()
  File "/usr/local/lib/python2.7/dist-packages/ccmlib/cmds/cluster_cmds.py", line 510, in run
    allow_root=self.options.allow_root) is None:
  File "/usr/local/lib/python2.7/dist-packages/ccmlib/cluster.py", line 390, in start
    common.assert_socket_available(itf)
  File "/usr/local/lib/python2.7/dist-packages/ccmlib/common.py", line 521, in assert_socket_available
    raise UnavailableSocketError("Inet address %s:%s is not available: %s; a cluster may already be running or you may need to add the loopback alias" % (addr, port, msg))
ccmlib.common.UnavailableSocketError: Inet address 127.0.0.1:9042 is not available: [Errno 98] Address already in use; a cluster may already be running or you may need to add the loopback alias

Я пытался создать петлевые псевдонимы, используя скрипт bash, как показано ниже, и выполнить его:

#!/bin/bash

sudo ifconfig lo0 alias 127.0.0.2 up
sudo ifconfig lo0 alias 127.0.0.3 up
sudo ifconfig lo0 alias 127.0.0.4 up
sudo ifconfig lo0 alias 127.0.0.5 up
sudo ifconfig lo0 alias 127.0.0.6 up

, что вызывает следующая ошибка при bash выполнении скрипта:

alias: Host name lookup failure
ifconfig: `--help' gives usage information.

Я пробовал ifconfig непосредственно в командной строке следующим образом:

sudo ifconfig lo:0 127.0.0.1 up

, который дает следующую ошибку:

SIOCSIFADDR: File exists
SIOCSIFFLAGS: Cannot assign requested address
SIOCSIFFLAGS: Cannot assign requested address

Это ясно, скажите, пожалуйста, если нет, чтобы я разъяснил больше

Я не знаю, наконец, как запустить мой кластер в Кассандре. Спасибо большое за помощь. Хабиб

1 Ответ

0 голосов
/ 13 января 2020

Таким образом, пользователи Cassandra по умолчанию используют порт 9042. Однако, как показывает ваш вывод, что-то уже использует этот порт, когда вы пытаетесь запустить свой узел. Это видно из следующего сообщения:

Inet address 127.0.0.1:9042 is not available: [Errno 98] Address already in use

В этом сценарии у вас есть несколько вариантов:
1) Найдите процесс, используя порт 9042, и завершите его (при условии, что это что-то неважное)
2) Используйте другой порт для запуска узла

. Для (1) вы можете использовать:

"natstat -nap | grep 9042 | grep LISTEN" 

. Возможно, вам нужно быть пользователем "root", чтобы найти процесс. as netstat будет отображать только то, что «принадлежит» вашему текущему пользователю. Если вы root, вы увидите все процессы.

Для (2) вы можете просто изменить порт в файле cassandra.yaml (native_transport_port). Вам также следует изменить параметр «listen_address» и «native_transport_broadcast_address» на IP-адрес вашего хоста, чтобы вы не использовали адрес обратной связи (вы можете использовать «hostname -i», чтобы найти ваш IP-адрес вашего локального хоста) - и установить ваш "native_transport_address" в "0.0.0.0", если вы хотите, чтобы он прослушивал все интерфейсы. Это то, что мы делаем. Надеюсь, это поможет вам запустить и запустить узел.

...