Zookeeper zkCli.sh 접속시 java.net.NoRouteToHostException 에러발생

■ 로컬에서 zookeeper 서버로 접속은 되는데 원격에서 접속을 시도 하면 에러 메시지가 발생하면서 접속이 되지 않는 현상이 발생. 원인을 찾아보니 리눅스서버(Centos7) 내부 방화벽이 활성화 되어 있었기 때문이었다. 방화벽을 내리니 원할히 접속된다.

$ zkCli.sh -server centos03:2181
...
java.net.NoRouteToHostException: 호스트로 갈 루트가 없음
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
    at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1141)
...

 

■ 방화벽 실행 확인 확인( 아래의 Active: active (running) )

# systemctl status firewalld.service
...
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since 월 2016-09-05 09:10:17 KST; 9h ago
 Main PID: 877 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─877 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
...

 

■ 리눅스 서버 실행시 방화벽 자동시작 해제

# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.