经过前一篇文章《zookeeper伪集群一》的阅读,相信大家对zookeeper集群已经有一定的了解了,接下来我们再谈谈zookeeper真集群。其实真集群和伪集群还是有很多相似的部分的,我将模拟3台集群服务并且对其中一台集群服务的配置进行讲解,接下来两台操作基本一模一样。

 铺垫:

    1、 本人创建3台虚拟机,Linux版本为CentOS7,工具为vmware12

2、外部链接虚拟机的工具为小xmanager5,这个工具只是方便一些,你也可以不用

     3、需要提前在虚拟机上装好jdk1.7及以上版本,我使用的是1.8版本的,如果不会装jdk,可以参照我的另一篇文章《Linux下的jdk安装》

4、本人将3台虚拟机创建好,获取到的外网地址分别为192.168.0.124,192.168.0.129,192.168.0.127,我分别取别名为CentOS1,CentOS3,CentOS4

       5、接下来的说明中,如果有关联关系的地方,我会加粗并且用相同颜色进行标注

  搭建:

     1、修改zookeeper下的zoo.cfg文件,具体内容如下: 

tickTime=2000
syncLimit=10
initLimit=5
= 192.168.0.124:2887:3887
server. = 192.168.0.129:2887:3887
server. = 192.168.0.127:2887:3887

因为是集群,所以3台机器的端口号可以完全一致,可以共用一个zoo.cfg文件

2、在3台虚拟机上分别创建/home/d5000/zk目录,并且在zk下创建data目录,用于存放dataDir配置的映射文件;接下来将zookeeper也传到zk目录下,这一点与伪集群一致

3、在CentOS1机器的/home/d5000/zk/data下创建myid文件,内容是

CentOS3机器的/home/d5000/zk/data下创建myid文件,内容是

CentOS4机器的/home/d5000/zk/data下创建myid文件,内容是

      4、分别给3台机器zookeeper权限,否则如何启动呢?可以先给zookeeper一个启动权限,进入/home/d5000/zk/zookeeper/bin,执行chmod 777  zkServer.sh

至此,集群创建完毕,真叫那个简单呀,开开心心的进行测试,分别进行启动,   ./ zkServer.sh start ,第一台报错,第二台报错,第三台还是报错,而且错误信息一致,都是zookeeper no route to host,上网一查发现,有2个可能导致这个问题的出现,一个是防火墙,另一个是hostname。

 排查问题:

1、分别查看3台机器防火墙是否关闭:firewall-cmd --state,发现防火墙确实没有关闭,果断执行关闭systemctl stop firewalld.service

2、修改CentOS1机器,执行hostname  server.1 命令

     修改CentOS3机器,执行hostname  server.2 命令

               修改CentOS4机器,执行hostname  server.3 命令

         3、重启虚拟机,init 6     接下来重启服务

4,结果还是报一样的错误  zookeeper no route to host,瞬间懵逼

    

                                                    

  -----------------------------------------------------------------------以下都是心碎,省略一万字-------------------------------------------------------------------------

经过多方努力,最终在掌握一定的虚拟机知识后才发现,systemctl stop firewalld.service关闭的防火墙是暂时的,只要服务一重启防火墙立马又生效,还有那个hostname也一样:

最终修改

      1、彻底禁用防火墙:systemctl disable firewalld.service

2、修改CentOS1机器/etc/hostname文件,内容为server.1

         修改CentOS3机器/etc/hostname文件,内容为server.2

修改CentOS4机器/etc/hostname文件,内容为server.3(永久修改)

3、启动第一台、第二台发现还是有错误信息,但是现在的错误信息意见转变为connect refuesd(拒绝链接),继续启动第三台服务器,发现没有报错信息,而且测试后发现集群服务正常,第一                     台报错是因为第二第三台服务器没有启动导致,第二台报错是因为第三台集群服务没启动导致。这些错误完全不妨碍集群

下面提供一下最简单的测试,在192.168.0.124执行  telent  192.168.0.127 3001       telent  192.168.0.129 3001   如果都能链接成功,说明各自的服务已经能够正常运行,并且可以进行通信,接下来可以通过代码进行更加完善的测试。

效果如图:

                                    完毕

zookeeper集群(二)的更多相关文章

  1. Zookeeper(二) zookeeper集群搭建 与使用

    一.zookeeper集群搭建 鉴于 zookeeper 本身的特点,服务器集群的节点数推荐设置为奇数台.我这里我规划为三台, 为别为 hadoop01,hadoop02,hadoop03    1. ...

  2. Docker应用系列(二)| 构建Zookeeper集群

    本示例基于Centos 7,在阿里云的三台机器上部署zookeeper集群,假设目前使用的账号为release,拥有sudo权限. 由于Docker官方镜像下载较慢,可以开启阿里云的Docker镜像下 ...

  3. kafka学习(二)-zookeeper集群搭建

    zookeeper概念 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名 服务等.Zookeeper是h ...

  4. Kafka/Zookeeper集群的实现(二)

    [root@kafkazk1 ~]# wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12. ...

  5. 构建高可用ZooKeeper集群

    ZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效.高可用的分布式协调服务,提供了诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知和分布式锁等分布式基础服务.由于 Zo ...

  6. 分布式架构中一致性解决方案——Zookeeper集群搭建

    当我们的项目在不知不觉中做大了之后,各种问题就出来了,真jb头疼,比如性能,业务系统的并行计算的一致性协调问题,比如分布式架构的事务问题, 我们需要多台机器共同commit事务,经典的案例当然是银行转 ...

  7. Zookeeper集群的安装和使用

    Apache Zookeeper 由 Apache Hadoop 的 Zookeeper 子项目发展而来,现已经成为 Apache 的顶级项目,它是一个开放源码的分布式应用程序协调服务,是Google ...

  8. Zookeeper集群部署

    一. 部署前的准备工作 保证各个主机之间能够正常通信,最好是在同一网段. 修改host文件,加入IP和主机名的映射.方法为修改/etc/hosts和etc/hostname文件,不同的Linux发行版 ...

  9. kafka集群和zookeeper集群的部署,kafka的java代码示例

    来自:http://doc.okbase.net/QING____/archive/19447.html 也可参考: http://blog.csdn.net/21aspnet/article/det ...

随机推荐

  1. 《Head First 设计模式》之状态模式——糖果机

    状态模式(State) ——允许对象在内部状态时改变它的行为,对象看起来好像修改了它的类. 策略模式与状态模式的区别 状态主体(拥有者)持有状态对象,运行时可以通过动态指定状态对象来改变类的行为 策略 ...

  2. idea 插件描述(转)

    提供些idea插件的干货.干货.干货! 如何安装idea plug,方法如下图:如果安装不了考虑下是否代理问题: 1,maven helper 以前查看maven依赖都比较麻烦,需要用命令maven ...

  3. 从零开始的全栈工程师——js篇(闭包)

    闭包是js中的一大特色,也是一大难点.简单来说,所谓闭包就是说,一个函数能够访问其函数外部作用域中的变量. 闭包的三大特点为: 1.函数嵌套函数 2.内部函数可以访问外部函数的变量 3.参数和变量不会 ...

  4. mysql测试和sysbench工具详解

    前言 作为一名后台开发,对数据库进行基准测试,以掌握数据库的性能情况是非常必要的.本文介绍了MySQL基准测试的基本概念,以及使用sysbench对MySQL进行基准测试的详细方法. 文章有疏漏之处, ...

  5. seleniumCSS用法

    http://sauceio.com/index.php/2009/10/selenium-tip-of-the-week-start-improving-your-locators/ http:// ...

  6. hive自定义UDTF函数叉分函数

    hive自定义UDTF函数叉分函数 1.介绍 从聚合体日志中需要拆解出来各子日志数据,然后单独插入到各日志子表中.通过表生成函数完成这一过程. 2.定义ForkLogUDTF 2.1 HiveUtil ...

  7. avast从隔离区恢复后,仍无法打开被误杀文件的解决方案

    从隔离区中手动恢复后,隔离区中被恢复的文件将不再展示. 此时,如果手动恢复的文件仍无法打开(图标此时也异常),请: 将avast禁用: 将avast启用. 然后尝试重新打开被误隔离并手动恢复的文件.

  8. Codeforces Codeforces Round #383 (Div. 2) E (DFS染色)

    题目链接:http://codeforces.com/contest/742/problem/E 题意: 有一个环形的桌子,一共有n对情侣,2n个人,一共有两种菜. 现在让你输出一种方案,满足以下要求 ...

  9. rsync安装配置实时同步

    一.简介 1.认识 Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.Rsync使用所谓的“Rsync算法”来使本地和远 程两个主 ...

  10. WPF中TreeView单击展开其子元素以及点击一个元素展开其他元素收起

    TreeView单击展开其子元素: 在WPF的TreeView控件中,要想展开它的子元素,我们必须要鼠标左键点两下或者右键点一下,那么我们怎样实现左键点一下就使它展开呢? Xaml: <Grid ...