• Linux Zookeeper 安装, 带视频


    疯狂创客圈 Java 高并发【 亿级流量聊天室实战】实战系列 【博客园总入口

    面试必备+面试必备之 高并发基础书籍 【Netty Zookeeper Redis 高并发实战


    疯狂创客圈 高并发 环境 视频,陆续上线:

    • Windows Redis 安装(带视频)
    • Linux Redis 安装(带视频)
    • Windows Zookeeper 安装(带视频)
    • Linux Zookeeper 安装(带视频)
    • RabbitMQ 离线安装(带视频)
    • Nacos 安装(带视频)
    • ElasticSearch 安装, 带视频

    小视频以及所需工具的百度网盘链接,请参见 疯狂创客圈 高并发社群 博客

    1 何为伪集群模式

    在学习环境中,如果没有多余的服务器,这里就将三个ZooKeeper 节点都安装到本地机器上,故称谓伪集群模式。
    虽然,伪集群模式只是便于开发、普通测试,尽量不用于生产环境。从学习的角度来说,如果了解了伪集群模式下的安装和配置,生产环境下的安装和配置的方法,也是大致差不多的。

    安装ZooKeeper之前,需要规划一下伪集群节点的个数,ZooKeeper节点数有以下要求:
    (1)ZooKeeper集群节点数必须是基数。
    为什么呢?ZooKeeper 集群中,需要一个主节点,称之为leader节点。leader节点是集群通过选举的规则,从所有节点中选举出来的。选举的规则中很重要的一条是:要求可用节点数量 > 总节点数量/2 。如果是偶数个节点,则可能会出现不满足这个规则的情况。
    (2)ZooKeeper集群至少是3个。
    ZooKeeper可以通过一个节点,正常启动和提供服务。但是,一个节点的ZooKeeper服务,不能叫做集群,其可靠性大打折扣,仅仅作为学习使用。正常情况下,搭建ZooKeeper集群,至少需要3个节点。

    这里,作为学习案例,在本地机器上,规划搭建一个3个节点的伪集群。 实际上,启动的时候,启动两个节点,Zookeeper就可以正常工作了。

    2 下载并解压缩

    首先是下载。在apache的官方网站提供了好多镜像下载地址,然后找到对应的版本,目前最新的是3.4.13。

    http://mirrors.cnnic.cn/apache/ZooKeeper/ZooKeeper-3.4.13/ZooKeeper-3.4.13.tar.gz

    疯狂创客圈网盘,已经备好的安装包,也可以直接下载

    mkdir -p  /work/zookeeper/zooKeeper-3.4.13
    tar  -zxvf  /work/zookeeper/zooKeeper-3.4.13.tar.gz   -C   /work/zookeeper/zooKeeper-3.4.13
    

    3 安装Zookeeper

    安装集群的第一步,在安装目录下,创建好两个目录:日志目录、数据目录。

    mkdir -p  /work/zookeeper/zooKeeper-3.4.13/data
    
    mkdir -p   /work/zookeeper/zooKeeper-3.4.13/logs
    

    进入 /work/zookeeper/zooKeeper-3.4.13/conf目录,把zoo_sample.cfg文件复制一份名字改成zoo.cfg。

    cp zoo_sample.cfg zoo.cfg
    

    4 修改zoo.cfg 配置文件

    修改zoo.cfg 配置文件,设置日志目录、数据目录、客户端连接端口、伪集群节点的配置

    dataDir=/work/zookeeper/zookeeper_01/data
    
    dataLogDir=/work/zookeeper/zookeeper_01/logs
    
    clientPort=2181
    
    
    server.1=192.168.71.82:2881:3881
    
    server.2=192.168.71.82:2882:3882
    
    server.3=192.168.71.82:2883:3883
    

    两个目录设置选项的介绍如下:

    
    dataDir=/work/zookeeper/zookeeper_01/data
    
    dataLogDir=/work/zookeeper/zookeeper_01/logs
    
    

    (1)dataDir:数据目录选项,配置为前面准备的数据目录。myid文件,处于此目录下。
    (2) dataLogDir:日志目录选项, 配置为前面准备的日志目录。如果没有设置该参数,默认将使用和dataDir相同的设置。

    clientPort = 2181 的介绍如下:

    clientPort: 表示client客户端连接ZooKeeper集群中的节点的端口号。在生成环境的集群中,不同的节点,处于不同的机器,端口号一般都相同,便于记忆和使用。由于这里是伪集群模式,所以,三个节点集中在一台机器上,所以3个端口号,配置为不一样。
    clientPort:一般设置为2181。伪集群下,不同的节点,clientPort不能相同,可以按照编号,进行累加。

    集群节点信息的配置,示例如下:

    server.1=127.0.0.1:2888:3888
    server.2=127.0.0.1:2889:3889
    server.3=127.0.0.1:2890:3890
    

    节点信息,需要配置集群中所有节点的 (id)编号、IP、端口。在“.cfg”配置文件中,可以按照这样的格式进行配置,每一行都代表一个节点。一个节点格式为:

    server.id=host:port:port
    

    在ZooKeeper集群中,每个节点都需要感知到整个集群是哪些节点组成,所以,每一个配置文件,都需要配置全部的节点。

    总体来说,配置节点的时候,注意四点:
    (1)不能有相同id的节点,需要确保每个节点的myid文件中的id值不同;
    (2)每一行 “server.id=host:port:port”中的id值,需要与所对应节点的数据目录下的myid中的id值,保持一致;
    (3)每一个配置文件,都需要配置全部的节点信息。不仅仅是配置自己的那份,而是需要所有节点的id、ip、端口配置。
    (4)每一行 “server.id=host:port:port”中,需要配置两个端口。前一个端口为通信端口(如示例中的2888)用于节点之间的通讯使用,后一个端口为选主端口(如上的3888)用于选举 leader主节点使用。
    (5)在伪集群的模式下,每一行记录,相同的端口必须修改都不一样,主要是避免端口冲突。在分布式集群模式下,由于不同节点的ip不同,每一行记录,可以端口相同。

    5 创建myid文件文件

    在data目录下,为每一个节点,创建一个id文件。每一个节点,需要有一个记录节点id 的文本文件,文件名为myid。myid文件的特点如下:
    (1)myid文件的唯一作用,是记录(伪)节点的编号;
    (2)myid文件是一个文本文件,文件名称为myid;
    (3)myid文件内容为一个数字,表示节点的编号;
    (4)myid文件中,只能有一个数字,不能有其他的内容;
    (5)myid文件的存放位置,默认处于数据目录下面。

    ZooKeeper对id的值,有何要求呢?
    首先,myid文件中id的值,只能是一个数字,即一个节点的编号ID;
    其次,id的范围是1~255,表示集群最多的节点个数为255个。

    6 复制节点

    将zooKeeper-3.4.13 复制三份分别取名为zookeeper_01和zookeeper_02和zookeeper_03。第三份可以复制也可以不复制。

    cp  /work/zooKeeper/zooKeeper-3.4.13   /work/zooKeeper/zookeeper_01
    
    cp  /work/zooKeeper/zooKeeper-3.4.13   /work/zooKeeper/zookeeper_02
    
    cp  /work/zooKeeper/zooKeeper-3.4.13   /work/zooKeeper/zookeeper_03
    

    并且在每一份的配置文件中,修改正确的路径,端口号、以及myid 文件的编号。

    比如 /work/zookeeper_02的/conf/zoo.cfg的配置项,修改如下。

    dataDir=/data/zookeeper/zookeeper_02/data
    
    dataLogDir=/data/zookeeper/zookeeper_02/logs
    
    clientPort=2182
    
    server.1=192.168.71.82:2881:3881
    
    server.2=192.168.71.82:2882:3882
    
    server.3=192.168.71.82:2883:3883
    

    比如 /work/zookeeper_02/data/myid的数字,也需要对应修改为2。

    7.启动

    分别进入启动三台服务。至少2台。

    /work/zookeeper/zookeeper-01/bin/zkServer.sh start
    
    /work/zookeeper/zookeeper-02/bin/zkServer.sh start
    
    
    

    10.启动完成后,查看服务状态。

    /work/zookeeper/zookeeper-02/bin/zkServer.sh  status
    

    8 设置开机启动

    在开机启动命令文件中,加入两行,命令如下:

    vim /etc/rc.local 
    

    加入两行,如下:

    
    /usr/bin/su  - root  -c   "/work/zookeeper/zookeeper-01/bin/zkServer.sh start"
    /usr/bin/su  - root  -c   "/work/zookeeper/zookeeper-02/bin/zkServer.sh start"
    

    具体,请关注 Java 高并发研习社群博客园 总入口


    最后,介绍一下疯狂创客圈:疯狂创客圈,一个Java 高并发研习社群博客园 总入口

    疯狂创客圈,倾力推出:面试必备 + 面试必备 + 面试必备 的基础原理+实战 书籍 《Netty Zookeeper Redis 高并发实战

    img


    疯狂创客圈 Java 死磕系列

    • Java (Netty) 聊天程序【 亿级流量】实战 开源项目实战

  • 相关阅读:
    反转链表 16
    CodeForces 701A Cards
    hdu 1087 Super Jumping! Jumping! Jumping!(动态规划)
    hdu 1241 Oil Deposits(水一发,自我的DFS)
    CodeForces 703B(容斥定理)
    poj 1067 取石子游戏(威佐夫博奕(Wythoff Game))
    ACM 马拦过河卒(动态规划)
    hdu 1005 Number Sequence
    51nod 1170 1770 数数字(数学技巧)
    hdu 2160 母猪的故事(睡前随机水一发)(斐波那契数列)
  • 原文地址:https://www.cnblogs.com/crazymakercircle/p/12006500.html
Copyright © 2020-2023  润新知