centos7 64bit zookeeper 安装,使用,开机自启


-----------------------------------------------------------
========
1 centos 7 64位 安装 zookeeper 单机
========
博文地址
https://blog.csdn.net/qq_38591756/article/details/82828993

#linux 下 cents os 7 下 安装JDK  并配置环境变量, 查看 下术文件
/user-study/src/test/resources/TextStudyRes/006Study/023java/javaCol.txt
2
#查看本机是否安装curl工具
[root@iZuf6hyvanq21thxm114s6Z ~]# curl -h
#查看本机 curl 工具的安装位置
[root@iZuf6hyvanq21thxm114s6Z ~]# which curl
/usr/bin/curl

#新建 zookeeper 文件夹目录
mkdir /usr/local/zookeeper
4
#下载 指定url 的文件(备注:必须是bin压缩class文件,而不是源码java) 并 out 到 /usr/local/zookeeper 目录下 , 将文件重命名为 curl.tar.gz
curl -o /usr/local/zookeeper/apache-zookeeper-3.5.5-bin.tar.gz  http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5-bin.tar.gz

#tar 命令 解压到当前目录 z 通过gzip解压 x 拉出 v 冗长 f 定位归档文件
[root@iZuf6hyvanq21thxm114s6Z zookeeper]# cd /usr/local/zookeeper
[root@iZuf6hyvanq21thxm114s6Z zookeeper]# tar -zxvf apache-zookeeper-3.5.5-bin.tar.gz
6
#查看 目录下的内容
[root@iZuf6hyvanq21thxm114s6Z zookeeper]# ll /usr/local/zookeeper
total 3160
drwxr-xr-x 12 root root    4096 Jun  8 09:10 apache-zookeeper-3.5.5-bin
-rw-r--r--  1 root root 3230972 Jun  8 09:08 apache-zookeeper-3.5.5-bin.tar.gz

#到 /usr/local/zookeeper/apache-zookeeper-3.5.5-bin/conf 复制一份 zookeeper 的配置文件 zoo_sample.cfg
[root@iZuf6hyvanq21thxm114s6Z conf]# cd /usr/local/zookeeper/apache-zookeeper-3.5.5-bin/conf
[root@iZuf6hyvanq21thxm114s6Z conf]# cp zoo_sample.cfg  zoo.cfg
8
zookeeper 单机环境下 zoo.cfg 的配置文件如下
https://www.cnblogs.com/crazylqy/p/7119030.html
#对 修改后的 zoo.cfg 配置文件的一些讲解如下
------------------------
# The number of milliseconds of each tick
# 是 initLimit 与 syncLimit 的超时基本单位,例 initLimit 为5时,超时时间就是 2000ms * 5 = 10秒
tickTime=2000
# The number of ticks that the initial
#zookeeper 集群模式下包含多个zk进程,一个leader进程,余下的是follower进程
#follower 与 leader 建立连接时 会 传输较多数据,initLimit配置follower与leader建立连接后同步的最长时间
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
#配置 follwer 与 leader 之间发送消息,请求与应答的最大时间长度
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
#zookeeper 保存数据的目录,默认情况下 zookeeper 将写数据的日志文件也保存在这个目录

#dataDir=/tmp/zookeeper
dataDir=/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/dataDir
# the port at which the clients will connect
#zookeeper 服务器监听端口,用来接收客户端的访问请求
clientPort=2181
------------------------

#进 bin 目录 启动 zookeeper, 执行启动脚本时 如果不传入 zookeeper 配置文件时,就默认 使用 安装目录下 /conf/zoo.cfg 文件(shell脚本 $2 即cfg配置文件的入参)
#具体 处理逻辑 可以 查看 bin目录下的 zkServer.sh 脚本文件的内容
#以绝对路径的启动方式执行shell脚本,备注:此方式在当前shell会话 启动 子shell会话,子shell会话中的变量不会 export 到父shell会话
[root@iZuf6hyvanq21thxm114s6Z bin]# cd /usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin
[root@iZuf6hyvanq21thxm114s6Z bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
#查看 zookeeper 状态
# ./zkServer.sh status ../conf/zoo.cfg 或 ./zkServer.sh status
[root@iZuf6hyvanq21thxm114s6Z bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Error contacting service. It is probably not running.
# 查看 zookeeper 日志文件
cd /usr/local/zookeeper/apache-zookeeper-3.5.5-bin/logs
view zookeeper-root-server-iZuf6hyvanq21thxm114s6Z.out
---------------------- 
备注: 查看上面的日志文件 我们发现 下面一句 异常 
org.apache.zookeeper.server.admin.AdminServer$AdminServerException: Problem starting AdminServer on address 0.0.0.0, port 8080 and command URL /commands
        at org.apache.zookeeper.server.admin.JettyAdminServer.start(JettyAdminServer.java:107)
        at org.apache.zookeeper.server.ZooKeeperServerMain.runFromConfig(ZooKeeperServerMain.java:138)
        at org.apache.zookeeper.server.ZooKeeperServerMain.initializeAndRun(ZooKeeperServerMain.java:106)
        at org.apache.zookeeper.server.ZooKeeperServerMain.main(ZooKeeperServerMain.java:64)
        at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:128)
        at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:82)
出错 原因: 
1 当前linux安装的tomcat占用了 8080 端口 
2 zookeeper 版本内嵌的管理控制台 jetty 启动时 默认占用 8080 端口
解决方法
1 删除jetty
2 修改 jetty 端口号
    2.1 修改 jetty 端口号 方法一
        在 执行  zkServer.sh 脚本时添加入参 -Dzookeeper.admin.serverPort=9090
    2.2 修改 jetty 端口号 方法二
        在 zoo.cfg 中添加 admin.serverPort=9090
3 停用这个服务
    3.1 即 在 执行  zkServer.sh 脚本时添加入参 -Dzookeeper.admin.enableServer=false
这里 我使用 在 zoo.cfg 中添加 admin.serverPort=9090
----------------
# 开启9090端口
[root@iZuf6hyvanq21thxm114s6Z logs]# firewall-cmd --zone=public --add-port=9090/tcp --permanent;
success
--zone=public:表示作用域为公共的;
--add-port=9090/tcp:添加tcp协议的端口9090;
--permanent:永久生效,如果没有此参数,则只能维持当前服务生命周期内,重新启动后失效;
备注: 开端口号之后记得重新启动防火墙
#重启防火墙
[root@iZuf6hyvanq21thxm114s6Z logs]# firewall-cmd --reload
success
#查看已开放得所有端口
[root@iZuf6hyvanq21thxm114s6Z logs]# firewall-cmd --list-ports
# windows 客户端 (开端口,server不用重启) 
telnet 47.102.137.122 9090
# 浏览器访问
47.102.137.122:9090
# 备注 阿里云服务器对实例 设置安全规则组 放 所有IP网段的 Client 进来
----------------

----------------
# 开启2181端口
[root@iZuf6hyvanq21thxm114s6Z logs]# firewall-cmd --zone=public --add-port=2181/tcp --permanent;
success
--zone=public:表示作用域为公共的;
--add-port=2181/tcp:添加tcp协议的端口2181;
--permanent:永久生效,如果没有此参数,则只能维持当前服务生命周期内,重新启动后失效;
备注: 开端口号之后记得重新启动防火墙
#重启防火墙
[root@iZuf6hyvanq21thxm114s6Z logs]# firewall-cmd --reload
success
#查看已开放得所有端口
[root@iZuf6hyvanq21thxm114s6Z logs]# firewall-cmd --list-ports
# windows 客户端 (开端口,server不用重启) 
telnet 47.102.137.122 2181
# 备注 阿里云服务器对实例 设置安全规则组 放 所有IP网段的 Client 进来
----------------

----------------------
# 清空 zookeeper 启动日志文件
[root@iZuf6hyvanq21thxm114s6Z bin]# echo '' > ../logs/zookeeper-root-server-iZuf6hyvanq21thxm114s6Z.out 
# 查看 zookeeper 启动日志文件 是否清空 
[root@iZuf6hyvanq21thxm114s6Z bin]# view ../logs/zookeeper-root-server-iZuf6hyvanq21thxm114s6Z.out 
# 停止 zookeeper 
[root@iZuf6hyvanq21thxm114s6Z bin]# ./zkServer.sh stop
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
# 重新启动 zookeeper 
[root@iZuf6hyvanq21thxm114s6Z bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
# 查看 zookeeper 启动日志
[root@iZuf6hyvanq21thxm114s6Z bin]# view ../logs/zookeeper-root-server-iZuf6hyvanq21thxm114s6Z.out 
# 查看 zookeeper 状态
[root@iZuf6hyvanq21thxm114s6Z bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: standalone
# 查看java进程,其中 QuorumPeerMain 是 zookeeper 进程
[root@iZuf6hyvanq21thxm114s6Z bin]# jps
22002 Bootstrap
30455 QuorumPeerMain
30543 Jps
# 上述 情况 说明 zookeeper 服务已经启动成功
----------------------
常用命令总结
-----------
重启
./zkServer.sh restart ../conf/zoo1.cfg

./zkServer.sh restart
-----------
启动
./zkServer.sh start ../conf/zoo1.cfg

./zkServer.sh start
-----------
停止
./zkServer.sh stop ../conf/zoo1.cfg

./zkServer.sh stop
-----------
查看状态
./zkServer.sh status ../conf/zoo1.cfg

./zkServer.sh status
-----------
启动客户端
./zkCli.sh -server 127.0.0.1:2181
-----------
========
zookeeper 客户端 常用命令 总结
========
博文地址
https://www.cnblogs.com/shay-zhangjin/p/7759263.html
-------------------------------------
1 在 linux 终端 借助 zkCli.sh 脚本  连接到 zookeeper server 服务器 并打开 命令窗口,在命令窗口中 管理 zookeeper server
[root@iZuf6hyvanq21thxm114s6Z bin]# ./zkCli.sh -server 127.0.0.1:2181
Connecting to localhost:2181
2019-06-08 13:30:07,250 [myid:] - INFO  [main:Environment@109] - Client environment:zookeeper.version=3.5.5-390fe37ea45dee01bf87dc1c042b5e3dcce88653, built on 05/03/2019 12:07 GMT
2019-06-08 13:30:07,259 [myid:] - INFO  [main:Environment@109] - Client environment:host.name=iZuf6hyvanq21thxm114s6Z
2019-06-08 13:30:07,259 [myid:] - INFO  [main:Environment@109] - Client environment:java.version=11.0.2
2019-06-08 13:30:07,261 [myid:] - INFO  [main:Environment@109] - Client environment:java.vendor=Oracle Corporation
2019-06-08 13:30:07,261 [myid:] - INFO  [main:Environment@109] - Client environment:java.home=/usr/java/jdk-11.0.2
2019-06-08 13:30:07,262 [myid:] - INFO  [main:Environment@109] - Client environment:java.class.path=/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../zookeeper-server/target/classes:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../build/classes:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../zookeeper-server/target/lib/*.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../build/lib/*.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/zookeeper-jute-3.5.5.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/zookeeper-3.5.5.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/slf4j-log4j12-1.7.25.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/slf4j-api-1.7.25.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/netty-all-4.1.29.Final.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/log4j-1.2.17.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/json-simple-1.1.1.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jline-2.11.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-util-9.4.17.v20190418.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-servlet-9.4.17.v20190418.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-server-9.4.17.v20190418.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-security-9.4.17.v20190418.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-io-9.4.17.v20190418.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-http-9.4.17.v20190418.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/javax.servlet-api-3.1.0.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jackson-databind-2.9.8.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jackson-core-2.9.8.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jackson-annotations-2.9.0.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/commons-cli-1.2.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/audience-annotations-0.5.0.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../zookeeper-*.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../zookeeper-server/src/main/resources/lib/*.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../conf:/usr/java/jdk-11.0.2/lib/tools.jar:/usr/java/jdk-11.0.2/lib/dt.jar:/usr/java/jdk-11.0.2/lib
2019-06-08 13:30:07,262 [myid:] - INFO  [main:Environment@109] - Client environment:java.library.path=/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib
2019-06-08 13:30:07,262 [myid:] - INFO  [main:Environment@109] - Client environment:java.io.tmpdir=/tmp
2019-06-08 13:30:07,262 [myid:] - INFO  [main:Environment@109] - Client environment:java.compiler=<NA>
2019-06-08 13:30:07,262 [myid:] - INFO  [main:Environment@109] - Client environment:os.name=Linux
2019-06-08 13:30:07,262 [myid:] - INFO  [main:Environment@109] - Client environment:os.arch=amd64
2019-06-08 13:30:07,262 [myid:] - INFO  [main:Environment@109] - Client environment:os.version=3.10.0-957.1.3.el7.x86_64
2019-06-08 13:30:07,262 [myid:] - INFO  [main:Environment@109] - Client environment:user.name=root
2019-06-08 13:30:07,263 [myid:] - INFO  [main:Environment@109] - Client environment:user.home=/root
2019-06-08 13:30:07,263 [myid:] - INFO  [main:Environment@109] - Client environment:user.dir=/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin
2019-06-08 13:30:07,263 [myid:] - INFO  [main:Environment@109] - Client environment:os.memory.free=11MB
2019-06-08 13:30:07,265 [myid:] - INFO  [main:Environment@109] - Client environment:os.memory.max=247MB
2019-06-08 13:30:07,265 [myid:] - INFO  [main:Environment@109] - Client environment:os.memory.total=15MB
2019-06-08 13:30:07,276 [myid:] - INFO  [main:ZooKeeper@868] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@1ee807c6
2019-06-08 13:30:07,281 [myid:] - INFO  [main:X509Util@79] - Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation
2019-06-08 13:30:07,296 [myid:] - INFO  [main:ClientCnxnSocket@237] - jute.maxbuffer value is 4194304 Bytes
2019-06-08 13:30:07,304 [myid:] - INFO  [main:ClientCnxn@1653] - zookeeper.request.timeout value is 0. feature enabled=
ZooKeeper -server host:port cmd args
        addauth scheme auth
        close 
        config [-c] [-w] [-s]
        connect host:port
        create [-s] [-e] [-c] [-t ttl] path [data] [acl]
        delete [-v version] path
        deleteall path
        delquota [-n|-b] path
        get [-s] [-w] path
        getAcl [-s] path
        history 
        listquota path
        ls [-s] [-w] [-R] path
        ls2 path [watch]
        printwatches on|off
        quit 
        reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*]
        redo cmdno
        removewatches path [-c|-d|-a] [-l]
        rmr path
        set [-s] [-v version] path data
        setAcl [-s] [-v version] [-R] path acl
        setquota -n|-b val path
        stat [-w] path
        sync path
Command not found: Command not found –server
[root@iZuf6hyvanq21thxm114s6Z bin]# ./zkCli.sh -server 127.0.0.1:2181
Connecting to 127.0.0.1:2181
2019-06-08 13:31:11,068 [myid:] - INFO  [main:Environment@109] - Client environment:zookeeper.version=3.5.5-390fe37ea45dee01bf87dc1c042b5e3dcce88653, built on 05/03/2019 12:07 GMT
2019-06-08 13:31:11,091 [myid:] - INFO  [main:Environment@109] - Client environment:host.name=iZuf6hyvanq21thxm114s6Z
2019-06-08 13:31:11,091 [myid:] - INFO  [main:Environment@109] - Client environment:java.version=11.0.2
2019-06-08 13:31:11,093 [myid:] - INFO  [main:Environment@109] - Client environment:java.vendor=Oracle Corporation
2019-06-08 13:31:11,093 [myid:] - INFO  [main:Environment@109] - Client environment:java.home=/usr/java/jdk-11.0.2
2019-06-08 13:31:11,094 [myid:] - INFO  [main:Environment@109] - Client environment:java.class.path=/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../zookeeper-server/target/classes:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../build/classes:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../zookeeper-server/target/lib/*.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../build/lib/*.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/zookeeper-jute-3.5.5.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/zookeeper-3.5.5.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/slf4j-log4j12-1.7.25.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/slf4j-api-1.7.25.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/netty-all-4.1.29.Final.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/log4j-1.2.17.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/json-simple-1.1.1.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jline-2.11.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-util-9.4.17.v20190418.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-servlet-9.4.17.v20190418.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-server-9.4.17.v20190418.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-security-9.4.17.v20190418.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-io-9.4.17.v20190418.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-http-9.4.17.v20190418.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/javax.servlet-api-3.1.0.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jackson-databind-2.9.8.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jackson-core-2.9.8.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jackson-annotations-2.9.0.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/commons-cli-1.2.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/audience-annotations-0.5.0.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../zookeeper-*.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../zookeeper-server/src/main/resources/lib/*.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../conf:/usr/java/jdk-11.0.2/lib/tools.jar:/usr/java/jdk-11.0.2/lib/dt.jar:/usr/java/jdk-11.0.2/lib
2019-06-08 13:31:11,094 [myid:] - INFO  [main:Environment@109] - Client environment:java.library.path=/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib
2019-06-08 13:31:11,094 [myid:] - INFO  [main:Environment@109] - Client environment:java.io.tmpdir=/tmp
2019-06-08 13:31:11,094 [myid:] - INFO  [main:Environment@109] - Client environment:java.compiler=<NA>
2019-06-08 13:31:11,094 [myid:] - INFO  [main:Environment@109] - Client environment:os.name=Linux
2019-06-08 13:31:11,094 [myid:] - INFO  [main:Environment@109] - Client environment:os.arch=amd64
2019-06-08 13:31:11,094 [myid:] - INFO  [main:Environment@109] - Client environment:os.version=3.10.0-957.1.3.el7.x86_64
2019-06-08 13:31:11,094 [myid:] - INFO  [main:Environment@109] - Client environment:user.name=root
2019-06-08 13:31:11,095 [myid:] - INFO  [main:Environment@109] - Client environment:user.home=/root
2019-06-08 13:31:11,095 [myid:] - INFO  [main:Environment@109] - Client environment:user.dir=/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin
2019-06-08 13:31:11,095 [myid:] - INFO  [main:Environment@109] - Client environment:os.memory.free=11MB
2019-06-08 13:31:11,097 [myid:] - INFO  [main:Environment@109] - Client environment:os.memory.max=247MB
2019-06-08 13:31:11,097 [myid:] - INFO  [main:Environment@109] - Client environment:os.memory.total=15MB
2019-06-08 13:31:11,100 [myid:] - INFO  [main:ZooKeeper@868] - Initiating client connection, connectString=127.0.0.1:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@1ee807c6
2019-06-08 13:31:11,114 [myid:] - INFO  [main:X509Util@79] - Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation
2019-06-08 13:31:11,124 [myid:] - INFO  [main:ClientCnxnSocket@237] - jute.maxbuffer value is 4194304 Bytes
2019-06-08 13:31:11,141 [myid:] - INFO  [main:ClientCnxn@1653] - zookeeper.request.timeout value is 0. feature enabled=
Welcome to ZooKeeper!
JLine support is enabled
2019-06-08 13:31:11,216 [myid:127.0.0.1:2181] - INFO  [main-SendThread(127.0.0.1:2181):ClientCnxn$SendThread@1112] - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
2019-06-08 13:31:11,241 [myid:127.0.0.1:2181] - INFO  [main-SendThread(127.0.0.1:2181):ClientCnxn$SendThread@959] - Socket connection established, initiating session, client: /127.0.0.1:42304, server: localhost/127.0.0.1:2181
2019-06-08 13:31:11,266 [myid:127.0.0.1:2181] - INFO  [main-SendThread(127.0.0.1:2181):ClientCnxn$SendThread@1394] - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x10038b257280001, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
[zk: 127.0.0.1:2181(CONNECTED) 0]
#备注:现在  客户端 已经与 服务端 建立连接,并 新开 cmd 窗口,等待 命令的输入  
# [root@iZuf6hyvanq21thxm114s6Z bin]# ./zkCli.sh  -timeout 100 -server 127.0.0.1:2181 命令解析 
1 -timeout 100     timeout指定当前client与zkserver的连接超时时间(毫秒),如果在给定时间内zkserver没有client端发来的心跳,则连接失效;
3 -r               只读模式,Client只读取zk数据;不指定则Client可以读和写
5 -server ip:port  要连接哪一台zkserver,port默认2181. Zk由多台机器组成,连接任意一台看到的zk上的数据都是相同的(统一视图)
-------------------------------------
########
[zk: 127.0.0.1:2181(CONNECTED) 0] help
########
注解:
帮助命令,zookeeper 服务器 给  client 客户端 提供的 命令 和 数据库服务器 提供给 sqlClient的命令类似 即 CRUD 命令
[zk: 127.0.0.1:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd args
        addauth scheme auth
        close 
        config [-c] [-w] [-s]
        connect host:port
        create [-s] [-e] [-c] [-t ttl] path [data] [acl]
        delete [-v version] path
        deleteall path
        delquota [-n|-b] path
        get [-s] [-w] path
        getAcl [-s] path
        history 
        listquota path
        ls [-s] [-w] [-R] path【完】
        ls2 path [watch]
        printwatches on|off
        quit 
        reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*]
        redo cmdno
        removewatches path [-c|-d|-a] [-l]
        rmr path
        set [-s] [-v version] path data
        setAcl [-s] [-v version] [-R] path acl
        setquota -n|-b val path
        stat [-w] path
        sync path
-------------------------------------
########
[zk: 127.0.0.1:2181(CONNECTED) 0]  ls /
########
注解:
列出绝对路径path下的所有子节点信息

[zk: 127.0.0.1:2181(CONNECTED) 1] ls /
[zookeeper]
[zk: 127.0.0.1:2181(CONNECTED) 2] ls /zookeeper
[config, quota]
[zk: 127.0.0.1:2181(CONNECTED) 3] ls /zookeeper/quota
[]
[zk: 127.0.0.1:2181(CONNECTED) 4] ls /zookeeper/config
[]
-------------------------------------
########
[zk: 127.0.0.1:2181(CONNECTED) 0] stat /zookeeper
########
注解:
列出绝对路径path对应的znode节点的状态信息,也就是znode元数据
[zk: 127.0.0.1:2181(CONNECTED) 5] stat /zookeeper
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x0
cversion = -2
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 2
-------------------------------------
########
[zk: 127.0.0.1:2181(CONNECTED) 0] ls2 /zookeeper
########
注解:
增强版的ls path       ls2 path
ls2 path返回的信息包括2部分:子节点列表 + 当前节点的stat信息
[zk: 127.0.0.1:2181(CONNECTED) 6] ls2 /zookeeper
'ls2' has been deprecated. Please use 'ls [-s] path' instead.
[config, quota]
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x0
cversion = -2
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 2

-------------------------------------
########
[zk: 127.0.0.1:2181(CONNECTED) 0] get /zookeeper
########
注解:
查询节点保存的数据  get path
列出节点保存的数据,以及节点的元数据(相当于get path内部调用了stat path)

-------------------------------------
########
[zk: 127.0.0.1:2181(CONNECTED) 0] quit
########
注解: 退出

-------------------------------------
########
[zk: 127.0.0.1:2181(CONNECTED) 0] 
########
注解:
备注: 其他的命令 基本没怎么使用过,这里就 不详细 解释了
-------------------------------------
========
当前root用户每次都要定位到 zookeeper 的 bin 目录下才能执行 其shell脚本
这里针对 root 用户定制一下shell环境变量
========

#定位当前登录用户 自己的 home 目录
[root@iZuf6hyvanq21thxm114s6Z etc]# cd ~
[root@iZuf6hyvanq21thxm114s6Z ~]# pwd
/root

#查看当前登录用户的 home 目录下 有哪些文件
[root@iZuf6hyvanq21thxm114s6Z ~]# ll -a
total 68
dr-xr-x---.  6 root root  4096 May 29 11:33 .
dr-xr-xr-x. 19 root root  4096 May 28 12:24 ..
-rw-------   1 root root 12403 Jun  8 13:59 .bash_history
-rw-r--r--.  1 root root    18 Dec 29  2013 .bash_logout
-rw-r--r--.  1 root root   176 Dec 29  2013 .bash_profile
-rw-r--r--.  1 root root   176 Dec 29  2013 .bashrc
drwxr-xr-x   3 root root  4096 Dec 12 15:59 .cache
-rw-r--r--.  1 root root   100 Dec 29  2013 .cshrc
drwxr-xr-x   2 root root  4096 Dec 12 15:59 .pip
drwxr-----   3 root root  4096 May 28 10:23 .pki
-rw-r--r--   1 root root   205 Jan 31 14:56 .pydistutils.cfg
drwx------   2 root root  4096 Jan 31 14:56 .ssh
-rw-r--r--.  1 root root   129 Dec 29  2013 .tcshrc
-rw-------   1 root root  2428 May 29 11:33 .viminfo
# 对 .bash_profile 文件添加如下两行
#备注:  当前zookeeper 的安装目录 /usr/local/zookeeper/apache-zookeeper-3.5.5-bin/
-------------------------------------------------
#查看 .bash_profile 文件内容
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin
-------------------------------------------------
# 将上述文件 更新成下术文件
-------------------------------------------------
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin
#zookeeper安装目录
ZOOKEEPER_HOME=/usr/local/zookeeper/apache-zookeeper-3.5.5-bin
#放到 PATH中去,目录分隔符是 : 
PATH=$ZOOKEEPER_HOME/bin:$PATH
# 扩大PATH变量的作用域到 父shell 
export PATH
-------------------------------------------------
#用 source 或 . 执行shell脚本,将shell脚本中的变量 导出到当前shell中来
# 第一个. 是命令 第二个点是当前目录,两个点之间有空格
#[root@iZuf6hyvanq21thxm114s6Z ~]# . ./.bash_profile 
[root@iZuf6hyvanq21thxm114s6Z ~]# source .bash_profile 
# 当前shell中查看 PATH 变量中是否有 zookeeper 的bin 目录
[root@iZuf6hyvanq21thxm114s6Z ~]# echo $PATH
/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin:/usr/java/jdk-11.0.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin:/root/bin
# 后续想要执行 zkServer.sh 时 直接 到 任意目录下执行 即可,例如 
[root@iZuf6hyvanq21thxm114s6Z ~]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: standalone 

========
zookeeper 开机自启 设置
========
博文地址
# 到 /etc/init.d 新建可执行文件
[root@iZuf6hyvanq21thxm114s6Z /]# cd /etc/init.d
# 新建 zookeeper 文件
[root@iZuf6hyvanq21thxm114s6Z init.d]# touch zookeeper
# 对 zookeeper 文件 添加可执行权限
[root@iZuf6hyvanq21thxm114s6Z init.d]# chmod +x zookeeper
# 对 可执行文件 zookeeper 添加如下内容
------------------------
#!/bin/bash 
#zookeeper安装目录
ZOOKEEPER_HOME=/usr/local/zookeeper/apache-zookeeper-3.5.5-bin
#case 语法 ($0 脚本名,$1 执行文件时 第一个入参)
case $1 in 
        start)     
            sudo     $ZOOKEEPER_HOME/bin/zkServer.sh start;; 
        stop)     
            sudo     $ZOOKEEPER_HOME/bin/zkServer.sh stop;; 
        status)     
            sudo     $ZOOKEEPER_HOME/bin/zkServer.sh status;; 
        restart) 
            sudo        $ZOOKEEPER_HOME/bin/zkServer.sh restart;; 
        *) 
            echo "zkServer.sh require start|stop|status|restart" ;; 
esac
------------------------
# 测试启动服务是否可用
[root@iZuf6hyvanq21thxm114s6Z init.d]# service zookeeper status
Error: JAVA_HOME is not set and java could not be found in PATH.
#备注: 上面没有发现 JAVA_HOME 环境变量, 在 PATH 变量的值中也没有发现 java 
# 所以 这里需要重新设置 zookeeper 可执行文件如下 (记得将 \r\n 替换成 \n ,否则 linux执行会弄错换行符)
------------------------
#!/bin/bash 
# jdk 安装 home 目录
JAVA_HOME=/usr/java/jdk-11.0.2
# zookeeper安装目录
ZOOKEEPER_HOME=/usr/local/zookeeper/apache-zookeeper-3.5.5-bin
# PATH 
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
PATH=$JAVA_HOME/bin:$PATH
# 变量作用域 扩大到父shell
export JAVA_HOME
export PATH
#case 语法 ($0 脚本名,$1 执行文件时 第一个入参)
case $1 in 
        start)     
            sudo     $ZOOKEEPER_HOME/bin/zkServer.sh start;; 
        stop)     
            sudo     $ZOOKEEPER_HOME/bin/zkServer.sh stop;; 
        status)     
            sudo     $ZOOKEEPER_HOME/bin/zkServer.sh status;; 
        restart) 
            sudo        $ZOOKEEPER_HOME/bin/zkServer.sh restart;; 
        *) 
            echo "zkServer.sh require start|stop|status|restart" ;; 
esac
-----------------------------------------------------------
执行上述命令后 依然会失败 
[root@iZuf6hyvanq21thxm114s6Z init.d]# service zookeeper status
Error: JAVA_HOME is not set and java could not be found in PATH.
#最后的解决办法是, 上面的 Error: JAVA_HOME is not set and java could not be found in PATH. 
#是在 zookeeper home 目录下 bin 的 zkEnv.sh 脚本中 打印的,所以 这里就 在 zkEnv.sh 脚本中添加 下面一行
#JAVA_HOME="/usr/java/jdk-11.0.2" 就可以了。。。
# 最后规整一下 zookeeper 可执行文件的内容 如下: 
------------------------
#!/bin/bash 
#zookeeper安装目录
ZOOKEEPER_HOME=/usr/local/zookeeper/apache-zookeeper-3.5.5-bin
#case 语法 ($0 脚本名,$1 执行文件时 第一个入参)
case $1 in 
        start)     
            sudo     $ZOOKEEPER_HOME/bin/zkServer.sh start;; 
        stop)     
            sudo     $ZOOKEEPER_HOME/bin/zkServer.sh stop;; 
        status)     
            sudo     $ZOOKEEPER_HOME/bin/zkServer.sh status;; 
        restart) 
            sudo        $ZOOKEEPER_HOME/bin/zkServer.sh restart;; 
        *) 
            echo "zkServer.sh require start|stop|status|restart" ;; 
esac
------------------------
# 最后再次验证 service zookeeper status 或 zookeeper status
#[root@iZuf6hyvanq21thxm114s6Z init.d]# service zookeeper status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: standalone
# 添加到启动项目
[root@iZuf6hyvanq21thxm114s6Z init.d]# chkconfig --add zookeeper
service zookeeper does not support chkconfig
# 解决上面的方法就是 对 zookeeper 启动文件 的 #!/bin/bash 下 再添加两行代码,文件内容如下
# 具体的解释见 https://maosheng.iteye.com/blog/2224962
 ------------------------
 #!/bin/bash
# chkconfig:2345 10 90
# description:zookeeper

#zookeeper安装目录
ZOOKEEPER_HOME=/usr/local/zookeeper/apache-zookeeper-3.5.5-bin
#case 语法 ($0 脚本名,$1 执行文件时 第一个入参)
case $1 in
        start)
                sudo    $ZOOKEEPER_HOME/bin/zkServer.sh start;;
        stop)
                sudo    $ZOOKEEPER_HOME/bin/zkServer.sh stop;;
        status)
                sudo    $ZOOKEEPER_HOME/bin/zkServer.sh status;;
        restart)
                sudo            $ZOOKEEPER_HOME/bin/zkServer.sh restart;;
        *)
                echo "zkServer.sh require start|stop|status|restart" ;;
esac
 ------------------------
 # 接着上面的操作, 继续添加启动项目
[root@iZuf6hyvanq21thxm114s6Z init.d]# chkconfig --add zookeeper
# 检测启动项中是否有 zookeeper 即chkconfig --list zookeeper 或 chkconfig --list  
zookeeper       0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@iZuf6hyvanq21thxm114s6Z init.d]# chkconfig --list
Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.

      If you want to list systemd services use 'systemctl list-unit-files'.
      To see services enabled on particular target use
      'systemctl list-dependencies [target]'.

aegis           0:off   1:off   2:on    3:on    4:on    5:on    6:off
agentwatch      0:off   1:off   2:on    3:on    4:on    5:on    6:off
netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
tomcat          0:off   1:off   2:on    3:on    4:on    5:on    6:off
zookeeper       0:off   1:off   2:on    3:on    4:on    5:on    6:off
# 重新启动
reboot
# 重新启动后 查看 zookeeper 的状态(不用start)
Welcome to Alibaba Cloud Elastic Compute Service !
[root@iZuf6hyvanq21thxm114s6Z ~]# service zookeeper status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: standalone
#linux 下的 init脚本 执行 init.d 目录下的可执行文件时 会默认传 start 参数到 里面去 
博文地址
https://www.centos.bz/2016/10/adding-nginx-as-a-system-service/
init脚本(也称为服务启动脚本或甚至sysv脚本)是一个符合某种标准的shell脚本。 
该脚本通过诸如开始,停止和其他等命令来控制守护进程应用程序。
首先,当计算机启动时,init守护程序将使用start参数运行脚本。 另一种可能性是通过从shell手动执行脚本
-----------------------------------------------------------
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值