#进入zk的pwdconf目录 [root@hopestation apache-zookeeper-3.6.2-bin]# cd conf #当前目录 [root@hopestation conf]# pwd /opt/apache-zookeeper-3.6.2-bin/conf #复制一份新的配置文件 因为zk启动会需要名为zoo.cfg的文件 [root@hopestation conf]# cp zoo_sample.cfg zoo.cfg [root@hopestation conf]# ls configuration.xsl log4j.properties zoo.cfg zoo_sample.cfg #编辑zoo.cfg [root@hopestation conf]# vim zoo.cfg #然后按i,进入编辑模式。编辑:wq退出
zoo.cfg 内容
1 2 3 4 5 6
# the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. dataDir=/tmp/zookeeper/data dataLogDir=/tmp/zookeeper/log #其他内容不变
而默认情况下linux是没有这两个目录的,所以需要创建出来
1 2 3 4 5 6 7 8 9 10 11 12 13 14
#创建 [root@hopestation conf]# mkdir -p /tmp/zookeeper/data [root@hopestation conf]# mkdir -p /tmp/zookeeper/log #查看 [root@hopestation conf]# cd /tmp/zookeeper [root@hopestation zookeeper]# ls data log #然后需要在 data目录下创建一个myid文件,并写入一个数值作为服务器的编号 [root@hopestation zookeeper]# cd data [root@hopestation data]# touch myid [root@hopestation data]# vim myid #i编写,比如写入0 然后:wq退出 [root@hopestation data]# cat myid 0
启动zookeeper
1 2 3 4 5 6 7 8 9 10 11
[root@hopestation conf]# zkServer.sh start /usr/bin/java ZooKeeper JMX enabled by default Using config: /opt/apache-zookeeper-3.6.2-bin/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [root@hopestation conf]# zkServer.sh status /usr/bin/java ZooKeeper JMX enabled by default Using config: /opt/apache-zookeeper-3.6.2-bin/bin/../conf/zoo.cfg Client port found: 2181. Client address: localhost. Client SSL: false. Error contacting service. It is probably not running.
[2021-04-24 23:19:12,074] INFO Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)
kafka.zookeeper.ZooKeeperClientTimeoutException: Timed out waiting for connection whilein state: CONNECTING
解决
1 2 3 4 5 6 7
#关闭zookeeper [root@hopestation ~]# zkServer.sh stop #再次启动 查看log [root@hopestation ~]# zkServer.sh start-foreground #绑定8080端口 失败,端口占用 org.apache.zookeeper.server.admin.AdminServer$AdminServerException: Problem starting AdminServer on address 0.0.0.0, port 8080 and command URL /commands org.apache.zookeeper.server.admin.JettyAdminServer.start(JettyAdminServer.java:171) Caused by: java.net.BindException: Address already in use
可以直接关闭掉占用8080端口的程序
也可以修改zookeeper的zoo.cfg配置文件
1 2 3 4
[root@hopestation opt]# cd apache-zookeeper-3.6.2-bin/conf [root@hopestation conf]# vim zoo.cfg #增加这句话,使用空闲的端口就可以了 admin.serverPort=2182