【zookeeper】zookeeper伪集群搭建

内容摘要

本文介绍了zookeeper伪集群搭建的详细步骤

集群搭建

最近公司用到了zookeeper做集群管理,这里按步骤记录一下其中的一些经验,也给后来的同学一些参考。由于这里只有一台服务器,因此搭建的其实是伪集群,多台服务器的搭建流程类似。

集群搭建环境

 

复制代码

发行版:CentOS-6.6 64bit 内核:2.6.32 CPU:intel-i7 3.6G 内存:2G

集群搭建步骤

确保机器安装了jdk

 

复制代码

[root@rocket ~]# java -version openjdk version "1.8.0_51" OpenJDK Runtime Environment (build 1.8.0_51-b16) OpenJDK 64-Bit Server VM (build 25.51-b03, mixed mode)

如果找不到 jdk,可以通过 yum 进行安装,如果发行版不是 CentOS,请自行搜索对应发行版的安装方法。

 

复制代码

[root@rocket local]# yum -y install java

下载zookeeper,选一个合适的版本

官网找一个合适的镜像进行下载。这里使用北理的镜像进行下载。

 

复制代码

[root@rocket local]# wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

下载完成之后分别解压到

 

复制代码

[root@rocket local]# tar -zxvf zookeeper-3.4.6.tar.gz zookeeper-server1 [root@rocket local]# tar -zxvf zookeeper-3.4.6.tar.gz zookeeper-server2 [root@rocket local]# tar -zxvf zookeeper-3.4.6.tar.gz zookeeper-server3

拷贝配置文件

 

复制代码

[root@rocket local]# cd /usr/local/zookeeper-server1/;cp conf/zoo_sample.cfg conf/zoo_test.cfg [root@rocket local]# cd /usr/local/zookeeper-server2/;cp conf/zoo_sample.cfg conf/zoo_test.cfg [root@rocket local]# cd /usr/local/zookeeper-server3/;cp conf/zoo_sample.cfg conf/zoo_test.cfg

修改配置文件

3个节点配置的主要区别是data目录及端口不同。

zookeeper-server1

 

复制代码

# The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 dataDir=/tmp/zookeeper-server1/data dataLogDir=/tmp/zookeeper-server1/logs # the port at which the clients will connect clientPort=2181 server.1=127.0.0.1:7770:6660 server.2=127.0.0.1:7771:6660 server.3=127.0.0.1:7772:6660

zookeeper-server2

 

复制代码

# The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 dataDir=/tmp/zookeeper-server2/data dataLogDir=/tmp/zookeeper-server2/logs # the port at which the clients will connect clientPort=3181 server.1=127.0.0.1:7770:6660 server.2=127.0.0.1:7771:6660 server.3=127.0.0.1:7772:6660

zookeeper-server3

 

复制代码

# The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 dataDir=/tmp/zookeeper-server3/data dataLogDir=/tmp/zookeeper-server3/logs # the port at which the clients will connect clientPort=4181 server.1=127.0.0.1:7770:6660 server.2=127.0.0.1:7771:6660 server.3=127.0.0.1:7772:6660

建立zookeeper运行目录,data目录和log目录

 

复制代码

[root@rocket local]# mkdir -p zookeeper-server1/logs zookeeper-server1/data [root@rocket local]# mkdir -p zookeeper-server2/logs zookeeper-server2/data [root@rocket local]# mkdir -p zookeeper-server3/logs zookeeper-server3/data

查看当前运行目录情况:

 

复制代码

[root@rocket tmp]# tree ├── zookeeper-server1 │   ├── data │   └── logs ├── zookeeper-server2 │   ├── data │   └── logs └── zookeeper-server3     ├── data └── logs

在data目录中创建文件 myid 文件,每个文件中分别写入当前机器的server id

 

复制代码

[root@rocket tmp]# echo "1" > zookeeper-server1/data/myid [root@rocket tmp]# echo "2" > zookeeper-server2/data/myid [root@rocket tmp]# echo "3" > zookeeper-server3/data/myid

在每个目录中启动zookeeper

 

复制代码

[root@rocket local]# cd /usr/local/zookeeper-server1/;bin/zkServer.sh start [root@rocket local]# cd /usr/local/zookeeper-server2/;bin/zkServer.sh start [root@rocket local]# cd /usr/local/zookeeper-server3/;bin/zkServer.sh start

查看启动状态

 

复制代码

[root@rocket zookeeper-server1]# cd /usr/local/zookeeper-server1/bin/zkServer.sh status JMX enabled by default Using config: /usr/local/zookeeper-server1/bin/../conf/zoo.cfg Mode: follower

注意,这里如果提示

 

复制代码

Error contacting service. It is probably not running.

说明进程启动失败或集群未建立成功,这时需要查看对应目录中的zookeeper.out日志去找到相应的原因并去解决它。

测试连接zookeeper集群

 

复制代码

[root@rocket local]# cd zookeeper-server1;bin/zkCli.sh -server localhost:2181

可以看到这里已经连接成功了,而且能查看节点情况,说明zookeeper集群已经开始工作了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在本地搭建一个ZooKeeper集群,您可以按照以下步骤进行操作: 1. 下载ZooKeeper软件包:访问Apache ZooKeeper官方网站,下载适用于您的操作系统的最新版本的ZooKeeper软件包。 2. 解压软件包:将下载的软件包解压到您选择的目录中。 3. 创建配置文件:在ZooKeeper软件包的conf目录中,创建一个名为zoo.cfg的文件。该文件将用于配置ZooKeeper集群。 4. 配置zoo.cfg文件:打开zoo.cfg文件,并使用以下示例配置将其填充: tickTime=2000 dataDir=/path/to/data/dir1 clientPort=2181 initLimit=5 syncLimit=2 server.1=localhost:2888:3888 server.2=localhost:2889:3889 server.3=localhost:2890:3890 这是一个示例配置,您可以根据需要进行修改。其中,dataDir是ZooKeeper数据存储目录,clientPort是ZooKeeper客户端连接端口,initLimit和syncLimit是用于配置选举和同步的参数,而server.x是ZooKeeper服务器的主机名、对等体通信端口和选举通信端口。 5. 创建数据目录:在您在zoo.cfg中指定的路径中,创建三个不同的子目录作为数据目录。在本示例中,您可以创建 /path/to/data/dir1、/path/to/data/dir2和/path/to/data/dir3。 6. 启动ZooKeeper服务器:打开终端窗口,并导航到ZooKeeper软件包的bin目录。然后,依次在三个终端窗口中运行以下命令: ./zkServer.sh start /path/to/zoo.cfg ./zkServer.sh start /path/to/zoo.cfg ./zkServer.sh start /path/to/zoo.cfg 这将启动三个ZooKeeper服务器实例。 7. 验证集群状态:在终端窗口中运行以下命令: ./zkServer.sh status /path/to/zoo.cfg 如果输出显示所有三个服务器实例均为"Mode: follower"或"Mode: leader",则表示集群已成功启动。 这样,您就在本地成功部署了一个ZooKeeper集群。请记住,这只是一个本地环境的示例,用于学习和测试目的。在生产环境中,您可能需要使用多个不同的主机来部署真正的ZooKeeper集群。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值