.personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); border-top-left-radius: 7px; border-top-right-radius: 7px; color: rgba(255, 255, 255, 1); height: 1.8em; line-height: 1.8em; padding: 5px }

1.介绍

  使用集群的方式避免单点故障时目前分布式应用实现高可用的重要手段,ZooKeeper同样可以搭建集群环境。

2.说明

  1)服务器名称与地址:

    集群信息(服务器编号,服务器地址,LF通信端口,选举端口);

    配置项的格式为:server.N=IP:A:B

    N:服务器编号

    IP:服务器的IP地址

    A:LF通信端口,用来和leader交换信息

    B:leader挂掉后选举新leader的端口

  注:一般来说,集群中每个服务器的A端口都是一样,每个服务器的B端口也是一样。

  2)搭建集群的环境的两种方式:

    ①同一主机的不同服务;

      例:

      server.1=127.0.0.1:2018:6008

      server.2=127.0.0.1:2017:6007

      server.3=127.0.0.1:2019:6009

    ②不同主机的相同或不同服务

      例:

      server.1=233.34.9.145:2019:6009

      server.2=233.34.9.146:2019:6009

      server.3=233.34.9.147:2019:6009

3.搭建步骤

  这里以同一主机的不同服务为例。

  总体思路为:将原始的zookeeper压缩包解压;将解压复制后的zookeeper01修改一些公共配置,然后再复制两份;最后逐个修改各个服务的配置文件

  1)解压,复制

    ①tar -xzvf zookeeper-3.4.9.tar.gz

    ②cp -r zookeeper-3.4.9 zookeeper01

  2) 创建data数据文件和myid文件(myid文件定位服务)

    ①cd zookeeper01/

    ②mkdir data  //建数据目录文件

    ③cd data/

    ④touch myid  //创建myid文件

    ⑤echo 1 >> myid  //将服务器的编号写在这里面

  3)修改zookeeper01/conf/下的配置文件

    ①cp zoo_sample.cfg zoo.cfg

    ②vim zoo.cfg

      将其中的dataDir修改为之前建的data的所在路径;然后再其末尾加上  集群信息(服务器编号,服务器地址,LF通信端口,选举端口)保存退出。如下图:

  4)再复制两份

    cp -r zookeeper01/ zookeeper02

    cp -r zookeeper01/ zookeeper03

  5)将复制的修改其中的myid的2和3;

    echo 2 > /opt/zookeeper02/data/myid

    echo 3 > /opt/zookeeper03/data/myid

  6)复制后的再修改zoo.cfg中的dataDir和clientPort对应的值,如图:

    

4. 分别启动服务

  /opt/zookeeper03/bin/zkServer.sh start

  /opt/zookeeper02/bin/zkServer.sh start

  /opt/zookeeper01/bin/zkServer.sh start

  分别查看启动的状态

  /opt/zookeeper03/bin/zkServer.sh status

  /opt/zookeeper02/bin/zkServer.sh status

  /opt/zookeeper01/bin/zkServer.sh status

  若其状态为:Mode: follower 或 Mode: leader 表示启动成功。

  注意有时候,执行了启动命令,但是并未真的启动,所以需要查看状态。单个启动一个时可能会报错,需要一起启动其他的服务后,才能正常启动。

5.启动客户端,连接服务器

  在 -server 参数中指定要连接的服务器

  打开三个终端,分别输入

  /opt/zookeeper01/bin/zkCli.sh -server 127.0.0.1:2181

  /opt/zookeeper02/bin/zkCli.sh -server 127.0.0.1:2182

  /opt/zookeeper03/bin/zkCli.sh -server 127.0.0.1:2183

  如下图:

至此,三台服务搭建完成。在任何一台服务器上操作(增删节点,设置、修改节点值),在其他的服务器均能看到同步的数据

zookeeper的集群搭建的更多相关文章

  1. 分享知识-快乐自己:zookeeper 伪集群搭建

    1):单一 zookeeper  搭建步骤 2):zookeeper 伪集群搭建 1):新建一个集群目录 [root@zoodubbo opt]# mkdir zookeeper_cluster 2) ...

  2. zookeeper伪集群搭建

    zookeeper伪集群搭建 1. 下载zookeeper: https://zookeeper.apache.org/ 2. 解压: tar -zxvf zookeeper-3.4.14.tar.g ...

  3. Zookeeper分布式集群搭建

    实验条件:3台安装linux的机子,配置好Java环境. 步骤1:下载并分别解包到每台机子的/home/iHge2k目录下,附上下载地址:http://mirrors.cnnic.cn/apache/ ...

  4. 初始zookeeper与集群搭建实例

    zookeeper是什么 Zookeeper,一种分布式应用的协作服务,是Google的Chubby一个开源的实现,是Hadoop的分布式协调服务,它包含一个简单的原语集,应用于分布式应用的协作服务, ...

  5. Zookeeper + Kafka 集群搭建

    第一步:准备 1. 操作系统 CentOS-7-x86_64-Everything-1511 2. 安装包 kafka_2.12-0.10.2.0.tgz zookeeper-3.4.9.tar.gz ...

  6. [dubbo实战] dubbo+zookeeper伪集群搭建

    zookeeper作为注册中心,服务器和客户端都要访问,如果有大量的并发,肯定会有等待.所以可以通过zookeeper集群解决. 一.为什么需要zookeeper呢? 大部分分布式应用需要一个主控.协 ...

  7. [dubbo实战] dubbo+zookeeper伪集群搭建 (转)

    zookeeper作为注册中心,服务器和客户端都要访问,如果有大量的并发,肯定会有等待.所以可以通过zookeeper集群解决. 一.为什么需要zookeeper呢? 大部分分布式应用需要一 个主控. ...

  8. 初识ZooKeeper与集群搭建实例

    原文链接:http://www.linuxidc.com/Linux/2015-02/114230.htm zookeeper是什么 Zookeeper,一种分布式应用的协作服务,是Google的Ch ...

  9. Zookeeper+ActiveMQ集群搭建

    搭建三台虚拟机安装centos7.要提前安装好jdk环境 1.环境准备,搭建三台虚拟机ip分别是 192.168.192.130 192.168.192.131 192.168.192.134 Zoo ...

  10. JAVAEE——宜立方商城08:Zookeeper+SolrCloud集群搭建、搜索功能切换到集群版、Activemq消息队列搭建与使用

    1. 学习计划 1.solr集群搭建 2.使用solrj管理solr集群 3.把搜索功能切换到集群版 4.添加商品同步索引库. a) Activemq b) 发送消息 c) 接收消息 2. 什么是So ...

随机推荐

  1. 100、nginx_https安全链接配置

    100.1. tcp的三次握手和四次挥手的过程: 1.三次握手(建立连接): 第一次:建立连接时,客户端发送SYN包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认: 第二次:服务器 ...

  2. SpringBoot:SpringBoot项目的配置文件放在Jar包外加载

    SpringBoot读取配置文件的优先级为: 第一.项目jar包同级下的config文件夹是优先级最高的,是在执行命令的目录下建config文件夹.(在jar包的同一目录下建config文件夹,执行命 ...

  3. springboot集成swagger添加消息头(header请求头信息)

    springboot集成swagger上篇文章介绍: https://blog.csdn.net/qiaorui_/article/details/80435488 添加头信息: package co ...

  4. 大数据-Hadoop 伪分布模式

    1. 分析 (1)配置集群 (2)启动.测试集群增.删.查 (3)执行WordCount案例 2. 执行步骤 (1)配置集群 (a)配置:hadoop-env.sh Linux系统中获取JDK的安装路 ...

  5. python 两种排序方法 sort() sorted()

    python中有两种排序方法,list内置sort()方法或者python内置的全局sorted()方法 区别为: sort()方法对list排序会修改list本身,不会返回新list.sort()只 ...

  6. Javascript实现数组去重 [转]

    1.遍历数组法 它是最简单的数组去重方法(indexOf方法) 实现思路:新建一个数组,遍历去要重的数组,当值不在新数组的时候(indexOf为-1)就加入该新数组中: var arr=[2,8,5, ...

  7. CF1539C Stable Groups[题解]

    Stable Groups 题目大意 给定 \(n\) 个数 \(a_i\) ,你可以将这些数分成若干组,但每一组的元素满足按升序排列后,相邻两个元素值的差不超过 \(x\) .在分组前,你可以向这些 ...

  8. Linux下如何使用Rsync备份服务器重要数据

    Rsync介绍: Rsync英文全称Remote synchronization,从软件的名称就可以看出来,Rsync具有可使本地和远程两台主机之间的数据快速复制同步镜像,远程备份的功能,这个功能类似 ...

  9. Shell循环语句for、while、until

    Shell循环语句for.while.until            一.条件测试            二.删除字符            三.循环语句              示例1     ...

  10. Java基础00-集合基础15

    1. 集合基础 1.1 集合概述 1.2 ArrayList构造方法和添加方法 代码示例: 想通过指定索引添加到最后一个位置的话就填写,现有索引的+1,比如3个索引就是4.如果在指定索引的位置添加没有 ...