zookeeper集群(二)
经过前一篇文章《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集群(二)的更多相关文章
- Zookeeper(二) zookeeper集群搭建 与使用
一.zookeeper集群搭建 鉴于 zookeeper 本身的特点,服务器集群的节点数推荐设置为奇数台.我这里我规划为三台, 为别为 hadoop01,hadoop02,hadoop03 1. ...
- Docker应用系列(二)| 构建Zookeeper集群
本示例基于Centos 7,在阿里云的三台机器上部署zookeeper集群,假设目前使用的账号为release,拥有sudo权限. 由于Docker官方镜像下载较慢,可以开启阿里云的Docker镜像下 ...
- kafka学习(二)-zookeeper集群搭建
zookeeper概念 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名 服务等.Zookeeper是h ...
- Kafka/Zookeeper集群的实现(二)
[root@kafkazk1 ~]# wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12. ...
- 构建高可用ZooKeeper集群
ZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效.高可用的分布式协调服务,提供了诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知和分布式锁等分布式基础服务.由于 Zo ...
- 分布式架构中一致性解决方案——Zookeeper集群搭建
当我们的项目在不知不觉中做大了之后,各种问题就出来了,真jb头疼,比如性能,业务系统的并行计算的一致性协调问题,比如分布式架构的事务问题, 我们需要多台机器共同commit事务,经典的案例当然是银行转 ...
- Zookeeper集群的安装和使用
Apache Zookeeper 由 Apache Hadoop 的 Zookeeper 子项目发展而来,现已经成为 Apache 的顶级项目,它是一个开放源码的分布式应用程序协调服务,是Google ...
- Zookeeper集群部署
一. 部署前的准备工作 保证各个主机之间能够正常通信,最好是在同一网段. 修改host文件,加入IP和主机名的映射.方法为修改/etc/hosts和etc/hostname文件,不同的Linux发行版 ...
- kafka集群和zookeeper集群的部署,kafka的java代码示例
来自:http://doc.okbase.net/QING____/archive/19447.html 也可参考: http://blog.csdn.net/21aspnet/article/det ...
随机推荐
- springboot2.x如何配置全局自定义异常
为什么要捕获异常? 我们开发中,经常运行时,代码会报错,这时候我们有可能抛出异常,而不是用try..catch来解决.而且现在前后端分离,如果不捕获异常的话,前端那边的人估计会被报的错搞得焦头烂额的. ...
- vueHistory 模式下,布置到服务器上路由刷新会报nginx404错误
之前写完vue项目后,布置到服务器,用nginx反向代理后,一开始进去,进各种路由都是没问题的,但是一旦f5刷新后就会出现一个nginx404的错误. 经过翻阅vue文档后,发现这是vueHistor ...
- __getattr__,__getattribute__????
class Foo(object): def __getattr__(sel,item): print('y') def __getattribute(self,item): print('x') o ...
- 高仿饿了么mock本地数据
未使用router新版webpack.dev.conf.js配置本地数据访问:// 引入express 模块 const express = require('express') // 创建expre ...
- (三)JavaScript之[事件]与[字符串]
5].事件**JavaScript事件:HTML事件 * HTML事件是发生在HTML元素上的事情 * HTML事件可以是[浏览器的行为],也可以是[用户的行为] * * 实例: * HTML页面完成 ...
- VirtualBox中linux虚拟机和主机间的共享文件设置
设置共享文件路径 点击虚拟机 设置-->选择 共享文件夹 (图1 设置共享文件夹) 设置共享文件夹路径 1 选择路径 2 填写自定义的共享名称(在后面需要与挂载路径相对应) 3 设置自动挂载/固 ...
- PS:将一个图片变成圆形
1.选择一张正方形图片并放置到PS软件中 2.选择“选框工具”->右击选择"椭圆选框工具” 3.画出你要圆形内的范围: 4.选择两种方式中的一种,实际上效果是一毛一样的 5.右下角就会 ...
- linux系统管理命令kata练习
磁盘管理 #打印当前目录下,各个文件大小和目录的磁盘空间占用情况. #获取硬盘被占用了多少空间,目前还剩下多少空间等信息 df -lh #查看管理磁盘分区 fdisk -l #制作文件系统 mkfs ...
- Xamarin.Forms随手记
1. 更新Android SDK要从VS的工具栏上SDK Manager那里更新,不要像我一样之前搞了好几份SDK放在不同的地方,结果把自己搞糊涂了,更新了半天(真的是花了半天时间)才发现更新的地方不 ...
- IntelliJ IDEA / Eclipse 自动生成 Author 注释 签名
Author 注释 签名如下: /*** @author 稚枭天卓 E-mail:zhxiaotianzhuo@163.com* @version 创建时间:2016-6-20 下午04:58:52* ...