目录

一、概览

二、单机Zookeeper

  2.1、安装zookeeper

  2.2、配置zookeeper

  2.3、zk server状态管理

  2.4、使用zkCli登录zk服务器

三、Zookeeper集群搭建配置

  3.1、环境介绍

  3.2、修改配置

  3.3、设置myid

  3.4、启动集群

  3.5、测试集群

四、总结

一、概览

  本文主要是记录安装和配置zookeeper的过程,分为两个部分,第一部分是单机的zookeeper安装配置,第二部分是zookeeper集群的搭建,其中第二部分是建立在第一部分的基础上的。

  如果需要了解zookeeper的命令,可以参考:zookeeper命令整理

  

二、单机zookeeper

2.1、安装Zookeeper

  其实Zookeeper的安装特别简单,也不能算安装了,只需要将Zookeeper下载后解压,就完成了安装操作。

  下载地址:http://zookeeper.apache.org/releases.html

  本文所用的3.4.14版本,下载链接  

su - root  # 请务必切换为root身份
wget http://www.trieuvan.com/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
tar -zxf zookeeper-3.4.14.tar.gz
cp -r zookeeper-3.4.14 /usr/local/zookeeper # 创建存放数据文件的目录
mkdir /usr/local/zookeeper/data

  此时,Zookeeper就安装成功了,只不过还需要进行一些配置才能启动。

2.2、配置Zookeeper

  Zookeeper的配置文件在path-to-zookeeper/conf目录下,文件名为zoo.cfg。初始安装的Zookeeper有一个zoo_sample.cfg示例文件,可以拷贝一份,在进行修改。

root@ubuntu:/usr/local/zookeeper# cd conf/
root@ubuntu:/usr/local/zookeeper/conf# ls
configuration.xsl log4j.properties zoo_sample.cfg
root@ubuntu:/usr/local/zookeeper/conf# cp zoo_sample.cfg zoo.cfg
root@ubuntu:/usr/local/zookeeper/conf# ls
configuration.xsl log4j.properties zoo.cfg zoo_sample.cfg

  下面是zoo.cfg配置项解释:

# 心跳间隔(毫秒),超过2倍tickTime将会被认为会话超时
tickTime=2000 # 初始化连接时最长的时间(心跳间隔次数),超过该值会认为连接超时
initLimit=10 # zk集群中leader和follower同步消息的超时时间(心跳间隔次数)
syncLimit=5 # 保存zookeeper数据库快照的目录,前面安装zookeeper时已经创建了该目录
dataDir=/usr/local/zookeeper/data # 服务器监听的端口号,用于客户端连接服务器
clientPort=2181 # zk服务器所支持的最大客户端连接数量
# maxClientCnxns=60

  

2.3、zk server运行状态管理

  Zookeeper中可执行文件都存放在zookeeper安装路径下的bin目录下,而对Zookeeper服务器运行状态管理,使用的是zkServer.sh这个脚本。

  通过传入start | stop | restart | status来管理Zookeeper服务器的运行状态。

/usr/local/zookeeper/bin/zkServer.sh start
/usr/local/zookeeper/bin/zkServer.sh restart
/usr/local/zookeeper/bin/zkServer.sh stop
/usr/local/zookeeper/bin/zkServer.sh status

  

2.4、使用zk客户端登录服务器

  通过命令行的方式登录到Zookeeper服务器,可以使用Zookeeper提供的zkCli.sh脚本,位于/usr/local/zookeeper/bin目录下。

/usr/local/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181

  登录进入Zookeeper服务器后,就可以进行很多操作了,下面将一一列举。

三、Zookeeper集群搭建配置

3.1、环境介绍

  Zookeeper集群的安装,只是比安装单机Zk多了1个配置项(server.x)。

  本次搭建Zk集群,包含3台机器(建议使用奇数台机器),机器ip分别为

  centos03:192.168.1.3

  centos04:192.168.1.4

  centos05:192.168.1.5

已经在上面三台机器上安装了zookeeper(安装上面单机zookeeper的安装步骤)

3.2、修改配置

  修改集群中每一台zk机器的配置文件内容(/usr/local/zookeeper/conf/zoo.cfg),请尽量保证集群中所有zk机器的配置文件相同。

# 心跳间隔(毫秒),超过2倍tickTime将会被认为会话超时
tickTime=2000 # 初始化连接时最长的时间(心跳间隔次数),超过该值会认为连接超时
initLimit=10 # zk集群中leader和follower同步消息的超时时间(心跳间隔次数)
syncLimit=5 # 保存zookeeper数据库快照的目录,安装zookeeper时需要创建了该目录
dataDir=/usr/local/zookeeper/data # 服务器监听的端口号,用于客户端连接服务器
clientPort=2181 # 配置zk集群节点信息
server.1=192.168.1.3:2888:3888
server.2=192.168.1.4:2888:3888
server.3=192.168.1.5:2888:3888  

  上面的集群配置中,只是比单机配置多了server.n=A:B:C的几个配置,该配置项的规则如下:

  1、统一前缀,"server.";

  2、"server."后面的数字n表示机器的id(序号),可以随意指定,不要重复即可;

  3、A表示集群中zk机器的ip;

  4、B表示Zk集群中,follower与leader通信的端口;

  5、C表示当leader宕机时,各follower选举新leader的通信端口;

3.3、设置myid

  上面配置中使用了server.x来指定ip所指的机器编号为x,除此之外,还需要在dataDir所指的目录下创建一个文件(文件名为myid,不能更改),在该文件中保存机器的id(编号)

  前面配置中,指定了dataDir=/usr/local/zookeeper/data,是用来存放数据的目录。

# 配置zk集群节点信息
server.1=192.168.1.3:2888:3888
server.2=192.168.1.4:2888:3888
server.3=192.168.1.5:2888:3888

  上面配置中,192.168.1.3为1号服务器,所以需要在/usr/local/zookeeper/data目录下创建myid文件,内容为1;

  同理:

    192.168.1.4为2号服务器,所以需要在/usr/local/zookeeper/data目录下创建myid文件,内容为2;

    192.168.1.5为3号服务器,所以需要在/usr/local/zookeeper/data目录下创建myid文件,内容为3;

  前提是要先创建dataDir目录,也就是/usr/local/zookeeper/data目录,然后使用下面的命令快速设置myid

# 192.168.1.3机器,编号为1
[root@centos03 ~]# mkdir /usr/local/zookeeper/data
[root@centos03 ~]# echo 1 > /usr/local/zookeeper/data/myid # 192.168.1.4机器,编号为2
[root@centos04 ~]# mkdir /usr/local/zookeeper/data
[root@centos04 data]# echo 2 > /usr/local/zookeeper/data/myid # 192.168.1.5机器,编号为3
[root@centos05 ~]# mkdir /usr/local/zookeeper/data
[root@centos05 ~]# echo 3 > /usr/local/zookeeper/data/myid

  

3.4、启动集群

  启动集群的方式,就是依次启动所有集群机器的zkServer即可。

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

  

  查看集群中每台机器的状态

[root@centos03 ~]# /usr/local/zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: leader [root@centos04 ~]# /usr/local/zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower [root@centos05 ~]# /usr/local/zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower

  

3.5、测试集群

  下面是测试例子,注意,客户端连接集群中的机器,使用2181端口,不要使用配置集群的2888和3888端口

# 连接到192.168.1.3
ganlixins-MacBook-Pro:~ ganlixin$ /usr/local/zookeeper/bin/zkCli.sh -server 192.168.1.3:2181
[zk: 192.168.1.3:2181(CONNECTED) 0] create /abc 123
Created /abc
[zk: 192.168.1.3:2181(CONNECTED) 1] create /xyz 666
Created /xyz
[zk: 192.168.1.3:2181(CONNECTED) 2] quit
Quitting... # 连接到192.168.1.4
ganlixins-MacBook-Pro:~ ganlixin$ /usr/local/zookeeper/bin/zkCli.sh -server 192.168.1.4:2181
[zk: 192.168.1.4:2181(CONNECTED) 0] ls /
[xyz, abc, zookeeper]

  

四、 总结

  除了本文的安装zookeeper,除此之外:

  如果对查看zk的相关命令,可以参考:zookeeper命令整理

  如果想查看Java如果操作zk,可以参考:使用Java操作Zookeeper

  搭建配合kafka集群,可以参考:Kafka安装与配置

Zookeeper 安装与简单使用的更多相关文章

  1. 【ZooKeeper】ZooKeeper安装及简单操作

    ZooKeeper介绍 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一 ...

  2. ZooKeeper 安装部署及hello world(转)

    ZooKeeper  安装部署及hello world 先给一堆学习文档,方便以后查看官网文档地址大全:OverView(概述)http://zookeeper.apache.org/doc/r3.4 ...

  3. zookeeper安装和应用场合(名字,配置,锁,队列,集群管理)

    安装和配置详解 本文介绍的 Zookeeper 是以 3.2.2 这个稳定版本为基础,最新的版本可以通过官网http://hadoop.apache.org/zookeeper/ 来获取,Zookee ...

  4. ZooKeeper 安装部署及hello world

    ZooKeeper  安装部署及hello world 先给一堆学习文档,方便以后查看官网文档地址大全: OverView(概述)http://zookeeper.apache.org/doc/r3. ...

  5. windows环境下zookeeper安装和使用

    一.简介        zooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一 ...

  6. ZooKeeper 安装、配置

    http://blog.csdn.net/franklysun/article/details/6424582 如题本文介绍的是ZooKeeper 的安装和配置过程,此过程非常简单,关键是如何应用(将 ...

  7. zookeeper安装以及遇到的一些坑

    最近项目中用到了storm,然后storm中用到了zookeeper,然后今天抽空整理一下zookeeper的安装使用,原来后期再慢慢学习. 本篇文档,操作部分是摘自其他博客,里边的问题分析是自己在实 ...

  8. Zookeeper系列一:Zookeeper介绍、Zookeeper安装配置、ZK Shell的使用

    https://www.cnblogs.com/leeSmall/p/9563547.html 一.Zookeeper介绍 1. 介绍Zookeeper之前先来介绍一下分布式 1.1 分布式主要是下面 ...

  9. zookeeper安装和使用 windows环境(转)

    原文地址: http://blog.csdn.net/tlk20071/article/details/52028945 简介 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是G ...

随机推荐

  1. golang并发基础

    1. go协程(go routine) go原生支持并发:goroutine和channel. go协程是与其他函数或方法一起并发运行的函数和方法.go协程可以看作是轻量级线程. 调用函数或者方法时, ...

  2. Python并发编程-GIL全局解释器锁

    Python并发编程-GIL全局解释器锁 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.GIL全局解释器锁概述 CPython 在解释器进程级别有一把锁,叫做GIL,即全局解释 ...

  3. node基础学习——操作文件系统fs

    操作文件系统fs 1.在Node.js中,使用fs模块来实现所有有关文件及目录的创建.写入及删除.在fs模块中,所有对文件及目录的操作都可以使用同步与异步两种方法,具有Sync后缀的方法均为同步方法. ...

  4. maven mvn跳过生成javadoc 打包报错

    遇到javadoc用maven打包报错的问题,起初没发现javadoc,后发现并在pom看到了javadoc的配置. [ERROR] Failed to execute goal org.apache ...

  5. selenium中的等待方法及区别

    等待是为了使脚本执行更加稳定 常用的休眠方式: 1.time模块的sleep方法 :引入from time import sleep 2.implicitly_wait():设置webdriver等待 ...

  6. Java——CaptchaUtil生成二维码乱码

    前言 这个问题就是因为Linux上没有字体,你可以有两种方法,一个在生成的时候设置字体,一个就是安装字体. 默认的字体为Courier 乱码情况 步骤 安装字体工具 yum install -y fo ...

  7. 学习:类和对象——对象模型和this指针

    成员变量和成员函数分开存储: 在C++中,类内的成员变量和成员函数分开存储 第一点:空对象占用内存空间1个字节 第二点:只有非静态成员变量才属于类的对象上,非静态成员函数和静态成员函数和静态成员变量不 ...

  8. 开源项目(4-2)手势识别-Keras/Theano/OpenCV实现的CNN手势识别

    https://github.com/asingh33/CNNGestureRecognizer 我提供了两种捕获模式: 二进制模式:在这里我首先将图像转换为灰度,然后应用高斯模糊效果和自适应阈值滤波 ...

  9. [CSS3] Use media query to split css files and Dark mode (prefers-color-scheme: dark)

    Dark Mode: :root { --text-color: #000; --background-color: #fff; } body { color: var(--text-color); ...

  10. shell grep的基本用法

    grep 1.-i 不区分大写小写 2.-n 区分大小写 3.-E 查找多个条件 4.-c 查找到的结果的行数 5.-w 精确查找 6.取反 7.-q 静默输出