前言:本文重点不在讲解Cassandra和JMX的配置和使用,只是记录一下在安装Cassandra碰到的问题,希望对出现碰到类似问题的朋友帮助。
安装Cassandra顺利,在运行./bin/nodetool -hlocalhost -p8080 ring 一直连接不上。直到超时,并且报以下错误
解决步骤:
1、检查8080端口是否处理监听状态
执行netstat -anp|grep 8080
连接正常,不过连接的类型竟然是tcp6,不过,应该没影响(后来也证实确实不是这个原因),不管怎样,这台Gentoo linux是刚配起来的,还是先把ipv6禁用再说
修改/etc/modprobe.d/aliases.conf 文件
加入以下代码
由于2.6.30以上内核默认支持ipv6(make menuconfig的时候可以禁用掉)
故修改/etc/sysctl.conf文件加入
重启,ipv6已经禁用,但是问题依旧。
2、继续努力, nodetool命令需要连接到jmx服务,所以,我用另外一个linux电脑使用jconsole来连接远程的JMX
可想而知,还是连接失败,telnet 192.168.0.120 8080 可以连接上(确定防火墙没有拦截8080端口)
进行到这里,可以确定是jmx服务端配置有问题!jmx使用启动的监听地址错误。
3、找到$CASSANDRA_HOME/bin/assandra.in.sh文件
在JVM_OPTS后面加上
-Djava.rmi.server.hostname=192.168.0.120
打开/etc/hosts文件,在第一行加入
192.168.0.120 localhost
重启assandra执行:
./bin/nodetool -hlocalhost -p8080 ring
jconsole运行: