文档章节

zookeeper 安装以及集群搭建

o
 osc_pn11u1x9
发布于 2018/08/07 08:23
字数 1125
阅读 0
收藏 0

精选30+云产品,助力企业轻松上云!>>>

安装环境:

  jdk1.7 

  zookeeper-3.4.10.tar.gz

  VM虚拟机redhat6.5-x64:192.168.1.200  192.168.1.201  192.168.1.202

  Xshell4

部署方案:

主机IP 集群通信端口 消息端口 节点目录
192.168.1.200 2888:3888 2181 /usr/local/zookeeper
192.168.1.201 2888:3888 2181 /usr/local/zookeeper
192.168.1.202 2888:3888 2181 /usr/local/zookeeper

 

三个几点安装前 检查时间是否同步,不同步使用ntpdate来同步。

第一步:解压 zookeeper-3.4.10.tar.gz

#解压
tar -zxvf zookeeper-3.4.10.tar.gz -C /usr/local
#修改目录名
mv zookeeper-3.4.10 zookeeper

 第二步:配置zookeeper

ZK配置文件:
tickTime:发送心跳的间隔时间,单位:毫秒;


dataDir:zookeeper保存数据的目录;


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


initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader的Follower服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5 个心跳的时间(也就是 tickTime)长度后Zookeeper服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒;


syncLimit:这个配置项标识Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4 秒;


server.A=B:C:D:
其中A是一个数字,表示这个是第几号服务器;
B是这个服务器的ip地址;
C表示的是这个服务器与集群中的Leader服务器交换信息的端口;
D表示的是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于B都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号

 

 

#切换zookeeper配置文件目录
cd /usr/local/zookeeper/conf
#修改配置文件名 默认运行配置文件名 zoo.cfg
mv zoo_sample.cfg zoo.cfg
#编辑配置文件
vim zoo.cfg

修改配置一:

在/usr/local/zookeeper  创建目录data 用来存储集群节点信息(快照日志):包括zookeeper以及其他依赖zookeeper服务的集群

dataDir=/usr/local/zookeeper/data

在/usr/local/zookeeper  创建目录logs 用来存储事务日志

dataLogDir=/usr/local/zookeeper/logs

修改配置二:

zookeeper各节点

server.0=192.168.1.200:2888:3888
server.1=192.168.1.201:2888:3888
server.2=192.168.1.202:2888:3888

 

第三步:创建myid文件

在dataDir=/home/grid/zookeeper/data下创建myid文件 
编辑myid文件,并在对应的IP的机器上输入对应的编号。如在第一台zookeeper上,我们给该myid文件内容指定就是0,第二台上就是1....

 

修改zkEnv.sh  注明日志zookeeper.out目录  

if [ "x${ZOO_LOG_DIR}" = "x" ]
then
    ZOO_LOG_DIR="/usr/local/zookeeper/logs/zookeeper/logs"
fi

修改 zkServer.sh 指定依赖的jdk

在原有代码之前加上

export JAVA_HOME=/usr/local/jdk1.7.0_80
export PATH=$JAVA_HOME/bin:$PATH

 

第四步:配置环境变量

 

[root@201 data]# vim /etc/profile
[root@201 data]# source /etc/profile

第五步:启停zookeeper

 

[root@202 local]# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

#zk 的jps名称是QuorumPeerMain
[cluster@PCS101 conf]$ jps
14213 QuorumPeerMain

[cluster@PCS101 bin]$ ./zkServer.sh stop
ZooKeeper JMX enabled by default
Using config: /home/cluster/zookeeper/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED

 

第六步:检查

#follower表示从服务器
[root@200 conf]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower
#leader表示主服务
[root@202 local]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: leader
#客户端登录
zkCli.sh

第七步:检查集群存储各个节点信息,包括:Hadoop、Hbase、Storm、Kafka、activemq

方式一:eclipse插件 

方式二:ZooInspector

具体参考:https://www.cnblogs.com/cac2020/p/9428255.html

 

zk运维:

问题1:查看日志zookeeper.log  

2018-10-23 14:37:21,613 [myid:3] - ERROR [main:QuorumPeer@692] - Unable to load database on disk
java.io.IOException: The accepted epoch, 8c96 is less than the current epoch, 8cc7
at org.apache.zookeeper.server.quorum.QuorumPeer.loadDataBase(QuorumPeer.java:689)
at org.apache.zookeeper.server.quorum.QuorumPeer.start(QuorumPeer.java:635)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:170)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:114)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:81)

然后无法启动

[cluster@PCS103 bin]$ ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/cluster/zookeeper/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.

原因启动时根据快照恢复数据出错  ,解决办法将快照目录 version-2  备份version-2.bak 然后重启即可解决

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

macz技巧分享—macOS高端使用技巧

Macos 的占有量不如 Windows,两者之间当操作方式也有很大的不同,当很多人熱悉 Windows 的操作之后,再接触 macos,觉得难上手,其实是习惯问题。如果你学习一些技巧,会觉得 macos 其实也不...

mac小叮当
57分钟前
11
0
手把手教你如何用黑白显示器显示彩色!

来源:大数据文摘 本文约1000字,建议阅读6分钟。 本文为你介绍如何通过黑白显示器上也能显示出彩色。 原来在黑白显示器上也能显示出彩色啊!通过在监视器上覆盖拜耳滤色镜,并拼接彩色图像,...

osc_jklrr90y
58分钟前
18
0
key-value结构排序:给定一个字符串,统计每个字符出现频率,先按value降序,再按key升序

对于key-value结构的排序 第一种:lambda表达式 第二种:函数 第三种:类对()的重载,仿函数形式 #include <iostream>#include <vector>#include <unordered_map>#include <string>#in......

osc_gwtkg2dc
58分钟前
0
0
BlockChain:2020年7月10日世界人工智能大会WAIC《链智未来 赋能产业区块链主题论坛——2020全球区块链创新50强》

BlockChain:2020年7月10日世界人工智能大会WAIC《链智未来 赋能产业区块链主题论坛——2020全球区块链创新50强》 目录 世界人工智能大会WAIC《链智未来 赋能产业区块链主题论坛——2020全球...

osc_vew1u0h0
今天
0
0
BlockChain:2020年7月10日世界人工智能大会WAIC《链智未来 赋能产业区块链主题论坛》(三)

BlockChain:2020年7月10日世界人工智能大会WAIC《链智未来 赋能产业区块链主题论坛》(三) 目录 2020年7月10日世界人工智能大会WAIC《链智未来 赋能产业区块链主题论坛》 演讲嘉宾 演讲内容 ...

osc_8o71811p
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部