Cassandra及DSE启动失败:UnknownHostException错误排查求助
解决Cassandra/DSE启动时的UnknownHostException问题
先看你给出的错误日志:
ERROR [main] 2018-04-23 15:36:39,630 CassandraDaemon.java:723 - Local host name unknown: java.net.UnknownHostException: jarvis: jarvis: Temporary failure in name resolution
这个报错的核心是系统无法将主机名jarvis解析为对应的IP地址,咱们可以用这几个方法快速修复:
方法1:修改/etc/hosts文件(最常用)
手动绑定主机名和IP是最直接的解决方式:
- 打开终端编辑hosts文件:
sudo nano /etc/hosts - 在文件末尾添加一行,把你的主机名(这里是
jarvis)和本地IP对应起来,比如:127.0.0.1 jarvis
如果你有固定内网IP,也可以写实际的内网IP,比如192.168.1.100 jarvis - 保存退出后,测试解析是否正常:
ping jarvis,能ping通的话再重启Cassandra/DSE就没问题了。
方法2:直接指定Cassandra绑定的IP
不想修改hosts文件的话,可以在配置里直接指定IP:
- 找到DSE环境下的Cassandra配置文件,通常在
/etc/dse/cassandra/cassandra.yaml - 找到
listen_address和rpc_address这两个配置项,把它们改成机器的实际IP,或者直接设为localhost - 保存配置后,重新执行
./dse cassandra启动服务。
方法3:检查系统主机名配置
有时候是主机名本身的配置出了问题:
- 先查看当前主机名:
hostname - 如果主机名不对,修改它:
sudo hostnamectl set-hostname jarvis(这里的jarvis是你需要的主机名) - 再确认
/etc/hostname文件里的内容和新主机名一致,不一致的话同步修改即可。
优先试试方法1,大部分情况下修改hosts文件就能快速解决这个问题,要是还有问题再尝试其他方法。
内容的提问来源于stack exchange,提问作者Aravinth




