ZooKeeper学习笔记一:集群搭建
作者:Grey
原文地址:ZooKeeper学习笔记一:集群搭建
说明
单机版的zk安装和运行参考:https://zookeeper.apache.org/doc/r3.6.3/zookeeperStarted.html
单机版的zk只适合用于测试或者开发环境,不适合用于生产环境。
本文主要介绍zk的集群搭建。
环境
- CentOS 7
- ZooKeeper 3.6.3
准备工作
第一步,准备四个Linux实例,zk01~zk04,我的四个实例的ip分别是:
- zk01:192.168.205.145
- zk02:192.168.205.146
- zk03:192.168.205.147
- zk04:192.168.205.148
第二步,在四个实例中都安装好jdk1.8。
安装与配置
我们只需要在一台实例上安装并配置好zk,然后把安装文件和配置文件scp到其他实例即可
在zk01中,下载并解压zk安装包:
cd /usr/local
## 下载zk3.6.3版本
wget https://mirrors.bfsu.edu.cn/apache/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz
## 解压
tar -xf apache-zookeeper-3.6.3-bin.tar.gz
## 重命名
mv apache-zookeeper-3.6.3-bin zookeeper
加入环境变量
vi /etc/profile
在末尾加入:
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
执行
source /etc/profile
修改zk配置文件:
# 把默认的zoo_sample.cfg拷贝一份zoo.cfg出来
cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg
修改zoo.cfg配置文件中的如下配置
dataDir=/data/zookeeper
增加如下配置到zoo.cfg中
server.1=192.168.205.145:2888:3888
server.2=192.168.205.146:2888:3888
server.3=192.168.205.147:2888:3888
server.4=192.168.205.148:2888:3888
创建zk01的dataDir目录
mkdir -p /data/zookeeper
在dataDir目录下创建一个myid文件,并写入1
echo 1 > /data/zookeeper/myid
至此,zk01实例已经完全配置好了,现在将zk01实例上的一些安装文件和配置文件拷贝到zk02~zk04上,
拷贝zk01上的profile文件到zk02~zk04三个节点
## 拷贝到zk02,过程中会让你输入yes,以及zk02的密码
scp /etc/profile 192.168.205.146:/etc
## 拷贝到zk03
scp /etc/profile 192.168.205.147:/etc
## 拷贝到zk04
scp /etc/profile 192.168.205.148:/etc
拷贝zk01的dataDir目录到zk02~zk04三个节点,在zk01上执行:
scp -r /data/ 192.168.205.146:/
scp -r /data/ 192.168.205.147:/
scp -r /data/ 192.168.205.148:/
拷贝zk01的zookeeper程序到zk02~zk04三个节点, 在zk01上执行:
scp -r /usr/local/zookeeper 192.168.205.146:/usr/local/
scp -r /usr/local/zookeeper 192.168.205.147:/usr/local/
scp -r /usr/local/zookeeper 192.168.205.148:/usr/local/
至此,zk02zk04都准备好了相关文件,现在连接zk02zk04,在zk02~zk04上分别执行如下操作
source /etc/profile
将zk02,zk03,zk04的myid文件,修改成对应的值
vi /data/zookeeper/myid
zk02的/data/zookeeper/myid修改成2
zk03的/data/zookeeper/myid修改成3
zk04的/data/zookeeper/myid修改成4
配置防火墙
firewall-cmd --zone=public --add-port=3888/tcp --permanent
firewall-cmd --zone=public --add-port=2888/tcp --permanent
firewall-cmd --reload
启动
在zk01~zk04上分别执行:
zkServer.sh start-foreground
查看leader和follower
[root@zk01 ~]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
说明此节点是follower节点
[root@zk03 ~]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader
在任意节点通过zk客户端执行:
create /abc
set /abc "hello world"
其他节点都可以查看到
[zk: localhost:2181(CONNECTED) 0] get /abc
hello world
ZooKeeper学习笔记一:集群搭建的更多相关文章
- redis 学习笔记-cluster集群搭建
一.下载最新版redis 编译 目前最新版是3.0.7,下载地址:http://www.redis.io/download 编译很简单,一个make命令即可,不清楚的同学,可参考我之前的笔记: red ...
- Quartz学习笔记:集群部署&高可用
Quartz学习笔记:集群部署&高可用 集群部署 一个Quartz集群中的每个节点是一个独立的Quartz应用,它又管理着其他的节点.这就意味着你必须对每个节点分别启动或停止.Quartz集群 ...
- kafka学习(三)-kafka集群搭建
kafka集群搭建 下面简单的介绍一下kafka的集群搭建,单个kafka的安装更简单,下面以集群搭建为例子. 我们设置并部署有三个节点的 kafka 集合体,必须在每个节点上遵循下面的步骤来启动 k ...
- zookeeper相关知识与集群搭建
Zookeeper Zookeeper相关概念 Zookeeper概述 Zookeeper是一个分布式协调服务的开源框架,主要用来解决分布式集群中应用系统的一致性问题. Zookeeper本质上是一个 ...
- ZooKeeper的伪分布式集群搭建
ZooKeeper集群的一些基本概念 zookeeper集群搭建: zk集群,主从节点,心跳机制(选举模式) 配置数据文件 myid 1/2/3 对应 server.1/2/3 通过 zkCli.sh ...
- zookeeper+activemq高可用集群搭建
一.准备工作: 准备三台机器:192.168.35.111192.168.35.112192.168.35.113 二.搭建zookeeper 三台机器上均要搭建zookeeper服务// 下载zoo ...
- 【转载】MQTT的学习之Mosquitto集群搭建
本文出自:http://www.cnblogs.com/yinyi521/p/6087215.html 文章钢要: 1.进行双服务器搭建 2.进行多服务器搭建 一.Mosquitto的分布式集群部署 ...
- SpringCloud学习之—Eureka集群搭建
Eureka集群的搭建 上次说过了在SpringCloud应用中使用Eureka注册中心,用来对服务提供者进行服务注册与发现,但同时,它也是一个"微服务",单个应用使用空间有限,因 ...
- Zookeeper,Hbase 伪分布,集群搭建
工作中一般使用的都是zookeeper和Hbase的分布式集群. more /etc/profile cd /usr/local zookeeper-3.4.5.tar.gz zookeeper在安装 ...
- Dubbo -- 系统学习 笔记 -- 示例 -- 集群容错
Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 集群容错 在集群调用失败时,Dubbo提供了多种容错方案,缺省为failover重 ...
随机推荐
- 腾讯云TCA开发工程师认证考试
1.关于云硬盘CBS的描述,错误的是哪一项?(B) A.云硬盘提供数据块级别的数据存储,采用三副本的分布式机制,为 CVM 提供数据可靠性保证 B.云硬盘可在同一可用区中自由挂载.卸载;挂载和卸载过程 ...
- 1083 List Grades
Given a list of N student records with name, ID and grade. You are supposed to sort the records with ...
- Windows核心编程笔记之错误处理
0x01 GetLastError() 函数用于获取上一个操作的错误代码 #include <Windows.h> #include <iostream> using name ...
- React-组合模式
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title&g ...
- javaScript的成长之路【何为函数,面向对象又是啥!!!】
- 在AWS Glue中使用Apache Hudi
1. Glue与Hudi简介 AWS Glue AWS Glue是Amazon Web Services(AWS)云平台推出的一款无服务器(Serverless)的大数据分析服务.对于不了解该产品的读 ...
- opencv——图像遍历以及像素操作
摘要 我们在图像处理时经常会用到遍历图像像素点的方式,在OpenCV中一般有四种图像遍历的方式,在这里我们通过像素变换的点操作来实现对图像亮度和对比度的调整. 补充: 图像变换可以看成 像素变换--点 ...
- RTTI之typeid运算符
1 #include <iostream> 2 #include <cstdlib> 3 #include <ctime> 4 #include <typei ...
- C# 搞桌面UI适配国产麒麟Linux+龙芯遇到的一些坑
由于一些国企有国产化的需求,所以搞了C#适配银河麒麟,适配了X64和龙芯MIPS版本 1. 在银河麒麟的龙芯版本中 pipe2 不能使用,x64版本上却可以用. pipe2 用来做自定义消息的,搞U ...
- KMP(The Knuth-Morris-Pratt Algorithm)
本文代码来自于中国大学MOOC KMP课件下载 注释内容为自己理解,如有错误请评论,或者私信给我,谢谢 #include <stdio.h> #include "stdlib.h ...