Zookeeper:在三种模式下的部署

zookeeper 安装模式有三种:单机模式:单机单 server;集群模式:多机多 server,形成集群;伪集群模式:单机多 server,形成伪集群。

~

本篇内容包括:Zookeeper 官网下载、Zookeeper 单机模式部署、Zookeeper 集群安装、Zookeeper 集群安装


文章目录

    • 一、Zookeeper 官网下载
    • 二、Zookeeper 单机模式部署
        • 1、安装 JDK
        • 2、安装 Zookeeper
        • 3、修改 Zookpeeper 配置
        • 4、运行 Zookeeper
    • 三、Zookeeper 集群安装
        • 1、安装JDK(每一台服务器);
        • 2、安装 Zookeeper
        • 3、修改 Zookpeeper 配置
        • 4、运行 Zookeeper
    • 四、Zookeeper 集群启动停止脚本


一、Zookeeper 官网下载

进入官网下载 Zookeeper,这里我们使用的版本为 Zookeeper-3.5.7

Zookeeper 官网地址: http://zookeeper.apache.org/

zookeeper 安装模式有三种:单机模式:单机单 server;集群模式:多机多 server,形成集群;伪集群模式:单机多 server,形成伪集群。

二、Zookeeper 单机模式部署

1、安装 JDK

# 安装JDK

可以参照:Java基础:Java程序设计环境

2、安装 Zookeeper

# 官网下载

# 拷贝 apache-zookeeper-3.5.7-bin.tar.gz 到 Linux系统下

# 解压到指定目录:

tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/

# 改名

mv apache-zookeeper-3.5.7-bin zookeeper-3.5.7

3、修改 Zookpeeper 配置

# 进入conf目录

# mv zoo_sample.cfg zoo.cfg

# mkdir /opt/module/zookeeper-3.5.7/zkData

# vi 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=/opt/module/zookeeper-3.5.7/zkData
# 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

4、运行 Zookeeper

# 启动Zookeeper:bin/zkServer.sh start

# 查看进程:jps

# 客户端访问:bin/zkCli.sh

三、Zookeeper 集群安装

1、安装JDK(每一台服务器);

# 安装JDK

可以参照:Java基础:Java程序设计环境

2、安装 Zookeeper

# 拷贝 apache-zookeeper-3.5.7-bin.tar.gz 到 Linux系统下(每一台服务器)

# 解压到指定目录(每一台服务器):

tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/

# 改名(每一台服务器)

mv apache-zookeeper-3.5.7-bin zookeeper-3.5.7

3、修改 Zookpeeper 配置

# 进入conf目录(每一台服务器)

# mv zoo_sample.cfg zoo.cfg(每一台服务器)

# mkdir /opt/module/zookeeper-3.5.7/zkData(每一台服务器)

# vi /opt/module/zookeeper-3.5.7/zkData/myid,填写每天服务器对应的 ID

# vi 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=/opt/module/zookeeper-3.5.7/zkData
# 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
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

4、运行 Zookeeper

# 启动服务:每台机器执行:bin/zkServer.sh start

# 查看每个节点状态:bin/zkServer.sh status

四、Zookeeper 集群启动停止脚本

#!/bin/bashcase $1 in
"start"){for i in master slave1 slave2doecho ----- zookeeper $i 启动-----ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh start"done
}
;;
"stop"){for i in master slave1 slave2doecho ----- zookeeper $i 停止-----ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh stop"done
}
;;
"status"){for i in master slave1 slave2doecho ----- zookeeper $i 状态-----ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh status"done
}
;;
esac

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/535449.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux namespace概述

操作系统通过虚拟内存技术,使得每个用户进程都认为自己拥有所有的物理内存,这是操作系统对内存的虚拟化。操作系统通过分时调度系统,每个进程都能被【公平地】调度执行,即每个进程都能获取到CPU,使得每个进程都认为自己…

Zookeeper:Zookeeper的主从选举机制

ZAB 协议,全称 Zookeeper Atomic Broadcast(Zookeeper 原子广播协议),是为分布式协调服务 ZooKeeper 专门设计的一种支持崩溃恢复的一致性协议。基于该协议,ZooKeeper 实现了一种主从模式的系统架构来保持集群中各个副…

Linux namespace之:uts namespace

理解uts namespace uts(UNIX Time-Sharing System) namespace可隔离hostname和NIS Domain name资源,使得一个宿主机可拥有多个主机名或Domain Name。换句话说,可让不同namespace中的进程看到不同的主机名。 例如,使用unshare命令(较新版本L…

Zookeeper:事件监听和通知机制

Zookeeper 允许客户端向服务端的某个 Znode 注册一个 Watcher 监听,当服务端的一些指定事件触发了这个 Watcher,服务端会向指定客户端发送一个事件通知来实现分布式的通知功能,然后客户端根据 Watcher 通知状态和事件类型做出业务上的改变。 …

Linux namespace之:mount namespace

理解mount namespace 用户通常使用mount命令来挂载普通文件系统,但实际上mount能挂载的东西非常多,甚至连现在功能完善的Linux系统,其内核的正常运行也都依赖于挂载功能,比如挂载根文件系统/。其实所有的挂载功能和挂载信息都由内…

Linux namespace之:network namespace

理解network namespace network namespace用来隔离网络环境,「在network namespace中,网络设备、端口、套接字、网络协议栈、路由表、防火墙规则等都是独立的」。 因network namespace中具有独立的网络协议栈,因此每个network namespace中都…

Kubernetes 的原理

kubernetes 已经成为容器编排领域的王者,它是基于容器的集群编排引擎,具备扩展集群、滚动升级回滚、弹性伸缩、自动治愈、服务发现等多种特性能力。 本文将带着大家快速了解 kubernetes ,了解我们谈论 kubernetes 都是在谈论什么。 kuberne…

Zookeeper:实现“分布式锁”的 Demo

Zookeeper 能保证数据的强一致性,用户任何时候都可以相信集群中每个节点的数据都是相同的。一个用户创建一个节点作为锁,另一个用户检测该节点,如果存在,代表别的用户已经锁住,如果不存在,则可以创建一个节…

JavaIO流:案例

java.io 包下需要掌握的流有 16 个,本篇内容包括:java.io包下需要掌握的流、Java IO 案例。 文章目录一、java.io包下需要掌握的流二、Java IO 案例1、Demo 1(FileInputStream)2、Demo 2(FileInputStream)3…

比对excel数据

#!/usr/bin/env pythonimport openpyxl from openpyxl.styles import PatternFill from openpyxl.styles import colors from openpyxl.styles import Font, Color aD:/测算单位设置/比对/吉林/tmp001.xlsx bD:/测算单位设置/比对/吉林/国网吉林电力.xlsx cD:/测算单位设置/比对…

CPU 是如何执行任务的

前言 你清楚下面这几个问题吗? 有了内存,为什么还需要 CPU Cache? CPU 是怎么读写数据的? 如何让 CPU 能读取数据更快一些? CPU 伪共享是如何发生的?又该如何避免? CPU 是如何调度任务的&a…

Ansible 的自动化运维

1、Ansible 特点 Ansible 自 2012 年发布以来,很快在全球流行,其特点如下: Ansible 基于 Python 开发,运维工程师对其二次开发相对比较容易; Ansible 丰富的内置模块,几乎可以满足一切要求; …

Shell 信号发送与捕捉

1、Linux信号类型 信号(Signal):信号是在软件层次上对中断机制的一种模拟,通过给一个进程发送信号,执行相应的处理函数。 进程可以通过三种方式来响应一个信号: 1)忽略信号,即对信…

运维面试题总结

集群相关 简述 ETCD 及其特点? etcd 是 CoreOS 团队发起的开源项目,是一个管理配置信息和服务发现(service discovery)的项目,它的目标是构建一个高可用的分布式键值(key-value)数据库&#x…

详解设计模式:建造者模式

建造者模式(Builder Pattern)也叫做生成器模式,是 GoF 的 23 种设计模式的一种,它将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 当我们需要实列化一个复杂的类,以得到不同结…

图文并茂 VLAN 详解,让你看一遍就理解 VLAN

一、为什么需要VLAN 1.1、什么是VLAN? VLAN(Virtual LAN),翻译成中文是“虚拟局域网”。LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络。VLAN所指的LAN特指使用路由器分割的网络——也就是广播域。 在此让我们先复习…

认识VLAN,并学会VLAN的划分和网络配置实例

VLAN的划分和网络的配置实例 1、VLAN基础知识 VLAN(Virtual Local Area Network)的中文名为:“虚拟局域网”,注意和VPN(虚拟专用网)进行区分。 VLAN是一种将局域网设备从逻辑上划分(不是从物…

VLAN划分及配置注意事项

VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。VLAN内的主机间可以直接通信,而VLAN间不能直接通信,从而将广播报文限制在一个VLAN内。VLAN之间的通信是通过第3…

Docker原理剖析

一、简介 1、了解Docker的前生LXC LXC为Linux Container的简写。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C中的NameSpace。容器有效地将由单个操作系统管理的资源划分到孤立的组中&#…

获取Linux内存、cpu、磁盘IO等信息

#!/bin/bash # 获取要监控的本地服务器IP地址 IPifconfig | grep inet | grep -vE inet6|127.0.0.1 | awk {print $2} echo "IP地址:"$IP# 获取cpu总核数 cpu_numgrep -c "model name" /proc/cpuinfo echo "cpu总核数:"$c…