ZooKeeper(二)-在Linux上的伪集群布置

来源:互联网 发布:百事通酒店软件 编辑:程序博客网 时间:2024/05/18 00:44

Zookeeper不但可以在单机上运行单机模式Zookeeper,而且可以在单机模拟集群模式 Zookeeper的运行,也就是将不同节点运行在同一台机器。我们知道伪分布模式下Hadoop的操作和分布式模式下有着很大的不同,但是在集群为分布 式模式下对Zookeeper的操作却和集群模式下没有本质的区别。显然,集群伪分布式模式为我们体验Zookeeper和做一些尝试性的实验提供了很大 的便利。比如,我们在实验的时候,可以先使用少量数据在集群伪分布模式下进行测试。当测试可行的时候,再将数据移植到集群模式进行真实的数据实验。这样不 但保证了它的可行性,同时大大提高了实验的效率。这种搭建方式,比较简便,成本比较低,适合测试和学习,如果你的手头机器不足,就可以在一台机器上部署了 3个server。
伪集群布置
方法一: 在机器上准备一份zookeeper文件,为zookeeper准备不同的zoo.cfg文件,如zoo0.cfg,zoo1.cfg,zoo2.cfg。再根据cfg文件准备不同的data和log文件夹。每个配置文档模拟一台机器,也就是说单台机器及上运行多个Zookeeper实例。但是,必须保证每个配置文档的各个端口号不能冲突,除了clientPort不同之外,dataDir也不同。另外,还要在dataDir所对应的目录中创建myid文件来指定对应的Zookeeper服务器实例。
方法二: 在机器上准备多份zookeeper文件。本人用的就是这个方法,具体步骤如下。
目录结构
这里写图片描述
要注意的是,你打算在你的单机上建立几个ZooKeeper服务器,你就建立几个目录,然后在每个目录里都解压zookeeper。

部署规模为3的单机伪机群
(1)server0
新建目录data:/tmp/zookeeper/server0/zk/data
新建目录logs:/tmp/zookeeper/server0/zk/log
新建文件myid:/tmp/zookeeper/server0/zk/data/myid
切换到data 目录,新建文件myid ,新建myid的命令如下: gedit myid
文件内容如下:
这里写图片描述
然后在config目录下新建zoo.cfg文件,内容如下

tickTime=2000 initLimit=10 syncLimit=5 dataDir=/tmp/zookeeper/server0/zk/datadataLogDir=/tmp/zookeeper/server0/zk/logsclientPort=4180server.0=127.0.0.1:8080:7770server.1=127.0.0.1:8081:7771server.2=127.0.0.1:8082:7772

(2)server1
新建目录data:/tmp/zookeeper/server1/zk/data
新建目录logs:/tmp/zookeeper/server1/zk/log
新建文件myid:/tmp/zookeeper/server1/zk/data/myid
切换到data 目录,新建文件myid ,新建myid的命令如下: gedit myid
这里写图片描述
新建zoo.cfg

tickTime=2000 initLimit=10 syncLimit=5 dataDir=/tmp/zookeeper/server1/zk/datadataLogDir=/tmp/zookeeper/server1/zk/logsclientPort=4181server.0=127.0.0.1:8080:7770server.1=127.0.0.1:8081:7771server.2=127.0.0.1:8082:7772

(三)server2
懒得写。

启动服务器和客户端
启动ZooKeeper伪机群的所有服务器
进入到各个服务的bin目录下。依次启动zookeeper服务器。启动完成后,查看服务器状态,发现他们的身份分别是follower和leader。这就表示你部署成功了。你也可以启动客户端,测试连接。

[root@localhost ~]# cd /tmp/zookeeper/server2/zk/bin[root@localhost bin]# ./zkServer.sh start ZooKeeper JMX enabled by defaultUsing config: /tmp/zookeeper/server2/zk/bin/../conf/zoo.cfgStarting zookeeper ... STARTED[root@localhost bin]# jps4736 QuorumPeerMain4867 QuorumPeerMain4931 QuorumPeerMain4966 Jps[root@localhost bin]# zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /tmp/zookeeper/server2/zk/bin/../conf/zoo.cfgMode: follower[root@localhost bin]# cd /tmp/zookeeper/server1/zk/bin\[root@localhost bin]# ./zkCli.sh stopConnecting to localhost:2181

截图如下:注意我标红的信息。
这里写图片描述

连接成功后,记得stop连接后,再退出终端。
命令是:
[root@localhost bin]# ./zkServer.sh stop
ZooKeeper JMX enabled by default
Using config: /tmp/zookeeper/server0/zk/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED

原创粉丝点击