前置环境

zookeeper的安装需要依赖java的JDK。所以需要先安装JDK8,并且配置好环境变量。 linux下的jdk安装,请参考小编博客《Linux下JDK的安装》

ZooKeeper安装

小编在虚拟机创建了三台机器,并且分别设置hostname为node01,node02,node03。 再node01上安装完成后,然后分发到node02,node03。采用的zookeeper版本为3.7.0。

下载安装包

在用户主目录下,通过wget下载zookeeper安装包,或者在官网下载好传到服务器上也可以。

[root@node01 ~]# wget https://dlcdn.apache.org/zookeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz --no-check-certificate

[root@node01 ~]# ls

apache-zookeeper-3.7.0-bin.tar.gz

解压安装包

[root@node01 ~]# tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz

[root@node01 ~]# ls

apache-zookeeper-3.7.0-bin apache-zookeeper-3.7.0-bin.tar.gz

删除tar包

[root@node01 ~]# rm -rf apache-zookeeper-3.7.0-bin.tar.gz

创建文件夹

[root@node01 ~]# mkdir /usr/local/src/zookeeper

移动到指定目录

[root@node01 ~]# mv apache-zookeeper-3.7.0-bin /usr/local/src/zookeeper/

ZooKeeper目录结构

配置文件目录结构

zoo.cfg配置文件详解

# The number of milliseconds of each tick

tickTime=2000 #leader ,follower ,follower之间的心跳时间2000毫秒

# The number of ticks that the initial

# synchronization phase can take

initLimit=10 # 当一个follower追随leader时,leader允许follower可以有一个2000*10的初始延迟,抄错这个时间则判断follower有问题

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

syncLimit=5 # 当leader发送同步请求是,follower在2000* 5 的时间没有给予回复,则认为follower出现问题

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just

# example sakes.

dataDir=/usr/local/src/zookeeper/data/zk # zk是基于内存存储的,这个目录是持久化数据的目录,日志,快照,和myid都会放在这里

# the port at which the clients will connect

clientPort=2181 # 客户端连接zk服务的端口号

# the maximum number of client connections.

# increase this if you need to handle more clients

#maxClientCnxns=60 #当前节点允许的最大客户端连接数

#

# Be sure to read the maintenance section of the

# administrator guide before turning on autopurge.

#

# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance

#

# The number of snapshots to retain in dataDir

#autopurge.snapRetainCount=3

# Purge task interval in hours

# Set to "0" to disable auto purge feature

#autopurge.purgeInterval=1

server.1=node01:2888:3888 # 端口3888用于三个服务之间进行选举leader

server.2=node02:2888:3888 # 端口2888用于三个服务之间进行数据交互

server.3=node03:2888:3888

创建dataDir目录

[root@node01 ~]# mkdir -p /usr/local/src/zookeeper/data/zk

创建myid文件

在/usr/local/src/zookeeper/data/zk目录下创建myid文件,并写入该节点配置文件中配置的数字,node1为数字1

[root@node01 zk]# vim myid

然后输入1保存退出。

分发给node02和node03

进入到/usr/local/src/目录,执行下列命令,将src目录下的zookeeper下的所有文件拷贝到node02的相同目录下

[root@node01 src]# scp -r ./zookeeper/ node02:`pwd`

root@node02's password:

输入node02的密码,文件便会自动同步过去。 修改node02上/usr/local/src/zookeeper/data/zk/myid的id值 执行下面命令

[root@node02 zk]# echo 2 > myid

node03机器同理,进行同步并修改myid值为3。

配置环境变量

执行命令 vim /etc/profile,在文件末尾追加如下命令

[root@node01 ~]# vim /etc/profile

export ZOOKEEPER_HOME=/usr/local/src/zookeeper/apache-zookeeper-3.7.0-bin

export PATH=$ZOOKEEPER_HOME/bin:$PATH

[root@node01 ~]# source /etc/profile #生效配置文件或者 . /etc/profile

验证

任意位置输入zk,能显示出zk的客户端脚本命令,则配置生效

分发配置文件

使用scp将配置文件分发给node02,和node03,覆盖原有的profile文件

[root@node01 ~]# scp /etc/profile node02:/etc

[root@node01 ~]# scp /etc/profile node03:/etc

在各自的机器上,执行source /etc/profile生效配置文件

总结

安装步骤:

下载tar包并解压创建文件夹,将解压文件移动到指定文件夹修改zoo.cfg中的dataDir目录,添加服务id和端口映射创建dataDir文件夹并创建myid文件修改myid内容为zoo.cfg配置文件中指定的服务id号配置环境变量

ZooKeeper的启动

zkServer.sh start 后台启动zkServer.sh start-foreground 前台启动,可以在控制台直接看到日志zkServer.sh help 可以查看zkServer.sh可以使用的命令

推荐文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: