作者: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学习笔记一:集群搭建的更多相关文章

  1. redis 学习笔记-cluster集群搭建

    一.下载最新版redis 编译 目前最新版是3.0.7,下载地址:http://www.redis.io/download 编译很简单,一个make命令即可,不清楚的同学,可参考我之前的笔记: red ...

  2. Quartz学习笔记:集群部署&高可用

    Quartz学习笔记:集群部署&高可用 集群部署 一个Quartz集群中的每个节点是一个独立的Quartz应用,它又管理着其他的节点.这就意味着你必须对每个节点分别启动或停止.Quartz集群 ...

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

    kafka集群搭建 下面简单的介绍一下kafka的集群搭建,单个kafka的安装更简单,下面以集群搭建为例子. 我们设置并部署有三个节点的 kafka 集合体,必须在每个节点上遵循下面的步骤来启动 k ...

  4. zookeeper相关知识与集群搭建

    Zookeeper Zookeeper相关概念 Zookeeper概述 Zookeeper是一个分布式协调服务的开源框架,主要用来解决分布式集群中应用系统的一致性问题. Zookeeper本质上是一个 ...

  5. ZooKeeper的伪分布式集群搭建

    ZooKeeper集群的一些基本概念 zookeeper集群搭建: zk集群,主从节点,心跳机制(选举模式) 配置数据文件 myid 1/2/3 对应 server.1/2/3 通过 zkCli.sh ...

  6. zookeeper+activemq高可用集群搭建

    一.准备工作: 准备三台机器:192.168.35.111192.168.35.112192.168.35.113 二.搭建zookeeper 三台机器上均要搭建zookeeper服务// 下载zoo ...

  7. 【转载】MQTT的学习之Mosquitto集群搭建

    本文出自:http://www.cnblogs.com/yinyi521/p/6087215.html 文章钢要: 1.进行双服务器搭建 2.进行多服务器搭建 一.Mosquitto的分布式集群部署 ...

  8. SpringCloud学习之—Eureka集群搭建

    Eureka集群的搭建 上次说过了在SpringCloud应用中使用Eureka注册中心,用来对服务提供者进行服务注册与发现,但同时,它也是一个"微服务",单个应用使用空间有限,因 ...

  9. Zookeeper,Hbase 伪分布,集群搭建

    工作中一般使用的都是zookeeper和Hbase的分布式集群. more /etc/profile cd /usr/local zookeeper-3.4.5.tar.gz zookeeper在安装 ...

  10. Dubbo -- 系统学习 笔记 -- 示例 -- 集群容错

    Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 集群容错 在集群调用失败时,Dubbo提供了多种容错方案,缺省为failover重 ...

随机推荐

  1. Day14_75_反射(reflect)

    反射 反射的基本概念 反射是由Smith在1982年首次提出,主要是指程序可以访问,检测,修改它本身状态或行为的一种能力.并且能够根据自身行为的状态或结果,调整和修改所描述行为的状态和相关语义. ja ...

  2. POJ1149 PIGS(最大流)

    题意:       有一个人,他有m个猪圈,每个猪圈里面有一定数量的猪,但是每个猪圈的门都是锁着的,他自己没有钥匙,只有顾客有钥匙,一天依次来了n个顾客,(记住是依次来的)他们每个人都有一些钥匙,和他 ...

  3. Word 通过添加Package 实现word藏毒

    这个思路要结合近期在一些安全网站上公布的姿势来实现,先科普几个地方. (1)通过cmd本身就可以直接下载: Bitsadmin /transfer AA /download /priority nor ...

  4. Docker镜像基本使用

    使用 Docker 镜像 Docker 运行容器前需要本地存在对应的镜像,如果本地不存在该镜像,Docker 会从镜像仓库下载该镜像. 获取镜像 docker pull [选项] [Docker Re ...

  5. 【JavaScript】Leetcode每日一题-在D天内送包裹的能力

    [JavaScript]Leetcode每日一题-在D天内送包裹的能力 [题目描述] 传送带上的包裹必须在 D 天内从一个港口运送到另一个港口. 传送带上的第 i 个包裹的重量为 weights[i] ...

  6. 使用docker-compose.yml快速搭建Linux/Mac开发/生产环境

    传送门 点击进入Github,https://github.com/ovim/dockerfiles 简单介绍 Dockerfiles 搭建基础公用环境包,方便使用,支持业务不断的提升而需要一些软件的 ...

  7. CVPR2021| TimeSformer-视频理解的时空注意模型

    前言: transformer在视频理解方向的应用主要有如下几种实现方式:Joint Space-Time Attention,Sparse Local Global Attention 和Axial ...

  8. .NET Core 服务诊断工具

    前言: 前一篇文中介绍了.NET Core-全局性能诊断工具 的使用方法,那么接下来自己实现一个简单.NET Core的诊断工具. 该工具主要包括:.NET Core 程序进程信息查看.性能计数器结果 ...

  9. 【近取 Key】Alpha - v1.0 版本发布说明

    功能与特性 Alpha 版本虽然为本软件的第一代版本,但已基本覆盖了用户个人使用时的主要功能.除登陆注册与后台管理外,下文将分版块详细介绍面向用户的主要功能特性. 『产品主页』 潜在应用场景 场景 0 ...

  10. 【敏杰开发】Beta阶段事后分析

    [敏杰开发]Beta阶段事后分析 设想和目标 Q 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们达到目标了么(原计划的功能做到了几个? 按照原计划交付时间交付 ...