ccm 开始地址已被使用;集群可能已经 运行 或者您可能需要添加环回别名
ccm start Address already in use; a cluster may already be running or you may need to add the loopback alias
我正在努力使用 'ccm start' 命令启动 Cassandra 集群。
我创建了一个名为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
清楚了吗,如果不清楚请告诉我,以便我澄清更多
我最终不知道如何 运行 我在 Cassandra 中的集群。
非常感谢您的帮助。
哈比
所以 Cassandra 默认使用端口 9042。但是,正如您的输出所示,当您尝试启动节点时,某些东西似乎已经在使用该端口。从以下消息可以看出这一点:
Inet address 127.0.0.1:9042 is not available: [Errno 98] Address already in use
在这种情况下,您有两种选择:
- 找到使用端口 9042 的进程并杀死它(假设它是不重要的)
- 使用不同的端口启动节点
对于(1),您可以使用:
netstat -nap | grep 9042 | grep LISTEN
您可能需要成为 "root" 用户才能找到进程,因为 netstat 只会显示您当前用户 "owns" 的内容。如果您是 root,您将看到所有进程。
对于(2),您可以简单地更改cassandra.yaml文件中的端口(native_transport_port)。您还应该将 "listen_address" 参数和 "native_transport_broadcast_address" 更改为您的主机 IP 地址,这样您就不会使用环回地址(您可以使用 "hostname -i" 来查找本地主机的 IP 地址) - 如果您希望它在所有接口上侦听,请将 "native_transport_address" 设置为“0.0.0.0”。这就是我们所做的。希望这会让您振作起来 运行.
Cassandra 为不同的进程使用以下端口:
thrift=('127.0.0.1', 9160)
binary=('127.0.0.1', 9042)
storage=('127.0.0.1', 7000)
确保所有这些端口都没有被您集群的任何 IP 使用。
我正在努力使用 'ccm start' 命令启动 Cassandra 集群。
我创建了一个名为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
清楚了吗,如果不清楚请告诉我,以便我澄清更多
我最终不知道如何 运行 我在 Cassandra 中的集群。 非常感谢您的帮助。 哈比
所以 Cassandra 默认使用端口 9042。但是,正如您的输出所示,当您尝试启动节点时,某些东西似乎已经在使用该端口。从以下消息可以看出这一点:
Inet address 127.0.0.1:9042 is not available: [Errno 98] Address already in use
在这种情况下,您有两种选择:
- 找到使用端口 9042 的进程并杀死它(假设它是不重要的)
- 使用不同的端口启动节点
对于(1),您可以使用:
netstat -nap | grep 9042 | grep LISTEN
您可能需要成为 "root" 用户才能找到进程,因为 netstat 只会显示您当前用户 "owns" 的内容。如果您是 root,您将看到所有进程。
对于(2),您可以简单地更改cassandra.yaml文件中的端口(native_transport_port)。您还应该将 "listen_address" 参数和 "native_transport_broadcast_address" 更改为您的主机 IP 地址,这样您就不会使用环回地址(您可以使用 "hostname -i" 来查找本地主机的 IP 地址) - 如果您希望它在所有接口上侦听,请将 "native_transport_address" 设置为“0.0.0.0”。这就是我们所做的。希望这会让您振作起来 运行.
Cassandra 为不同的进程使用以下端口:
thrift=('127.0.0.1', 9160)
binary=('127.0.0.1', 9042)
storage=('127.0.0.1', 7000)
确保所有这些端口都没有被您集群的任何 IP 使用。