美文网首页
mac下安装及使用zookeeper

mac下安装及使用zookeeper

作者: NoException | 来源:发表于2017-03-03 11:21 被阅读0次

    安装zookeeper

    1.下载zookeeper

    https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.9/

    2.解压,在conf目录下创建并配置zoo.cfg文件

    文件内容如下:

    # The number of milliseconds of each tick

    tickTime=2000

    # 配置leader节点和follower节点启动并且完成数据同步的时间

    initLimit=10

    # leader节点和follower节点心跳检测的最大延迟时间

    syncLimit=5

    # 存储快照的目录

    dataDir=/tmp/zookeeper/data

    # 对外暴露的端口

    clientPort=2181

    3.到安装目录的bin目录运行 启动zookeeper

    ./zookeeper.sh start

    4.停止zookeeper

    ./zookeeper.sh stop

    5.前台启动zookeeper,方便查看日志

    zkServer.sh start-foreground

    6.zookeeper集群

    Zookeeper 不仅可以单机提供服务,同时也支持多机组成集群来提供服务。实际上 Zookeeper 还支持另外一种伪集群的方式,也就是可以在一台物理机上运行多个 Zookeeper 实例,下面将介绍集群模式的安装和配置。

    Zookeeper 的集群模式的安装和配置也不是很复杂,所要做的就是增加几个配置项。集群模式除了上面的三个配置项还要增加和修改下面几个配置项:

    initLimit=5

    syncLimit=3

    server.1=localhost:2888:3888

    server.2=localhost:2889:3889

    server.3=localhost:2890:3890

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

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

    server.<id>=<ip>:<port1>:<port2>

    其中 

    id是一个数字,表示这个是第几号服务器;

    ip 是这个服务器的 ip 地址;

    port1 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;

    port2 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 ip 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。

    除了修改 zoo.cfg 配置文件,集群模式下还要配置一个文件 myid,这个文件在 dataDir 目录下,这个文件里面就有一个数据就是 id 的值,Zookeeper 启动时会读取这个文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断到底是那个 server。

    7.集群实现代码

    将zoo_sample.cfg 拷贝3分 zoo1.cfg,zoo2.cfg,zoo3.cfg   ******************************************************************

    1).zoo1.cfg: 

    # The number of milliseconds of each tick

    tickTime=2000

    # 配置leader节点和follower节点启动并且完成数据同步的时间

    initLimit=10

    # leader节点和follower节点心跳检测的最大延迟时间

    syncLimit=5

    # 存储快照的目录

    dataDir=/tmp/zookeeper/data1

    # 对外暴露的端口

    clientPort=2181

    server.1=localhost:2888:3888

    server.2=localhost:2889:3889

    server.3=localhost:2890:3890

    2).zoo2.cfg 

    # The number of milliseconds of each tick

    tickTime=2000

    # 配置leader节点和follower节点启动并且完成数据同步的时间

    initLimit=10

    # leader节点和follower节点心跳检测的最大延迟时间

    syncLimit=5

    # 存储快照的目录

    dataDir=/tmp/zookeeper/data2

    # 对外暴露的端口

    clientPort=2182

    server.1=localhost:2888:3888

    server.2=localhost:2889:3889

    server.3=localhost:2890:3890

    3)zoo3.cfg 

    # The number of milliseconds of each tick

    tickTime=2000

    # 配置leader节点和follower节点启动并且完成数据同步的时间

    initLimit=10

    # leader节点和follower节点心跳检测的最大延迟时间

    syncLimit=5

    # 存储快照的目录

    dataDir=/tmp/zookeeper/data3

    # 对外暴露的端口

    clientPort=2183

    server.1=localhost:2888:3888

    server.2=localhost:2889:3889

    server.3=localhost:2890:3890

    分别在 /data,data1,data2,下建立myid 文件,内容分别是1,2,3

    启动zookeeper服务

    分别启动1,2,3:

    ./zkServer.sh start zoo1.cfg

    ./zkServer.sh start zoo2.cfg

    ./zkServer.sh start zoo3.cfg

    前面两个起的时候可能会有错误提示:

    这个可以不用管,等服务都起来之后就不会有这个提示了

    相关文章

      网友评论

          本文标题:mac下安装及使用zookeeper

          本文链接:https://www.haomeiwen.com/subject/rcblgttx.html