zookeeper部署

Posted leiwenbin627

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zookeeper部署相关的知识,希望对你有一定的参考价值。

部署参考

https://yq.aliyun.com/articles/662422

https://www.baidu.com/link?url=4-82ARHt_56IJ34QcMhx9zmRvZPviwtaZrRLM-SI1m3BIFDD_2gzyasBaVTPmst2&wd=&eqid=f116d2da000ca2d4000000065da2ef60

 

排错参考

https://blog.csdn.net/lll0101/article/details/95448420

 

配置java环境

#下载相应的jdk软件包,然后解压安装,我这里包名称为:jdk-8u91-linux-x64.tar.gz

tar -xzf  jdk-8u91-linux-x64.tar.gz  ; mkdir -p /usr/java/ ; mv jdk1.8.0_25/ /usr/java/jdk1.8

#然后配置环境变量,这样可以任何地方引用jdk,如下配置:

#vi /etc/profile 最后面加入以下语句:

export JAVA_HOME=/usr/java/jdk1.8

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin

#source /etc/profile   #使环境变量马上生效

#java -version    #查看java版本,看到jdk1.8.0版本即代表java安装成功。

 

下载zookeeper链接地址
http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz

tar -zxvf zookeeper-3.4.13.tar.gz

mv zookeeper-3.4.13 /usr/local/zookeeper

 

配置zookeeper

cp /usr/local/zookeeper/conf/zoo_sample.cfg  /usr/local/zookeeper/conf/zoo.cfg

vi /usr/local/zookeeper/conf/zoo.cfg

grep -v ‘#‘ /usr/local/zookeeper/conf/zoo.cfg

tickTime=2000

initLimit=10  

syncLimit=5

dataDir=/usr/local/zookeeper/data

dataLogDir=/usr/local/zookeeper/log

clientPort=2181

server.1=zk1:2888:3888  #server.NUM=hostname:zk集群节点交换数据端口:zk选举端口

server.2=zk2:2888:3888

server.3=zk3:2888:3888

配置参数详解:

tickTime:发送心跳的间隔时间,单位:毫秒

dataDirzookeeper保存数据的目录。

clientPort:客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客

户端的访问请求。

initLimit: 这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连

Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader

Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5 个心跳的

时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表

明这个客户端连接失败。总的时间长度就是 5*2000=10

syncLimit:这个配置项标识 Leader Follower 之间发送消息,请求和应答时间长度,最

长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4

server.A=BCD:其 中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip

地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一

集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader

 

配置zookeeper环境变量

vim /etc/profile  添加下面2

export ZOOKEEPER=/usr/local/bin/app/zookeeper

export PATH=$ZOOKEEPER/bin:$PATH

source /etc/profile  刷新配置文件

 

在每台主机的/usr/local/zookeeper/data中添加myid,内容分别是1,2,3

echo 1 > /usr/local/zookeeper/data/myid  在第一台zookeeper操作 

echo 2 > /usr/local/zookeeper/data/myid  在第二台zookeeper操作

echo 3 > /usr/local/zookeeper/data/myid  在第三台zookeeper操作

 

启动zookeeper

zkServer.sh start  启动zookeeperZooKeeper

JMX enabled by defaultUsing config: /usr/local/bin/app/zookeeper/bin/../conf/zoo.cfg

Starting zookeeper ... STARTED

 

查看zookeeper运行状态

zkServer.sh status   

JMX enabled by defaultUsing config: /usr/local/bin/app/zookeeper/bin/../conf/zoo.cfg

Mode: leader  #显示leader/follower则说明启动成功

 

常用操作命令:

zkCli.sh  进入zookeeper客户端

[zk: localhost:2181(CONNECTED) 0] h 命令帮助

create /20191013 helloworld  创建节点数据

[zk: localhost:2181(CONNECTED) 16] ls / 查看有哪些数据

 

[zk: localhost:2181(CONNECTED) 17] get /20191013  获取20191013数据/事件

helloworld  获取到的数据/事件

cZxid = 0x100000002 当前的事物ID

ctime = Sun Oct 13 18:58:09 CST 2019 创建数据时间

mZxid = 0x100000002 修改的事物ID

mtime = Sun Oct 13 18:58:09 CST 2019 修改事件的时间

pZxid = 0x100000002 父节点事物ID

cversion = 0 当前版本

dataVersion = 0 数据版本

aclVersion = 0 权限

ephemeralOwner = 0x0

dataLength = 10 数据长度

numChildren = 0 数据的子节点

 

[zk: localhost:2181(CONNECTED) 18] set /20191013 hello 修改/设置 数据或事件

 

创建observer观察节点

vi /usr/local/zookeeper/conf/zoo.cfg

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/usr/local/zookeeper/data

dataLogDir=/usr/local/zookeeper/log

clientPort=2181

server.1=zk1:2888:3888

server.2=zk2:2888:3888:observer #设置为观察节点

server.3=zk3:2888:3888

 

[root@zk2 ~]# zkServer.sh restart

[root@zk2 ~]# zkServer.sh status

ZooKeeper JMX enabled by default

Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg

Mode: observer

以上是关于zookeeper部署的主要内容,如果未能解决你的问题,请参考以下文章

zookeeper概述和部署

zookeeper集群+kafka集群 部署

Zookeeper安装部署

(2020-3-15)Zookeeper学习之Zookeeper概览以及部署

zookeeper高可用集群部署

zookeeper群集部署及概述