在启动ZooKeeper的时候,可能出现如下“端口被占用”的异常,导致服务器无法正常启动:
java.net.BingException: Address already in use
这个异常是Java 程序员最熟悉的异常之一,导致这个异常的原因通常是因为2181端口已经被其他进程占用了。
通常的做法就是检查当前机器上哪个进程正在占用这个端口,确认其端口占用的必要性,将该进程停止后,再一次启动ZooKeeper即可。
也可以编辑%ZK_HOME%/conf/zoo.cfg,更换ZooKeeper的clientPort配置,例如,可以将其设置为2080:
... ...
dataDir=/var/lib/zookeeper/
clientPort=2080
initLimit=5
... ...