Mac10.14安装zookeeper并启动

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhangvalue/article/details/89179939

查看可用版本

使用命令$ brew info zookeeper查看可用版本信息:

直接使用brew安装zookeeper

安装brew install zookeeper

安装完成之后进入

配置/usr/local/etc/zookeeper目录下面的zoo.cfg

ever:~ zhangsf$ cd /usr/local/etc/zookeeper/
ever:zookeeper zhangsf$ ls
defaults  log4j.properties  zoo.cfg  zoo.cfg.bak  zoo_sample.cfg

进入vim  zoo.cfg 

 1 # The number of milliseconds of each tick
  2 tickTime=2000
  3 # The number of ticks that the initial 
  4 # synchronization phase can take
  5 initLimit=10
  6 # The number of ticks that can pass between 
  7 # sending a request and getting an acknowledgement
  8 syncLimit=5
  9 # the directory where the snapshot is stored.
 10 # do not use /tmp for storage, /tmp here is just 
 11 # example sakes.
 12 dataDir=/usr/local/var/run/zookeeper/data
 13 dataLogDir=/Users/zhangsf/data/zookeeper/logs
 14 # the port at which the clients will connect
 15 clientPort=2181
 16 # the maximum number of client connections.
 17 # increase this if you need to handle more clients
 18 #maxClientCnxns=60
 19 #
 20 # Be sure to read the maintenance section of the 
 21 # administrator guide before turning on autopurge.
 22 #
 23 # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
 24 #
 25 # The number of snapshots to retain in dataDir
 26 #autopurge.snapRetainCount=3
 27 # Purge task interval in hours
 28 # Set to "0" to disable auto purge feature
 29 #autopurge.purgeInterval=1
 30 server.1=127.0.0.1:2888:3888

参数详解:

  • tickTime:ZK中的一个时间单元。ZK中所有时间都是以这个时间单元为基础,进行整数倍配置的。例如,session的最小超时时间是2*tickTime。
  • initLimit:Follower在启动过程中,会从Leader同步所有最新数据,然后确定自己能够对外服务的起始状态。Leader允许F在initLimit时间内完成这个工作。通常情况下,我们不用太在意这个参数的设置。如果ZK集群的数据量确实很大了,F在启动的时候,从Leader上同步数据的时间也会相应变长,因此在这种情况下,有必要适当调大这个参数了。(No Java system property)
  • syncLimit:在运行过程中,Leader负责与ZK集群中所有机器进行通信,例如通过一些心跳检测机制,来检测机器的存活状态。如果L发出心跳包在syncLimit之后,还没有从F那里收到响应,那么就认为这个F已经不在线了。注意:不要把这个参数设置得过大,否则可能会掩盖一些问题。(No Java system property)
  • dataDir:存储快照文件snapshot的目录。默认情况下,事务日志也会存储在这里。建议同时配置参数dataLogDir, 事务日志的写性能直接影响zk性能。

         -clientPort: 客户端连接server的端口,即对外服务端口,一般设置为2181吧。

  • server.x=[hostname]:nnnnn[:nnnnn]:这里的x是一个数字,与myid文件中的id是一致的。右边可以配置两个端口,第一个端口用于F和L之间的数据同步和其它通信,第二个端口用于Leader选举过程中投票通信。

zookeeper操作

启动zookeeper

使用命令  zkServer,结果启动失败

ever:zookeeper zhangsf$ zkServer
ZooKeeper JMX enabled by default
Using config: /usr/local/etc/zookeeper/zoo.cfg
Usage: ./zkServer.sh {start|start-foreground|stop|restart|status|upgrade|print-cmd}

接下来使用 zkServer start:

ever:zookeeper zhangsf$ zkServer start
ZooKeeper JMX enabled by default
Using config: /usr/local/etc/zookeeper/zoo.cfg
Starting zookeeper ... STARTED

可见启动成功,并且使用了/usr/local/etc/zookeeper/下的配置文件zoo.cfg

连接zookeeper

执行命令 zkCli,输出

ever:zookeeper zhangsf$ zkCli
Connecting to localhost:2181
Welcome to ZooKeeper!
JLine support is enabled

WATCHER::

WatchedEvent state:SyncConnected type:None path:null

随便输入ls,然后终端变成了

Connecting to localhost:2181
Welcome to ZooKeeper!
JLine support is enabled

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0] ls
[zk: localhost:2181(CONNECTED) 1] ls
[zk: localhost:2181(CONNECTED) 2] 

其实这是JLine交互控制台,会开启一个和zookeeper服务器之间的session.

可以通过执行quit命令,即[zk: localhost:2181(CONNECTED) 2] quit退出交互控制台.

[zk: localhost:2181(CONNECTED) 0] ls
[zk: localhost:2181(CONNECTED) 1] ls
[zk: localhost:2181(CONNECTED) 2] quit
Quitting...
ever:zookeeper zhangsf$ 

查看zookeeper状态

执行 zkServer status

ever:zookeeper zhangsf$ zkServer status
ZooKeeper JMX enabled by default
Using config: /usr/local/etc/zookeeper/zoo.cfg
Mode: standalone
ever:zookeeper zhangsf$ 

这里的Mode为standalone指的是单机模式

关闭zookeeper

执行 zkServer stop

ever:zookeeper zhangsf$ zkServer stop
ZooKeeper JMX enabled by default
Using config: /usr/local/etc/zoo

猜你喜欢

转载自blog.csdn.net/zhangvalue/article/details/89179939