热爱技术,追求卓越
不断求索,精益求精

Linux下Zookeeper的安装,单机模式和伪集群模式

Zookeeper下载

Zookeeper官网及其下载地址

https://zookeeper.apache.org/

https://zookeeper.apache.org/releases.html#download

本次实战下载的是Apache ZooKeeper 3.8.0,下面这个地址是最终下载地址:

https://dlcdn.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz

在linux下下载,可使用如下命令:

curl -O https://dlcdn.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz

安装zookeeper

zookeeper有三种安装方式:单机模式、集群模式、伪集群模式。我们今天操作单机模式和伪集群模式,集群模式只是在不同的机器上,和伪集群模式的安装差不多。

解压下载的包

tar -zxvf apache-zookeeper-3.8.0-bin.tar.gz

复制4份刚刚解压的文件,并重命名为zookeeper-3.8.0、 zookeeper-3.8.0-1、zookeeper-3.8.0-2、zookeeper-3.8.0-3,同时把刚刚解压的文件删除(节省空间)。

cp -r apache-zookeeper-3.8.0-bin zookeeper-3.8.0
cp -r apache-zookeeper-3.8.0-bin zookeeper-3.8.0-1
cp -r apache-zookeeper-3.8.0-bin zookeeper-3.8.0-2
cp -r apache-zookeeper-3.8.0-bin zookeeper-3.8.0-3
rm -rf apache-zookeeper-3.8.0-bin

zookeeper-3.8.0是我们的单机模式,进入到zookeeper-3.8.0的conf目录

cd zookeeper-3.8.0/conf/

创建一个zoo.cfg的配置文件

vi zoo.cfg

文件内容如下:

//心跳时间,为了确保client-server连接存在的,以毫秒为单位,最小超时时间为两个心跳时间。
tickTime=2000
//用于存放内存数据库快照的文件夹,同时用于集群的myid文件也存在这个文件夹里
dataDir=/var/www/data/zookeeper/zookeeper-3.8.0/data
//用于单独设置transaction log的目录,transaction log分离可以避免和普通log还有快照的竞争。
dataLogDir=/var/www/data/zookeeper/zookeeper-3.8.0/dataLog
//客户端监听端口。
clientPort=2181

启动单机模式的zookeeper,先进入zookeeper-3.8.0的bin目录

cd zookeeper-3.8.0/bin/

执行如下命令:

./zkServer.sh start

如果想要关闭,输入:

./zkServer.sh stop

检查是否启动成功

./zkServer.sh status

显示如下说明启动成功:

Using config: /var/www/data/zookeeper/zookeeper-3.8.0/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: standalone

zookeeper-3.8.0-1、zookeeper-3.8.0-2、zookeeper-3.8.0-3是我们的微集群模式,zookeeper-3.8.0-1的zoo.cfg如下:

//心跳时间,为了确保client-server连接存在的,以毫秒为单位,最小超时时间为两个心跳时间。
tickTime=2000
//用于存放内存数据库快照的文件夹,同时用于集群的myid文件也存在这个文件夹里
dataDir=/var/www/data/zookeeper/zookeeper-3.8.0-1/data
//用于单独设置transaction log的目录,transaction log分离可以避免和普通log还有快照的竞争。
dataLogDir=/var/www/data/zookeeper/zookeeper-3.8.0-1/dataLog
//客户端监听端口。
clientPort=2182
//服务器上所有IP均监听
quorumListenOnAllIPs=true
//初始化连接时最长能忍受多少个心跳时间间隔数
initLimit=5
//这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度
syncLimit=2
//集群配置(此处注意端口不能和clientPort一致)
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890

zookeeper-3.8.0-2的zoo.cfg如下:

//心跳时间,为了确保client-server连接存在的,以毫秒为单位,最小超时时间为两个心跳时间。
tickTime=2000
//用于存放内存数据库快照的文件夹,同时用于集群的myid文件也存在这个文件夹里
dataDir=/var/www/data/zookeeper/zookeeper-3.8.0-2/data
//用于单独设置transaction log的目录,transaction log分离可以避免和普通log还有快照的竞争。
dataLogDir=/var/www/data/zookeeper/zookeeper-3.8.0-2/dataLog
//客户端监听端口。
clientPort=2183
//服务器上所有IP均监听
quorumListenOnAllIPs=true
//初始化连接时最长能忍受多少个心跳时间间隔数
initLimit=5
//这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度
syncLimit=2
//集群配置(此处注意端口不能和clientPort一致)
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890

zookeeper-3.8.0-3的zoo.cfg如下:

//心跳时间,为了确保client-server连接存在的,以毫秒为单位,最小超时时间为两个心跳时间。
tickTime=2000
//用于存放内存数据库快照的文件夹,同时用于集群的myid文件也存在这个文件夹里
dataDir=/var/www/data/zookeeper/zookeeper-3.8.0-3/data
//用于单独设置transaction log的目录,transaction log分离可以避免和普通log还有快照的竞争。
dataLogDir=/var/www/data/zookeeper/zookeeper-3.8.0-3/dataLog
//客户端监听端口。
clientPort=2184
//服务器上所有IP均监听
quorumListenOnAllIPs=true
//初始化连接时最长能忍受多少个心跳时间间隔数
initLimit=5
//这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度
syncLimit=2
//集群配置(此处注意端口不能和clientPort一致)
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890

三个zookeeper的不同在于dataDir、dataLogDir、clientPort,由于在同一个机器上,端口要不同。其中server.x=[hostname]:nnnnn[:nnnnn]表示:

①server.x:server.x的x要写在myid文件中,决定当前机器的id,
②第一个port用于连接leader,
③第二个用于leader选举。
④如果electionAlg为0,则不需要第二个port。
⑤hostname也可以填ip。

接下来要分别在三个zookeeper的dataDir下创建myid文件,zookeeper-3.8.0-1、zookeeper-3.8.0-2、zookeeper-3.8.0-3各自的myid文件的内容对应是1、2、3。

启动后使用以下命令查看状态

./zkServer.sh status

集群模式和伪集群模式类似,只是在不同机器上,端口配置可相同。

赞(0)
未经允许不得转载:LoveCTO » Linux下Zookeeper的安装,单机模式和伪集群模式

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

热爱技术 追求卓越 精益求精