安装zookeeper(单机,伪集群)

 1.登录zookeeper官网下载 https://zookeeper.apache.org/apache

zookeeper-3.4.8.tar.gzvim

 

解压:tar -zxvf zookeeper-3.4.8.tar.gz服务器

 

1.单机分布式

 

进入conf文件夹 建立一个配置文件zoo.cfg。测试

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/zk/data
clientPort=2181

前提建立了/usr/local/zookeeper/zk/data文件夹spa

 

 

 tickTime:Zookeeper 服务器之间或客户端与服务器之间心跳的时间间隔。
dataDir:Zookeeper 保存数据的目录,默认状况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
clientPort:Zookeeper 服务器监听端口,用来接受客户端的访问请求。3d

 

配置完之后,就能够启动zookeeper服务了,进入Zookeeper/bin目录,运行下面的命令来启动Zookeeper服务日志

 

[root@localhost bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/software/zookeeper-3.4.8/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

默认加载conf名为 zoo.cfg文件,或者能够这样指定文件code

[root@localhost bin]# ./zkServer.sh start ../conf/zoo.cfg 
ZooKeeper JMX enabled by default
Using config: ../conf/zoo.cfg
Starting zookeeper ... STARTED

 

查看服务状态server

./zkServer.sh status ../conf/zoo.cfg 
ZooKeeper JMX enabled by default
Using config: ../conf/zoo.cfg
Mode: standalone

 

 使用Zookeeper的客户端来链接并测试了

 

$ ./zkCli.sh  
或  
$ ./zkCli.sh -server 127.0.0.1:2181 

链接以后能够时候help来查看有哪些命令可使用

 

 

[zk: 127.0.0.1:2181(CONNECTED) 0] ls / #查看根节点  
[zookeeper]  
   
[zk: 127.0.0.1:2181(CONNECTED) 1] create /mykey1 myvalue1 #建立一个新节点mykey1  
Created /mykey1  
[zk: 127.0.0.1:2181(CONNECTED) 2] create /mykey2 myvalue2 #建立一个新节点mykey2  
Created /mykey2  
   
[zk: 127.0.0.1:2181(CONNECTED) 13] ls / #查看根节点  
[mykey1, mykey2, zookeeper]  
   
[zk: 127.0.0.1:2181(CONNECTED) 23] get /mykey1 #获取mykey1节点  
myvalue1  
cZxid = 0x6  
ctime = Sat Sep 20 21:00:17 CST 2014  
mZxid = 0x8  
mtime = Sat Sep 20 21:01:06 CST 2014  
pZxid = 0x6  
cversion = 0  
dataVersion = 1  
aclVersion = 0  
ephemeralOwner = 0x0  
dataLength = 9  
numChildren = 0  
   
[zk: 127.0.0.1:2181(CONNECTED) 23] get /mykey2 #获取mykey2节点  
myvalue2  
cZxid = 0x6  
ctime = Sat Sep 20 21:00:17 CST 2014  
mZxid = 0x8  
mtime = Sat Sep 20 21:01:06 CST 2014  
pZxid = 0x6  
cversion = 0  
dataVersion = 1  
aclVersion = 0  
ephemeralOwner = 0x0  
dataLength = 9  
numChildren = 0  
   
[zk: 127.0.0.1:2181(CONNECTED) 24] set /mykey1 myvalue11 #获取mykey1节点  
[zk: 127.0.0.1:2181(CONNECTED) 25] set /mykey2 myvalue22 #获取mykey2节点  
   
[zk: 127.0.0.1:2181(CONNECTED) 26] set /mykey1 #删除mykey1节点  
[zk: 127.0.0.1:2181(CONNECTED) 27] set /mykey2 #删除mykey2节点  

 


 

 2.集群

 

注意事项

在一台机器上部署了3个server,须要注意的是在集群为分布式模式下咱们使用的每一个配置文档模拟一台机器,也就是说单台机器及上运行多个Zookeeper实例。可是,必须保证每一个配置文档的各个端口号不能冲突,除了clientPort不一样以外,dataDir也不一样。另外,还要在dataDir所对应的目录中建立myid文件来指定对应的Zookeeper服务器实例。

■ clientPort端口:若是在1台机器上部署多个server,那么每台机器都要不一样的 clientPort,好比 server1是2181,server2是2182,server3是2183

■ dataDir和dataLogDir:dataDir和dataLogDir也须要区分下,将数据文件和日志文件分开存放,同时每一个server的这两变量所对应的路径都是不一样的

■ server.X和myid: server.X 这个数字就是对应,data/myid中的数字。在3个server的myid文件中分别写入了0,1,2,那么每一个server中的zoo.cfg都配 server.0 server.2,server.3就好了。由于在同一台机器上,后面连着的2个端口,3个server都不要同样,不然端口冲突

 ---------------------------------------------

新建3个配置文件

内容以下

 zoo1.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/zk1/data
clientPort=2182
dataLogDir=/usr/local/zookeeper/zk1/logs

server.1=localhost:2287:3387
server.2=localhost:2288:3388
server.3=localhost:2289:3389

zoo2.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/zk2/data
clientPort=2183
dataLogDir=/usr/local/zookeeper/zk2/logs

server.1=localhost:2287:3387
server.2=localhost:2288:3388
server.3=localhost:2289:3389

zoo3.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/zk3/data
clientPort=2184
dataLogDir=/usr/local/zookeeper/zk3/logs

server.1=localhost:2287:3387
server.2=localhost:2288:3388
server.3=localhost:2289:3389

 

 每一个实例都初始化相应data和log文件,例如zoo1.cfg的

 

启动  zoo1.cfg ,好像成功了

[root@localhost bin]# ./zkServer.sh start ../conf/zoo1.cfg 
ZooKeeper JMX enabled by default
Using config: ../conf/zoo1.cfg
Starting zookeeper ... STARTED

查看状态发现,没成功

[root@localhost bin]# ./zkServer.sh status ../conf/zoo1.cfg 
ZooKeeper JMX enabled by default
Using config: ../conf/zoo1.cfg
Error contacting service. It is probably not running.

应该就是zoo1.cfg出错了,原来是配置文件有错误,要么路径错,要么mypid错了

zoo.cfg配置文件里dataDir指定的那个目录下建立myid文件,而且指定id,改id为你zoo.cfg文件中server.1=localhost:2888:3888中的    1.只要在myid头部写入1便可.

 

vim myid

 同理,为其余两个实例是指myid

 

 

在运行完第一条指令以后,会出现一些错误异常,产生异常信息的缘由是因为Zookeeper 服务的每一个实例都拥有全局配置信息,他们在启动的时候会随时随地的进行Leader选举操做。此时,第一个启动的Zookeeper须要和另外两个 Zookeeper实例进行通讯。可是,另外两个Zookeeper实例尚未启动起来,所以就产生了这的异样信息。咱们直接将其忽略便可,待把图中“2 号”和“3号”Zookeeper实例启动起来以后,相应的异常信息天然会消失。此时,能够经过下面三条命令,来查询。

 

[root@localhost bin]# ./zkServer.sh start ../conf/zoo1.cfg 
ZooKeeper JMX enabled by default
Using config: ../conf/zoo1.cfg
Starting zookeeper ... STARTED
[root@localhost bin]# ./zkServer.sh status ../conf/zoo1.cfg 
ZooKeeper JMX enabled by default
Using config: ../conf/zoo1.cfg
Error contacting service. It is probably not running.
[root@localhost bin]# ./zkServer.sh start ../conf/zoo2.cfg 
ZooKeeper JMX enabled by default
Using config: ../conf/zoo2.cfg
Starting zookeeper ... STARTED
[root@localhost bin]# ./zkServer.sh status ../conf/zoo2.cfg 
ZooKeeper JMX enabled by default
Using config: ../conf/zoo2.cfg
Mode: leader
[root@localhost bin]# ./zkServer.sh status ../conf/zoo1.cfg 
ZooKeeper JMX enabled by default
Using config: ../conf/zoo1.cfg
Mode: follower
[root@localhost bin]# ./zkServer.sh start ../conf/zoo3.cfg 
ZooKeeper JMX enabled by default
Using config: ../conf/zoo3.cfg
Starting zookeeper ... STARTED
[root@localhost bin]# ./zkServer.sh status ../conf/zoo3.cfg 
ZooKeeper JMX enabled by default
Using config: ../conf/zoo3.cfg
Mode: follower

成功

 


一些命令

启动
./zkServer.sh start ../conf/zoo1.cfg
中止
./zkServer.sh stop ../conf/zoo1.cfg
查看状态
./zkServer.sh status ../conf/zoo1.cfg
启动客户端
./zkCli.sh -server 127.0.0.1:2181 

 

 

 

 

 

 

 

出,fa

相关文章
相关标签/搜索