Hello all,

I am fairly new to ZK, and have deployed my first cluster (via puppet). 
Everything looks good except for one little glitch when wanting to connect with 
zkCli.sh with specific JMX params set.

Background info
=============
# rpm -qa |grep zook
zookeeper-3.4.5+cdh5.8.0+94-1.cdh5.8.0.p0.76.el7.x86_64
zookeeper-server-3.4.5+cdh5.8.0+94-1.cdh5.8.0.p0.76.el7.x86_64

# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)

The problem
==========
I cannot connect using '/usr/lib/zookeeper/bin/zkCli.sh -server 
127.0.0.1:2181’. I am using JVMFLAGS to setup specific options.

I can connect with jconsole remotely just fine or any other JMX monitoring 
utilities. I can also connect on localhost, the server ip or dns name from the 
machine itself.
There is no iptables. No selinux.

My starting point is, as exported in my java.env file under /etc/zookeeper/conf 
:

export JVMFLAGS="-Xms512m -Xmx1g -Dcom.sun.management.jmxremote.port=12345 
-Dcom.sun.management.jmxremote.rmi.port=12345 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.password.file=/etc/java/jmxremote.password 
-Dcom.sun.management.jmxremote.access.file=/etc/java/jmxremote.access 
-Djava.rmi.server.hostname=${HOSTIP} 
-Dcom.sun.management.jmxremote.authenticate=true -XX:+PrintGCDetails 
-XX:+PrintTenuringDistribution -XX:+PrintGCCause 
-XX:+PrintGCApplicationStoppedTime -Xloggc:/var/log/zookeeper/gc-zk.log 
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=256M 
-XX:+HeapDumpOnOutOfMemoryError 
-XX:OnOutOfMemoryError='/usr/local/bin/kill_zk_jvm.sh'"

1. If using either one of “java.rmi.server.hostname” and 
“comment.sun.management.jmxremote.rmi.port”, then it fails with:
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
# /usr/lib/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181
Error: JMX connector server communication error: 
service:jmx:rmi://i-infra-zk-001.my.domain:12345

2. If removing the rmi parameters, then it fails with:
--------------------------------------------------------------------
# /usr/lib/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181
Error: Exception thrown by the agent : java.rmi.server.ExportException: Port 
already in use: 12345; nested exception is:
java.net.BindException: Address already in use

If I don’t have any JMX parameters in there, it works fine.

Thank you for your advices or pointers. I could not find much that pointed at 
this particular issue; I guess I am missing something fairly obvious...

Cheers,
fred

Reply via email to