【Zookeeper】Re03 集群搭建
我这里采用的是模拟真实情况:
部署三台虚拟机Centos7
192.168.242.101
192.168.242.102
192.168.242.103
每台机器都安装Zookeeper且一致:
/usr/local/apache-zookeeper-3.7.0-bin/
要三台机器上的Zookeeper相互通信,设置比较简单
1、找到ZK配置的dataDir路径,配置myid文件,内容即服务编号
[root@localhost ~]# cat /usr/local/apache-zookeeper-3.7.0-bin/conf/zoo.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/tmp/zookeeper
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1 ## Metrics Providers
#
# https://prometheus.io Metrics Exporter
#metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
#metricsProvider.httpPort=7000
#metricsProvider.exportJvmInfo=true server.1 = 192.168.242.101:2182:3888
server.2 = 192.168.242.102:2182:3888
server.3 = 192.168.242.103:2182:3888 [root@localhost ~]#
zoo.cfg默认是找zoo_sample.cfg复制粘贴的
可以看到dataDir默认是配置在 /tmp/zookeeper
然后配置myid文件:
[root@192.168.242.101 ~]# echo 1 > /tmp/zookeeper/myid [root@192.168.242.102 ~]# echo 2 > /tmp/zookeeper/myid [root@192.168.242.103 ~]# echo 3 > /tmp/zookeeper/myid
然后回到zoo.cfg,把所有Zookeeper都注册一遍:
vim /usr/local/apache-zookeeper-3.7.0-bin/conf/zoo.cfg
格式: server.[myid编号] = ZK服务IP:ZK服务端口:选举端口
在最底下空行处追加
server.1 = 192.168.242.101:2182:3888
server.2 = 192.168.242.102:2182:3888
server.3 = 192.168.242.103:2182:3888
这里要注意,不能再使用单例模式的2181端口,否则ZK报错启动失败,端口已被占用
选举端口在黑马的教程中是使用3881端口,尚硅谷则使用3888,应该是都可以使用的
下一步是开放防火墙端口,也可以直接选择关闭防火墙:
systemctl start firewalld
firewall-cmd --zone=public --add-port=2182/tcp --permanent
firewall-cmd --zone=public --add-port=3888/tcp --permanent
firewall-cmd --reload
然后依次启动Zookeeper:
/usr/local/apache-zookeeper-3.7.0-bin/bin/zkServer.sh start
启动之后检查一下各个ZK的状态是否正常
1号机ZK:
[root@localhost ~]# /usr/local/apache-zookeeper-3.7.0-bin/bin/zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /usr/local/apache-zookeeper-3.7.0-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader
[root@localhost ~]#
2号机ZK:
[root@localhost ~]# /usr/local/apache-zookeeper-3.7.0-bin/bin/zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /usr/local/apache-zookeeper-3.7.0-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
[root@localhost ~]#
3号机ZK:
[root@localhost ~]# /usr/local/apache-zookeeper-3.7.0-bin/bin/zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /usr/local/apache-zookeeper-3.7.0-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
[root@localhost ~]#
可以看到模式发生变化了,选举机制将1号机ZK任命为Leader,2和3号机ZK则任命为Follower
说明集群部署成功
这里补充一个尚硅谷的集群控制脚本,非常实用
# 集群控制脚本
vim /usr/bin/zk-cluster
######################################################################
#!/bin/bash
case $1 in
"start"){
for i in 192.168.242.131 192.168.242.132 192.168.242.133
do
echo ---------- zookeeper $i 启动 ------------
ssh $i "/opt/module/apache-zookeeper-3.7.0/bin/zkServer.sh start"
done
};;
"stop"){
for i in 192.168.242.131 192.168.242.132 192.168.242.133
do
echo ---------- zookeeper $i 停止 ------------
ssh $i "/opt/module/apache-zookeeper-3.7.0/bin/zkServer.sh stop"
done
};;
"status"){
for i in 192.168.242.131 192.168.242.132 192.168.242.133
do
echo ---------- zookeeper $i 状态 ------------
ssh $i "/opt/module/apache-zookeeper-3.7.0/bin/zkServer.sh status"
done
};;
esac
###################################################################### # 可执行权限赋予
chmod +x /usr/bin/zk-cluster # 集群操作
zk-cluster start
zk-cluster stop
zk-cluster status
【Zookeeper】Re03 集群搭建的更多相关文章
- 分享知识-快乐自己:zookeeper 伪集群搭建
1):单一 zookeeper 搭建步骤 2):zookeeper 伪集群搭建 1):新建一个集群目录 [root@zoodubbo opt]# mkdir zookeeper_cluster 2) ...
- zookeeper伪集群搭建
zookeeper伪集群搭建 1. 下载zookeeper: https://zookeeper.apache.org/ 2. 解压: tar -zxvf zookeeper-3.4.14.tar.g ...
- Zookeeper分布式集群搭建
实验条件:3台安装linux的机子,配置好Java环境. 步骤1:下载并分别解包到每台机子的/home/iHge2k目录下,附上下载地址:http://mirrors.cnnic.cn/apache/ ...
- 初始zookeeper与集群搭建实例
zookeeper是什么 Zookeeper,一种分布式应用的协作服务,是Google的Chubby一个开源的实现,是Hadoop的分布式协调服务,它包含一个简单的原语集,应用于分布式应用的协作服务, ...
- Zookeeper + Kafka 集群搭建
第一步:准备 1. 操作系统 CentOS-7-x86_64-Everything-1511 2. 安装包 kafka_2.12-0.10.2.0.tgz zookeeper-3.4.9.tar.gz ...
- [dubbo实战] dubbo+zookeeper伪集群搭建
zookeeper作为注册中心,服务器和客户端都要访问,如果有大量的并发,肯定会有等待.所以可以通过zookeeper集群解决. 一.为什么需要zookeeper呢? 大部分分布式应用需要一个主控.协 ...
- [dubbo实战] dubbo+zookeeper伪集群搭建 (转)
zookeeper作为注册中心,服务器和客户端都要访问,如果有大量的并发,肯定会有等待.所以可以通过zookeeper集群解决. 一.为什么需要zookeeper呢? 大部分分布式应用需要一 个主控. ...
- 初识ZooKeeper与集群搭建实例
原文链接:http://www.linuxidc.com/Linux/2015-02/114230.htm zookeeper是什么 Zookeeper,一种分布式应用的协作服务,是Google的Ch ...
- Zookeeper+ActiveMQ集群搭建
搭建三台虚拟机安装centos7.要提前安装好jdk环境 1.环境准备,搭建三台虚拟机ip分别是 192.168.192.130 192.168.192.131 192.168.192.134 Zoo ...
- JAVAEE——宜立方商城08:Zookeeper+SolrCloud集群搭建、搜索功能切换到集群版、Activemq消息队列搭建与使用
1. 学习计划 1.solr集群搭建 2.使用solrj管理solr集群 3.把搜索功能切换到集群版 4.添加商品同步索引库. a) Activemq b) 发送消息 c) 接收消息 2. 什么是So ...
随机推荐
- 推荐一款免费的终端工具-Windterm
Windterm 提到SSH终端工具,大家一定会想到putty.xshell.MobaXterm这些产品.但是当我使用Windterm后,我彻底改变了我对之前使用SSH终端工具的认知,其强大的能力,彻 ...
- 加入域 " " 时出现了以下错误
加入域 " " 时出现了以下错误: 因为文件共享不安全,所以你不能连接到文件共享.此共享需要过时的 SMB1 协议,而此协议是不安全的,可能会使你的系统遭受攻击. 你的系统需要 S ...
- python 简单剖析及语法基础
1.Python的应用领域 WEB开发 网络编程 爬虫 云计算 人工智能.数据分析 自动化运维 金融分析 科学运算 游戏开发 2.Python的发展前景 知乎上有一篇文章,问Python未来10 ...
- org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available es端口号及集群名称
org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are availa ...
- __int1024!
使用说明: 数据范围约为\(-2^{1024}\le N \le2^{1024}\),反映到十进制约为\(-10^{309}\le N \le10^{309}\),但不保证完全如此. 输入输出使用自带 ...
- 淘宝二面:千万级数据中如何用Redis维护热点数据"?
MySQL里有千万条数据,但是Redis中只存10万的数据,如何保证redis中的数据都是热点数据? 我是小宋, 一个只熬夜但不秃头的Java程序员.关注我,带你轻松过面试.提升简历亮点(14个dem ...
- Pytest 失败重运行
需安装第三方插件:pytest-rerun.pytest-rerunfailures 失败重试和失败重运行的区别 失败重试:[--reruns=1],用例执行失败后,会立即开始重试一次此用例,再执行下 ...
- Atcoder Beginner Contest 324 F Beautiful Path 题解-分数规划
为了更好的阅读体验,请点击这里 分数规划小技巧:尽可能将式子写成存在某种取值,使得不等式成立的形式. 不然可能需要绕几个弯才能想出来. 题目链接 题目大意:给出一个 DAG,每条边有一个 \(b_i, ...
- HDD成都站:HMS Core 6.0带来新可能,多元服务驱动产品价值提升
9月10日,由华为开发者联盟主办的HDD(Huawei Developer Day)于成都举行.活动中,华为HMS Core各领域专家重点解读了HMS Core 6.0为开发者带来的多项全新能力,及生 ...
- socket 地址复用 SO_REUSEADDR
背景 默认的情况下,如果一个网络应用程序的一个套接字 绑定了一个端口(例如888),这时候,别的套接字就无法使用这个端口( 888 ) ref : https://blog.csdn.net/tenn ...