Zk是一个分布式服务框架,提供了协调分布式应用的基本服务,zk集群主要是保证服务的可靠性和稳定性,介绍一下集群的安装与配置,在安装之前需要安装好jdk,jdk的安装请网上查找相应的方法
一、zookeeper的下载
下载完成后,通过winscp工具将zookeeper-3.4.6.tar.gz上传至centos的/usr/local/src目录下
二、zookeeper的解压与安装
1、用putty工具连接centos,进入zookeeper-3.4.6.tar.gz的目录
[root@chaun bin]# cd /usr/local/src/
2、解压zookeeper,执行如下命令,解压至上一级目录
[root@chaun src]# tar -zxvf zookeeper-3.4.6.tar.gz -C ..
3、进入上一级目录
[root@chaun local]# cd ..
4、进入zookeeper-3.4.6目录
[root@chaun local]# cd zookeeper-3.4.6/
5、创建data目录
[root@chaun local]# mkdir data
6、进入conf配置目录
[root@chaun zookeeper-3.4.6]# cd conf/
7、拷贝配置文件zoo_sample.cfg文件
[root@chaun conf]# cp zoo_sample.cfg zoo.cfg
8、编辑zoo.cfg配置文件
[root@chaun conf]# vi zoo.cfg
dataDir为步骤5创建的目录
server.1、server.2和server.3为zookeeper集群中的3台机器,请根据实际的ip地址配置好,在上面的配置文件中"server.id=host:port:port"中的第一个port是从机器(follower)连接到主机器(leader)的端口号,第二个port是进行leadership选举的端口号
1、接下来在dataDir的目录下,创建一个文件名为myid的文件,文件中的内容只有一行,为本主机对应的id值,也就是上图中server.id中的id。例如:在服务器1中的myid的内容应该写入1
[root@chaun conf]# cd /usr/local/zookeeper-3.4.6/data/
[root@chaun data]# vi myid
输入1,并按:wq!保存
二、远程复制zookeeper的安装文件
[root@chaun data]# scp -r /usr/local/zookeeper-3.4.6/ 192.168.33.198:/usr/local/
如果提示scp找不到命令,请yum安装执行命令yum install openssh-clients(分别在三台集群机器上执行)
在远程复制时会提示输入远程服务器的用户名和命令,请输入并完成复制
[root@chaun data]# scp -r /usr/local/zookeeper-3.4.6/ 192.168.34.27:/usr/local/
拷贝完成后修改对应的机器上的myid。例如修改192.168.34.27中的myid如下:
[root@chaun conf]# cd /usr/local/zookeeper-3.4.6/data/
[root@chaun data]# vi myid
输入2,并按:wq!保存
修改192.168.33.198中的myid如下:
[root@chaun conf]# cd /usr/local/zookeeper-3.4.6/data/
[root@chaun data]# vi myid
输入3,并按:wq!保存
三、启动zookeeper集群
在ZooKeeper集群的每个结点上,执行启动ZooKeeper服务的脚本,执行如下脚本:
[root@chaun bin]# /usr/local/zookeeper-3.4.6/bin/zkServer.sh start
[root@chaun1 bin]# /usr/local/zookeeper-3.4.6/bin/zkServer.sh start
[root@chaun2 bin]# /usr/local/zookeeper-3.4.6/bin/zkServer.sh start
如下图示:
如上依次启动了所有机器上的Zookeeper之后可以通过ZooKeeper的脚本来查看启动状态,包括集群中各个结点的角色(或是Leader,或是Follower),如下所示,是在ZooKeeper集群中的每个结点上查询的结果:
192.168.33.114
192.168.34.27
192.168.33.198
通过上面可以看到192.168.34.27为leader其他两台机器为follower,另外,可以通过客户端脚本,连接到ZooKeeper集群上。对于客户端来说,ZooKeeper是一个整体(ensemble),连接到ZooKeeper集群实际上感觉在独享整个集群的服务,所以,你可以在任何一个结点上建立到服务集群的连接,在windows中连接centos的zk,如下图示:
四、停止zookeeper
[root@chaun data] /usr/local/zookeeper-3.4.6/bin/zkServer.sh stop
至此,zookeeper集群安装完成
Zookeeper相关的注意事项:
在Zookeeper集群环境下只要一半以上的机器正常启动了,那么Zookeeper服务将是可用的。因此,集群上部署Zookeeper最好使用奇数台机器,这样如果有5台机器,只要3台正常工作则服务将正常使用
原文:http://my.oschina.net/u/1757031/blog/492263