linux安装zookeeper的教程
一、安装zookeeper的条件
- zookeeper的安装前置条件,必须先在linux中安装好jdk。详情跳转如下连接:
https://editor.csdn.net/md/?articleId=106196827
二、根据连接下载并且解压zookeeper压缩包
- 先进入/usr/local/目录,也可以是其他的目录(一般安装再local目录下):
[root@localhost /]# cd /usr/local
- zookeeper可以在官网下载。
也可以在后面这个地址下载
http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.6.1/apache-zookeeper-3.6.1-bin.tar.gz
[root@localhost local]# wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.6.1/apache-zookeeper-3.6.1-bin.tar.gz
- 解压下载好的zookeeper压缩包,命令如下
[root@localhost local]# tar -zxvf apache-zookeeper-3.6.1.tar.gz
三、编辑zookeeper的配置zoo.cfg文件
1.进入安装zookeeper的conf目录:
[root@localhost local]# cd /usr/local/apache-zookeeper-3.6.1/conf
- 将zoo_sample.cfg这个文件复制为zoo.cfg (系统配置好的参数名称,不能修改)
[root@localhost conf]# cp zoo_sample.cfg zoo.cfg
- 进入zoo.cfg文件进行编辑,用vim进行编辑
[root@localhost conf]# vim zoo.cfg
- 按 i 进入编辑模式,修改以下内容,指定数据与日志存储位置,如果不存在参数则自己写上就行:
dataDir=/tmp/zookeeper/data
dataLogDir=/tmp/zookeeper/log
- 在公共tmp目录创建目录。
[root@localhost conf]# cd /tmp
[root@localhost conf]# mkdir /tmp/zookeeper
[root@localhost conf]# mkdir /tmp/zookeeper/data
[root@localhost conf]# mkdir /tmp/zookeeper/log
四、配置zookeeper在linux中的环境变量
1.我们需要配置一下环境变量,配置环境变量的命令如下:
[root@localhost zookeeper-3.4.13]# export ZOOKEEPER_INSTALL=/usr/local/apache-zookeeper-3.6.1/
[root@localhost zookeeper-3.4.13]# export PATH=$PATH:$ZOOKEEPER_INSTALL/bin
五、进入zookeeper的bin目录下启动zookeeper
1.进入安装zookeeper的bin目录,并启动zookeepr。如下图指令
[root@localhost local]# cd /usr/local/apache-zookeeper-3.6.1-bin/
[root@localhost bin]# ./zkServer.sh start
2.zookeeper的服务端启动成功效果如下:
ZooKeeper JMX enabled by default
Using config: /usr/local/apache-zookeeper-3.6.1-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
3.zookeeper的服务端启动后,还需要启动zookeeper的客户端:
[root@localhost bin]# ./zkCli.sh
zookeeper客户端启动效果如下所示
Connecting to localhost:2181
2020-05-18 18:27:40,946 [myid:] - INFO [main:Environment@98] - Client environment:zookeeper.version=3.6.1--104dcb3e3fb464b30c5186d229e00af9f332524b, built on 04/21/2020 15:01 GMT
2020-05-18 18:27:40,956 [myid:] - INFO [main:Environment@98] - Client environment:host.name=host-10-19-83-73
2020-05-18 18:27:40,956 [myid:] - INFO [main:Environment@98] - Client environment:java.version=1.8.0_131
2020-05-18 18:27:40,960 [myid:] - INFO [main:Environment@98] - Client environment:java.vendor=Oracle Corporation
2020-05-18 18:27:40,960 [myid:] - INFO [main:Environment@98] - Client environment:java.home=/usr/local/java/jdk1.8.0_131/jre
2020-05-18 18:27:40,960 [myid:] - INFO [main:Environment@98] - Client environment:java.class.path=/usr/local/apache-zookeeper-3.6.1-bin/bin/../zookeeper-server/target/classes:/usr/local/apache-zookeeper-3.6.1-bin/bin/../build/classes:/usr/local/apache-zookeeper-3.6.1-bin/bin/../zookeeper-server/target/lib/*.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../build/lib/*.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/zookeeper-prometheus-metrics-3.6.1.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/zookeeper-jute-3.6.1.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/zookeeper-3.6.1.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/snappy-java-1.1.7.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/slf4j-log4j12-1.7.25.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/slf4j-api-1.7.25.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/simpleclient_servlet-0.6.0.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/simpleclient_hotspot-0.6.0.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/simpleclient_common-0.6.0.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/simpleclient-0.6.0.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/netty-transport-native-unix-common-4.1.48.Final.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/netty-transport-native-epoll-4.1.48.Final.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/netty-transport-4.1.48.Final.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/netty-resolver-4.1.48.Final.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/netty-handler-4.1.48.Final.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/netty-common-4.1.48.Final.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/netty-codec-4.1.48.Final.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/netty-buffer-4.1.48.Final.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/metrics-core-3.2.5.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/log4j-1.2.17.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/json-simple-1.1.1.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/jline-2.11.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/jetty-util-9.4.24.v20191120.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/jetty-servlet-9.4.24.v20191120.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/jetty-server-9.4.24.v20191120.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/jetty-security-9.4.24.v20191120.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/jetty-io-9.4.24.v20191120.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/jetty-http-9.4.24.v20191120.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/javax.servlet-api-3.1.0.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/jackson-databind-2.10.3.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/jackson-core-2.10.3.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/jackson-annotations-2.10.3.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/commons-lang-2.6.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/commons-cli-1.2.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../lib/audience-annotations-0.5.0.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../zookeeper-*.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../zookeeper-server/src/main/resources/lib/*.jar:/usr/local/apache-zookeeper-3.6.1-bin/bin/../conf:.:/usr/local/java/jdk1.8.0_131/lib:/usr/local/java/jdk1.8.0_131/jre/lib
2020-05-18 18:27:40,960 [myid:] - INFO [main:Environment@98] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2020-05-18 18:27:40,960 [myid:] - INFO [main:Environment@98] - Client environment:java.io.tmpdir=/tmp
2020-05-18 18:27:40,961 [myid:] - INFO [main:Environment@98] - Client environment:java.compiler=<NA>
2020-05-18 18:27:40,961 [myid:] - INFO [main:Environment@98] - Client environment:os.name=Linux
2020-05-18 18:27:40,961 [myid:] - INFO [main:Environment@98] - Client environment:os.arch=amd64
2020-05-18 18:27:40,961 [myid:] - INFO [main:Environment@98] - Client environment:os.version=3.10.0-327.el7.x86_64
2020-05-18 18:27:40,961 [myid:] - INFO [main:Environment@98] - Client environment:user.name=root
2020-05-18 18:27:40,961 [myid:] - INFO [main:Environment@98] - Client environment:user.home=/root
2020-05-18 18:27:40,961 [myid:] - INFO [main:Environment@98] - Client environment:user.dir=/usr/local/apache-zookeeper-3.6.1-bin/bin
2020-05-18 18:27:40,961 [myid:] - INFO [main:Environment@98] - Client environment:os.memory.free=237MB
2020-05-18 18:27:40,964 [myid:] - INFO [main:Environment@98] - Client environment:os.memory.max=245MB
2020-05-18 18:27:40,964 [myid:] - INFO [main:Environment@98] - Client environment:os.memory.total=245MB
2020-05-18 18:27:40,971 [myid:] - INFO [main:ZooKeeper@1005] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@4926097b
2020-05-18 18:27:40,977 [myid:] - INFO [main:X509Util@77] - Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation
2020-05-18 18:27:40,986 [myid:] - INFO [main:ClientCnxnSocket@239] - jute.maxbuffer value is 1048575 Bytes
2020-05-18 18:27:40,995 [myid:] - INFO [main:ClientCnxn@1703] - zookeeper.request.timeout value is 0. feature enabled=false
Welcome to ZooKeeper!
2020-05-18 18:27:41,005 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1154] - Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181.
2020-05-18 18:27:41,005 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1156] - SASL config status: Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2020-05-18 18:27:41,069 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@986] - Socket connection established, initiating session, client: /0:0:0:0:0:0:0:1:55816, server: localhost/0:0:0:0:0:0:0:1:2181
[zk: localhost:2181(CONNECTING) 0] 2020-05-18 18:27:41,411 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1420] - Session establishment complete on server localhost/0:0:0:0:0:0:0:1:2181, session id = 0x101a2ed12580000, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
4.查看zookeeper的运行状态:
在bin目录下 使用指令./zkServer.sh status
[root@host-10-19-83-73 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/apache-zookeeper-3.6.1-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: standalone
遇到的问题总结
1.zookeeper的出错日志会记录在 /usr/local/apache-zookeeper-3.6.1-bin/logs
2. 在官网上有两个tar.gz文件,从目前的最新版本3.5.5开始,带有bin名称的包才是我们想要的下载可以直接使用的里面有编译后的二进制的包,而之前的普通的tar.gz的包里面是只是源码的包无法直接使用。 亲测已解决