美文网首页
ZooKeeper的安装与部署

ZooKeeper的安装与部署

作者: yellow_han | 来源:发表于2018-08-15 09:45 被阅读0次

    注意点:最新版本3.5.5开始,带有bin名称的包才是我们想要的下载可以直接使用的里面有编译后的二进制的包,而之前的普通的tar.gz的包里面是只是源码的包无法直接使用。

    一、单机安装

    1.1 下载

    进入要下载的版本的目录,选择.tar.gz文件下载

    下载链接:http://archive.apache.org/dist/zookeeper/

    1.2 安装

    使用tar解压要安装的目录即可,以3.4.13版本为例

    这里以解压到/opt/data/software,实际安装根据自己的想安装的目录修改(注意如果修改,那后边的命令和配置文件中的路径都要相应修改)

    tar -zxf zookeeper-3.4.13.tar.gz -C /opt/data/software
    
    1.3 配置

    在主目录下创建data和logs两个目录用于存储数据和日志:

    cd /opt/data/zookeeper-3.4.13
    mkdir data
    mkdir logs
    

    在conf目录下新建zoo.cfg文件,写入以下内容保存:

    tickTime=2000
    dataDir=/opt/data/zookeeper-3.4.13/data
    dataLogDir=/opt/data/zookeeper-3.4.13/logs
    clientPort=2181
    
    1.4 启动和停止

    进入bin目录,启动、停止、重启分和查看当前节点状态(包括集群中是何角色)别执行:

    ./zkServer.sh start
    ./zkServer.sh stop
    ./zkServer.sh restart
    ./zkServer.sh status
    

    二、伪集群模式

    伪集群模式就是在同一主机启动多个zookeeper并组成集群,下边以在192.168.220.128主机上创3个zookeeper组集群为例。

    将通过第一大点安装的zookeeper,复制成zookeeper1/zookeeper2/zookeeper3三份

    **myid文件,其内容分别为1,2,3。然后分别在这三台机器上启动zk进程,这样我们便将zk集群启动了起来。**
    
    2.1 zookeeper1配置

    zookeeper1配置文件conf/zoo.cfg修改如下:

    复制代码

    tickTime=2000
    dataDir=/opt/data/zookeeper1/data
    dataLogDir=/opt/data/zookeeper1/logs
    clientPort=2181
    initLimit=5
    syncLimit=2
    server.1=192.168.220.128:2888:3888
    server.2=192.168.220.128:4888:5888
    server.3=192.168.220.128:6888:7888
    

    复制代码
    zookeeper1的data/myid配置如下:

    echo '1' > data/myid
    
    2.2 zookeeper2配置

    zookeeper2配置文件conf/zoo.cfg修改如下:

    复制代码

    tickTime=2000
    dataDir=/opt/data/zookeeper2/data
    dataLogDir=/opt/data/zookeeper2/logs
    clientPort=3181
    initLimit=5
    syncLimit=2
    server.1=192.168.220.128:2888:3888
    server.2=192.168.220.128:4888:5888
    server.3=192.168.220.128:6888:7888
    

    复制代码
    zookeeper2的data/myid配置如下:

    echo '2' > data/myid
    
    2.3 zookeeper3配置

    zookeeper3配置文件conf/zoo.cfg修改如下:

    复制代码

    tickTime=2000
    dataDir=/opt/data/zookeeper3/data
    dataLogDir=/opt/data/zookeeper3/logs
    clientPort=4181
    initLimit=5
    syncLimit=2
    server.1=192.168.220.128:2888:3888
    server.2=192.168.220.128:4888:5888
    server.3=192.168.220.128:6888:7888
    

    复制代码
    zookeeper3的data/myid配置如下:

    echo '3' > data/myid
    

    最后使用1.4的命令把三个zookeeper都启动即可,启动顺序随意没要求。

    三、集群模式

    集群模式就是在不同主机上安装zookeeper然后组成集群的模式;下边以在192.168.220.128/129/130三台主机为例。

    将第1.1到1.3步中安装好的zookeeper打包复制到129和130上,并都解压到同样的目录下。

    3.1 conf/zoo.cfg文件修改

    三个zookeeper的conf/zoo.cfg修改如下:

    复制代码

    tickTime=2000
    dataDir=/opt/data/zookeeper-3.4.13/data
    dataLogDir=/opt/data/zookeeper-3.4.13/logs
    clientPort=2181
    initLimit=5
    syncLimit=2
    server.1=192.168.220.128:2888:3888
    server.2=192.168.220.129:2888:3888
    server.3=192.168.220.130:2888:3888
    

    复制代码
    对于129和130,由于安装目录都是zookeeper-3.4.13所以dataDir和dataLogDir不需要改变,又由于在不同机器上所以clientPort也不需要改变

    所以此时129和130的conf/zoo.cfg的内容与128一样即可。

    3.2 data/myid文件修改

    128 data/myid修改如下:

    echo '1' > data/myid
    

    129 data/myid修改如下:

    echo '2' > data/myid
    

    130 data/myid修改如下:

    echo '3' > data/myid
    

    最后使用1.4的命令把三个zookeeper都启动即可,启动顺序随意没要求。

    initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 10 个心跳的时间(也就是 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 实例通信端口号不能一样,所以要给它们分配不同的端口号。

    data/myid:myid的值是zoo.cfg文件里定义的server.A项A的值,Zookeeper 启动时会读取这个文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断到底是那个server,只是一个标识作用。

    相关文章

      网友评论

          本文标题:ZooKeeper的安装与部署

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