zookeeper 安装以及集群搭建
安装环境:
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..tar.gz -C /usr/local
#修改目录名
mv zookeeper-3.4. zookeeper
第二步:配置zookeeper
ZK配置文件:
tickTime:发送心跳的间隔时间,单位:毫秒; dataDir:zookeeper保存数据的目录; clientPort:客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求; initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader的Follower服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 个心跳的时间(也就是 tickTime)长度后Zookeeper服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 *= 秒; syncLimit:这个配置项标识Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 *= 秒; 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@ data]# vim /etc/profile
[root@ data]# source /etc/profile
第五步:启停zookeeper
[root@ 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
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@ conf]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower
#leader表示主服务
[root@ 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 然后重启即可解决
zookeeper 安装以及集群搭建的更多相关文章
- zookeeper安装与集群搭建
此处以centos系统下zookeeper安装为例,详细步骤可参考官网文档:zookeeper教程 一.单节点部署 1.下载zookeeper wget http://mirrors.hust.edu ...
- zookeeper及kafka集群搭建
zookeeper及kafka集群搭建 1.有关zookeeper的介绍可参考:http://www.cnblogs.com/wuxl360/p/5817471.html 2.zookeeper安装 ...
- 【运维技术】Zookeeper单机以及集群搭建教程
Zookeeper单机以及集群搭建教程 单机搭建 单机安装以及启动 安装zookeeper的前提是必须有java环境 # 选择目录进行下载安装 cd /app # 下载zk,可以去官方网站下载,自己上 ...
- Zookeeper 安装及集群配置注意点
Zookeeper在ubuntu下安装及集群搭建,关于集群搭建,网上很多文章 可以参考:https://www.ibm.com/developerworks/cn/opensource/os-cn-z ...
- 基于zookeeper的Swarm集群搭建
简介 Swarm:docker原生的集群管理工具,将一组docker主机作为一个虚拟的docker主机来管理. 对客户端而言,Swarm集群就像是另一台普通的docker主机. Swarm集群中的每台 ...
- Zookeeper简介与集群搭建【转】
Zookeeper简介 Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理.命名.分布式同步.集群管理.数据库切换等服务.它不适合用来存储大量信息,可以用来存储一些配置.发布与订阅等少 ...
- zookeeper 安装及集群
一.zookeeper介绍 zookeeper是一个中间件,为分布式系统提供协调服务,可以为大数据服务,也可以为java服务. 分布式系统,很多计算机组成一个整体,作为一个整体一致对外并处理同一请求, ...
- ActiveMQ此例简单介绍基于docker的activemq安装与集群搭建
ActiveMQ拓展连接 此例简单介绍基于Docker的activemq安装与集群搭建 一 :安装 1.获取activemq镜像 docker pull webcenter/activemq 2.启动 ...
- Redis单机安装以及集群搭建
今天主要来看一下Redis的安装以及集群搭建(我也是第一次搭建). 环境:CentOS 7.1,redis-5.0.7 一.单机安装 1.将Redis安装包放置服务器并解压 2.进入redis安装目录 ...
随机推荐
- 【CF900D】Unusual Sequences 容斥(莫比乌斯反演)
[CF900D]Unusual Sequences 题意:定义正整数序列$a_1,a_2...a_n$是合法的,当且仅当$gcd(a_1,a_2...a_n)=x$且$a_1+a_2+...+a_n= ...
- python nose测试框架全面介绍七--日志相关
引: 之前使用nose框架时,一直使用--logging-config的log文件来生成日志,具体的log配置可见之前python nose测试框架全面介绍四. 但使用一段时间后,发出一个问题,生成的 ...
- Unity3D Mecanim :Body Mask的使用、 角色Retargeting原理分析、Apply RootMotion
一.Body Mask的使用 1.1.配置好骨骼后通过Muscles来微调角色骨骼中的运动范围,以避免角色在动画中的不正确的叠加或失真等现象. 1.2.身体遮罩BodyMask更形象的描述就是身体的开 ...
- ubuntu16.04下安装Sophus
git clone https://github.com/strasdat/Sophus.git 下载完成后 cd Sophus git checkout a621ffmkdir buildcd bu ...
- Oracle安装部署之Oracle 10g在redhat5下的安装
[root@localhost ~]# groupadd dba -g 111 [root@localhost ~]# groupadd oinstall -g 110 [root@localhost ...
- 44(function pointer 2)
#include<iostream> using namespace std; class A { public: int x; int sayhello() { cout<< ...
- LoadRunner-关联问题(栏目列表较多关联不了想要的id)
新建了课程后之后有很多栏目,每个栏目对应一个partid,但我只想要期中一个. http://*********/course/work/workInfo.action?hwid=1547&c ...
- 浅谈CSRF攻击方式(转)
add by zhj: 在看Django开发的应用时,看到了CSRF,然后搜到了这篇文章,讲的不错.其实CSRF 攻击也蛮简单的.当你登陆网站A后,会在本地存有cookie,在cookie没有过期的情 ...
- OC 手势可能出现的问题
oc手势有分別是 Tap(点一下).Pinch(二指往內或往外拨动).Rotation(旋转).Swipe(滑动,快速移动).Pan (拖移,慢速移动)以及 LongPress(长按). UITapG ...
- [vue]组件最佳实战
[vue]全局组件和局部组件(嵌套+props引用父组件数据) [vue]组件篇 [vue]组件的创建(componet)和销毁(keep-alive缓存)和父子dom同步nextTick [vue] ...