安装环境:

  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 安装以及集群搭建的更多相关文章

  1. zookeeper安装与集群搭建

    此处以centos系统下zookeeper安装为例,详细步骤可参考官网文档:zookeeper教程 一.单节点部署 1.下载zookeeper wget http://mirrors.hust.edu ...

  2. zookeeper及kafka集群搭建

    zookeeper及kafka集群搭建 1.有关zookeeper的介绍可参考:http://www.cnblogs.com/wuxl360/p/5817471.html 2.zookeeper安装 ...

  3. 【运维技术】Zookeeper单机以及集群搭建教程

    Zookeeper单机以及集群搭建教程 单机搭建 单机安装以及启动 安装zookeeper的前提是必须有java环境 # 选择目录进行下载安装 cd /app # 下载zk,可以去官方网站下载,自己上 ...

  4. Zookeeper 安装及集群配置注意点

    Zookeeper在ubuntu下安装及集群搭建,关于集群搭建,网上很多文章 可以参考:https://www.ibm.com/developerworks/cn/opensource/os-cn-z ...

  5. 基于zookeeper的Swarm集群搭建

    简介 Swarm:docker原生的集群管理工具,将一组docker主机作为一个虚拟的docker主机来管理. 对客户端而言,Swarm集群就像是另一台普通的docker主机. Swarm集群中的每台 ...

  6. Zookeeper简介与集群搭建【转】

    Zookeeper简介 Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理.命名.分布式同步.集群管理.数据库切换等服务.它不适合用来存储大量信息,可以用来存储一些配置.发布与订阅等少 ...

  7. zookeeper 安装及集群

    一.zookeeper介绍 zookeeper是一个中间件,为分布式系统提供协调服务,可以为大数据服务,也可以为java服务. 分布式系统,很多计算机组成一个整体,作为一个整体一致对外并处理同一请求, ...

  8. ActiveMQ此例简单介绍基于docker的activemq安装与集群搭建

    ActiveMQ拓展连接 此例简单介绍基于Docker的activemq安装与集群搭建 一 :安装 1.获取activemq镜像 docker pull webcenter/activemq 2.启动 ...

  9. Redis单机安装以及集群搭建

    今天主要来看一下Redis的安装以及集群搭建(我也是第一次搭建). 环境:CentOS 7.1,redis-5.0.7 一.单机安装 1.将Redis安装包放置服务器并解压 2.进入redis安装目录 ...

随机推荐

  1. Excel 2007表格内输入http取消自动加上超链接的功能

    经常使用Excel表格工作的也许会发现,当我们在表格内输入http://XXXX时,默认情况下都会自动加上超链接,如下: 当我们点击域名准备编辑修改时,往往都会调用浏览器转到该域名之下,达不到编辑修改 ...

  2. border-image使用过程中遇到的几个问题

    这次年货,为了增添气氛,很多地方都用了边框,由于边框高度的不固定,给构建着实带了不小的麻烦. 通常我们处理边框的方法,无非以下两种方案: 1.切整张图片,做背景. 2.切上中下,进行拼接处理. 但是遇 ...

  3. iOS - 开发一套代码多个app展示不同图标和名称

    引言 公司项目重构之后,有了相对比较完善的开发体系,首先git分支分为日常.预发.生产三个主要分支,开发阶段都在日常(daily)分支下开相应功能的feature分支,开发完再合并. 我的iOS工程需 ...

  4. Shell脚本导入外部脚本内容

    vim subscript.sh #!/bin/bash tool="ApacheSpark" vim main.sh #!/bin/bash source /home/wx/su ...

  5. POJ 1984 - Navigation Nightmare - [带权并查集]

    题目链接:http://poj.org/problem?id=1984 Time Limit: 2000MS Memory Limit: 30000K Case Time Limit: 1000MS ...

  6. js 通过html()及text()方法获取并设置p标签的显示值

    html()方法 此方法类似于JavaScript中的innerHTML属性,可以用来读取或者设置某个元素中的HTML内容.要获取某个元素的内容,可以这样: 复制代码 代码如下: var p_html ...

  7. GP服务中无Tasks

    发布GP服务,之后执行GP服务时,发现无Tasks,如下图所示 正常情况应该如下图 问题原因在于,arcmap与server版本不一致~~ (10.4.1arcmap 与 10.2.2 server) ...

  8. webpack初入门

    首先利用npm install webpack -g,这里我试过用cnpm安装不成功,不知道是什么回事, webpack 用来压缩打包网站的一些插件和依赖包而存在的, webpack  文件名  打包 ...

  9. HTML_css选择器

    第二种增加css样式的方法,可以在head中增加style标签,style中通过选择器定位标签增加css样式 CSS选择器分为六种: 1.id选择器 2.class选择器   3.标签选择器   4. ...

  10. dedecms首页调用随机文章全自动时时更新

    dedecms织梦系统是全站生成静态html的,这个对搜索引擎比较友好,但是有时我们要调用文章,让蜘蛛每次来访问都感觉像是有添加新内容一样,要如何做到呢? 可以添加以下dedecms随机文章调用的参数 ...