是的,我意识到在 Linode 上运行 Cassandra 有点不合时宜。是的,我知道在 Rackspace 或 Amazon 上运行它会更好,但现在这并不重要。
基本上,我为计划加入集群的每个 Linode 设置了一个私有 IP。我可以通过这些私有 IP ping 我的 Linode,这样它们就可以相互通信了。
以下是我的“主” Linodestorage-conf.xml
文件中的一些片段:
<Seeds>
<Seed>192.168.133.219</Seed>
</Seeds>
<ListenAddress>192.168.133.219</ListenAddress>
<StoragePort>7000</StoragePort>
<ThriftAddress>192.168.133.219</ThriftAddress>
<ThriftPort>9160</ThriftPort>
该服务器的私有IP是192.168.133.219
。
我遇到的问题是:当我启动 Cassandra 时,发生了以下情况:
$ cassandra -f
Error: Exception thrown by the agent : java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: (none): (none)
我不知道这是否有帮助,但这是我的/etc/network/interfaces
文件:
auto lo
iface lo inet loopback
auto eth0 eth0:0
iface eth0 inet static
address 97.107.137.96
netmask 255.255.255.0
gateway 97.107.137.1
iface eth0:0 inet static
address 192.168.133.219
netmask 255.255.128.0
Linode 没有其他配置。我甚至没有更改 hosts 文件。如果我遗漏了什么,请告诉我。任何见解都值得赞赏!
答案1
好吧,伙计们,我似乎自己解决了这个问题。事实上,这是一个相当愚蠢的问题。
$ hostname <linode hostname goes here>
$ echo /etc/hostname < "<linode hostname goes here>"
$ reboot
就是这样了。天啊。