ccm start 주소가 이미 사용 중입니다. 클러스터가 이미 실행 중이거나 루프백 별칭을 추가해야 할 수 있습니다.

트위스터 9458

'ccm start'명령으로 Cassandra 클러스터를 시작하는 데 어려움을 겪고 있습니다.

다음과 같이 3 개의 노드가있는 Gdelt라는 클러스터를 만들었습니다 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

이것이 분명합니까, 그렇지 않다면 제발 말 해주세요.

마침내 Cassandra에서 클러스터를 실행하는 방법을 모르겠습니다. 당신의 도움을 주셔서 대단히 감사합니다. 하비브

짐 워트 닉

따라서 Cassandra 사용자는 기본적으로 9042 포트를 사용합니다. 그러나 출력에서 ​​알 수 있듯이 노드를 시작하려고 할 때 이미 해당 포트를 사용하는 것으로 보입니다. 이는 다음 메시지에서 분명합니다.

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

이 시나리오에는 몇 가지 옵션이 있습니다.

  1. 포트 9042를 사용하여 프로세스를 찾아서 종료합니다 (중요하지 않은 것으로 가정).
  2. 다른 포트를 사용하여 노드 시작

(1)의 경우 다음을 사용할 수 있습니다.

netstat -nap | grep 9042 | grep LISTEN

netstat는 현재 사용자가 "소유 한"항목 만 표시하므로 프로세스를 찾으려면 "루트"사용자 여야 할 수 있습니다. 루트 인 경우 모든 프로세스를 볼 수 있습니다.

(2)의 경우 단순히 cassandra.yaml 파일 (native_transport_port)에서 포트를 변경할 수 있습니다. 또한 루프백 주소를 사용하지 않도록 "listen_address"매개 변수 및 "native_transport_broadcast_address"를 호스트 IP 주소로 변경해야합니다 ( "hostname -i"를 사용하여 로컬 호스트의 IP 주소를 찾을 수 있음). 모든 인터페이스에서 수신하도록하려면 "native_transport_address"를 "0.0.0.0"으로 설정하십시오. 그것이 우리가하는 일입니다. 바라건대 그것은 노드를 시작하고 실행하게 할 것입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관