一、Zookeeper的下载
1、官网下载地址
Apache ZooKeeper
注意:要下载对应Hadoop版本的Zookeeper
通过 hadoop version 命令查看Hadoop版本
2、我下载的3.7.0
https://dlcdn.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
二、Zookeeper安装
Zookeeper单机模式安装
1、配置java环境(之前安装Hadoop时安装过,没有安装的教程如下) Linux中安装JDK_懒笑翻的博客-CSDN博客
可以通过 java -version 查看是否安装
2.1、 打开XFTP,把下载下来的 apache-zookeeper-3.7.0-bin.tar.gz 文件上传到虚拟主机中的Opt文件夹中(也就是直接Hadoop所处的位置)
2.2、使用命令把 apache-zookeeper-3.7.0-bin.tar.gz 解压到 /home/bigdata/Opt 目录下
tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz -C /home/bigdata/Opt
3、把 /home/bigdata/Opt/apache-zookeeper-3.7.0-bin 文件夹中 conf 目录下的配置文件 zoo_sample.cfg 复制为 zoo.cfg
进入到目录:
cd /home/bigdata/Opt/apache-zookeeper-3.7.0-bin/conf
把zoo_sample.cfg 复制为 zoo.cfg
cp zoo_sample.cfg zoo.cfg
4、使用 /home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin下的 zkServer.sh 启动Zookeeper
进入目录:
cd /home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin
使用命令启动Zookeeper服务
./zkServer.sh start
5、测试是否成功启动
使用 /home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin下的 zkCli.sh 测试
运行命令:
./zkCli.sh
有如下结果:
[bigdata@localhost bin]$ ./zkCli.sh
Connecting to localhost:2181
2022-05-02 02:45:56,545 [myid:] - INFO [main:Environment@98] - Client environment:zookeeper.version=3.7.0-e3704b390a6697bfdf4b0bef79e3da7a4f6bac4b, built on 2021-03-17 09:46 UTC
2022-05-02 02:45:56,548 [myid:] - INFO [main:Environment@98] - Client environment:host.name=localhost
2022-05-02 02:45:56,549 [myid:] - INFO [main:Environment@98] - Client environment:java.version=1.8.0_331
2022-05-02 02:45:56,551 [myid:] - INFO [main:Environment@98] - Client environment:java.vendor=Oracle Corporation
2022-05-02 02:45:56,551 [myid:] - INFO [main:Environment@98] - Client environment:java.home=/home/bigdata/Opt/jdk1.8.0_331/jre
2022-05-02 02:45:56,551 [myid:] - INFO [main:Environment@98] - Client environment:java.class.path=/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../zookeeper-server/target/classes:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../build/classes:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../zookeeper-server/target/lib/*.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../build/lib/*.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/zookeeper-prometheus-metrics-3.7.0.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/zookeeper-jute-3.7.0.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/zookeeper-3.7.0.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/snappy-java-1.1.7.7.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/slf4j-log4j12-1.7.30.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/slf4j-api-1.7.30.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/simpleclient_servlet-0.9.0.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/simpleclient_hotspot-0.9.0.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/simpleclient_common-0.9.0.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/simpleclient-0.9.0.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/netty-transport-native-unix-common-4.1.59.Final.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/netty-transport-native-epoll-4.1.59.Final.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/netty-transport-4.1.59.Final.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/netty-resolver-4.1.59.Final.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/netty-handler-4.1.59.Final.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/netty-common-4.1.59.Final.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/netty-codec-4.1.59.Final.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/netty-buffer-4.1.59.Final.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/metrics-core-4.1.12.1.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/log4j-1.2.17.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/jline-2.14.6.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/jetty-util-ajax-9.4.38.v20210224.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/jetty-util-9.4.38.v20210224.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/jetty-servlet-9.4.38.v20210224.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/jetty-server-9.4.38.v20210224.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/jetty-security-9.4.38.v20210224.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/jetty-io-9.4.38.v20210224.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/jetty-http-9.4.38.v20210224.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/javax.servlet-api-3.1.0.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/jackson-databind-2.10.5.1.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/jackson-core-2.10.5.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/jackson-annotations-2.10.5.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/commons-cli-1.4.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../lib/audience-annotations-0.12.0.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../zookeeper-*.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../zookeeper-server/src/main/resources/lib/*.jar:/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin/../conf:
2022-05-02 02:45:56,551 [myid:] - INFO [main:Environment@98] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2022-05-02 02:45:56,551 [myid:] - INFO [main:Environment@98] - Client environment:java.io.tmpdir=/tmp
2022-05-02 02:45:56,552 [myid:] - INFO [main:Environment@98] - Client environment:java.compiler=<NA>
2022-05-02 02:45:56,552 [myid:] - INFO [main:Environment@98] - Client environment:os.name=Linux
2022-05-02 02:45:56,552 [myid:] - INFO [main:Environment@98] - Client environment:os.arch=amd64
2022-05-02 02:45:56,552 [myid:] - INFO [main:Environment@98] - Client environment:os.version=3.10.0-1160.el7.x86_64
2022-05-02 02:45:56,552 [myid:] - INFO [main:Environment@98] - Client environment:user.name=bigdata
2022-05-02 02:45:56,552 [myid:] - INFO [main:Environment@98] - Client environment:user.home=/home/bigdata
2022-05-02 02:45:56,552 [myid:] - INFO [main:Environment@98] - Client environment:user.dir=/home/bigdata/Opt/apache-zookeeper-3.7.0-bin/bin
2022-05-02 02:45:56,552 [myid:] - INFO [main:Environment@98] - Client environment:os.memory.free=21MB
2022-05-02 02:45:56,556 [myid:] - INFO [main:Environment@98] - Client environment:os.memory.max=228MB
2022-05-02 02:45:56,556 [myid:] - INFO [main:Environment@98] - Client environment:os.memory.total=29MB
2022-05-02 02:45:56,562 [myid:] - INFO [main:ZooKeeper@637] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@4fccd51b
2022-05-02 02:45:56,568 [myid:] - INFO [main:X509Util@77] - Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation
2022-05-02 02:45:56,625 [myid:] - INFO [main:ClientCnxnSocket@239] - jute.maxbuffer value is 1048575 Bytes
2022-05-02 02:45:56,636 [myid:] - INFO [main:ClientCnxn@1726] - zookeeper.request.timeout value is 0. feature enabled=false
Welcome to ZooKeeper!
2022-05-02 02:45:56,658 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1171] - Opening socket connection to server localhost/127.0.0.1:2181.
2022-05-02 02:45:56,658 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1173] - SASL config status: Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2022-05-02 02:45:56,668 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1005] - Socket connection established, initiating session, client: /127.0.0.1:46150, server: localhost/127.0.0.1:2181
2022-05-02 02:45:56,726 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1438] - Session establishment complete on server localhost/127.0.0.1:2181, session id = 0x10000318d150000, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0]
5.1 使用命令 ls 查看当前Zookeeper 中的内容
ls /
5.2 使用命令 create /zkPro 创建一个新节点 mynode ,再使用命令 ls 查看Zookeeper中的内容
create /zkPro mynode
ls /
5.3 使用命令 get /zkPro 确认 zkPro 是否包含我们新创建的内容
get /zkPro mynode
注意:使用书上这条命令会报错报错报错
'get path [watch]' has been deprecated. Please use 'get [-s] [-w] path' instead.
报错解决参考博客:https://blog.csdn.net/c_lanxiaofang/article/details/124544201
修改命令为如下即可查看:
get -s /zkPro
5.4 使用命令 set 修改新创建的 mynode
set /zkPro mynode
上图以这个为准,书上的过程图有误。
[zk: localhost:2181(CONNECTED) 8] get -w /zkPro
mynode
[zk: localhost:2181(CONNECTED) 9] set /zkPro mynode
WATCHER::
WatchedEvent state:SyncConnected type:NodeDataChanged path:/zkPro
5.5 使用命令 delete /zkPro 删除刚刚新创建的 mynode
delete /zkPro
[zk: localhost:2181(CONNECTED) 0] ls /
[zkPro, zookeeper]
[zk: localhost:2181(CONNECTED) 1] delete /zkPro
[zk: localhost:2181(CONNECTED) 2] ls /
[zookeeper]