iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >ZooKeeper集群怎样安装和部署
  • 615
分享到

ZooKeeper集群怎样安装和部署

2023-06-04 10:06:50 615人浏览 八月长安
摘要

这篇文章主要为大家展示了“ZooKeeper集群怎样安装和部署”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ZooKeeper集群怎样安装和部署”这篇文章吧。0、ZooKeeper还可以用作其他

这篇文章主要为大家展示了“ZooKeeper集群怎样安装和部署”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ZooKeeper集群怎样安装和部署”这篇文章吧。

0、ZooKeeper还可以用作其他用途,例如:

    数据发布与订阅(配置中心)
    负载均衡
    命名服务(Naming Service)
    分布式通知/协调
    集群管理与Master选举
    分布式
    分布式队列
1、介绍与系统要求
ZooKeeper可以运行在多种系统平台上面,表1展示了zk支持的系统平台,以及在该平台上是否支持开发环境或者生产环境。
系统             开发环境          生产环境
linux           支持              支持
Solaris         支持              支持
FreeBSD         支持              支持
windows         支持              不支持
MacOS           支持              不支持

Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。

■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境;
■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例;
■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble)

Zookeeper通过复制来实现高可用性,只要集合体中半数以上的机器处于可用状态,它就能够保证服务继续。为什么一定要超过半数呢?这跟Zookeeper的复制策略有关:zookeeper确保对znode 树的每一个修改都会被复制到集合体中超过半数的机器上。
所以ZooKeeper集群模式的部署,3个ZooKeeper服务进程是建议的最小进程数量,而且不同的服务进程建议部署在不同的物理机器上面,以减少机器宕机带来的风险,以实现ZooKeeper集群的高可用。
ZooKeeper是用Java编写的,运行在Java环境上,因此,在部署zk的机器上需要安装Java运行环境。为了正常运行zk,我们需要JRE1.6或者以上的版本。ZooKeeper对于机器的硬件配置没有太大的要求。

2、下载安装
可以从https://zookeeper.apache.org/releases.html下载ZooKeeper,目前最新的稳定版本为 3.4.11 版本,我们今天选择3.4.10版本。
# tar zvxf zookeeper-3.4.10.tar.gz
# mv zookeeper-3.4.10 ../zk
# cd ../zk
[root@galera01 zk]# ls -l
drwxr-xr-x  2 1001 1001    4096 Mar 23  2017 bin
-rw-rw-r--  1 1001 1001   84725 Mar 23  2017 build.xml
drwxr-xr-x  2 1001 1001    4096 Mar 23  2017 conf
drwxr-xr-x 10 1001 1001    4096 Mar 23  2017 contrib
drwxr-xr-x  2 1001 1001    4096 Mar 23  2017 dist-Maven
drwxr-xr-x  6 1001 1001    4096 Mar 23  2017 docs
-rw-rw-r--  1 1001 1001    1709 Mar 23  2017 ivysettings.xml
-rw-rw-r--  1 1001 1001    5691 Mar 23  2017 ivy.xml
drwxr-xr-x  4 1001 1001    4096 Mar 23  2017 lib
-rw-rw-r--  1 1001 1001   11938 Mar 23  2017 LICENSE.txt
-rw-rw-r--  1 1001 1001    3132 Mar 23  2017 NOTICE.txt
-rw-rw-r--  1 1001 1001    1770 Mar 23  2017 README_packaging.txt
-rw-rw-r--  1 1001 1001    1585 Mar 23  2017 README.txt
drwxr-xr-x  5 1001 1001    4096 Mar 23  2017 recipes
drwxr-xr-x  8 1001 1001    4096 Mar 23  2017 src
-rw-rw-r--  1 1001 1001 1456729 Mar 23  2017 zookeeper-3.4.10.jar
-rw-rw-r--  1 1001 1001     819 Mar 23  2017 zookeeper-3.4.10.jar.asc
-rw-rw-r--  1 1001 1001      33 Mar 23  2017 zookeeper-3.4.10.jar.md5
-rw-rw-r--  1 1001 1001      41 Mar 23  2017 zookeeper-3.4.10.jar.sha1


bin目录:zk的可执行脚本目录,包括zk服务进程,zk客户端,等脚本。
conf目录:配置文件目录。zoo_sample.cfg为样例配置文件,log4j.properties为日志配置文件。
lib目录:zk依赖的包。
contrib目录:一些用于操作zk的工具包。
recipes目录:zk某些用法的代码示例


3、集群模式运行配置
单机模式的zk进程虽然便于开发与测试,但并不适合在生产环境使用。在生产环境下,我们需要使用集群模式来对zk进行部署。在集群模式下,建议至少部署3个zk进程,或者部署奇数个zk进程。
在集群模式下,所有的zk进程可以使用相同的配置文件(是指各个zk进程部署在不同的机器上面),例如如下配置:
# mkdir -p /opt/zkdata
# cd /opt/zk/conf
# cp zoo_sample.cfg zk.cfg
# vi zk.cfg
tickTime=2000
dataDir=/opt/zkdata
clientPort=2181
initLimit=5
syncLimit=2
server.0=192.168.56.111:2888:3888
server.1=192.168.56.112:2888:3888
server.3=192.168.56.113:2888:3888

设置选择配置文件的名字在zkEnv.sh文件里面,默认为zoo.cfg,这里已修改为zk.cfg

tickTime参数:tickTime则是上述两个超时配置的基本单位,例如对于initLimit,其配置值为5,说明其超时时间为 2000ms * 5 = 10秒。
initLimit参数:ZooKeeper集群模式下包含多个zk进程,其中一个进程为leader,余下的进程为follower。
当follower最初与leader建立连接时,它们之间会传输相当多的数据,尤其是follower的数据落后leader很多。
initLimit配置follower与leader之间建立连接后进行同步的最长时间。
syncLimit参数:配置follower和leader之间发送消息,请求和应答的最大时间长度。如果follower在设置时间内不能与leader通信,那么此follower将会被丢弃。
maxClientCnxns参数:
这个操作将限制连接到Zookeeper的客户端数量,并限制并发连接的数量,通过IP来区分不同的客户端。此配置选项可以阻止某些类别的Dos攻击。将他设置为零或忽略不进行设置将会取消对并发连接的限制。
例如,此时我们将maxClientCnxns的值设为1,如下所示:
# set maxClientCnxns
   maxClientCnxns=1
启动Zookeeper之后,首先用一个客户端连接到Zookeeper服务器上。之后如果有第二个客户端尝试对Zookeeper进行连接,或者有某些隐式的对客户端的连接操作,将会触发Zookeeper的上述配置。
minSessionTimeout和maxSessionTimeout参数:
即最小的会话超时和最大的会话超时时间。在默认情况下,minSession=2*tickTime;maxSession=20*tickTime。
server.id=host:port1:port2
其中id为一个数字,表示zk进程的id,这个id也是dataDir目录下myid文件的内容。
host是该zk进程所在的IP地址,port1表示follower和leader交换消息所使用的端口,port2表示选举leader所使用的端口。
dataDir参数:该参数没有默认值,必须配置,其配置的含义跟单机模式下的含义类似,不同的是集群模式下还有一个myid文件。
myid文件的内容只有一行,且内容只能为1~255之间的数字,这个数字亦即上面介绍server.id中的id,表示zk进程的id。

# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/zk/bin/../conf/zk.cfg
Starting zookeeper ... STARTED

./zkCli.sh -server 192.168.56.111:2181,192.168.56.112:2181,192.168.56.113:2181


# ./zkCli.sh -server 192.168.56.111:2181,192.168.56.112:2181,192.168.56.113:2181
Connecting to 192.168.56.111:2181,192.168.56.112:2181,192.168.56.113:2181
2018-03-12 14:20:23,468 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.10-39d3a4f269333c922ed3Db283be479f9deacaa0f, built on 03/23/2017 10:13 GMT
2018-03-12 14:20:23,473 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=galera02
2018-03-12 14:20:23,473 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.7.0_45
2018-03-12 14:20:23,474 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=oracle Corporation
2018-03-12 14:20:23,475 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/usr/lib/JVM/java-1.7.0-openjdk-1.7.0.45.x86_64/jre
2018-03-12 14:20:23,475 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/opt/zk/bin/../build/classes:/opt/zk/bin/../build/lib/*.jar:/opt/zk/bin/../lib/slf4j-log4j12-1.6.1.jar:/opt/zk/bin/../lib/slf4j-api-1.6.1.jar:/opt/zk/bin/../lib/Netty-3.10.5.Final.jar:/opt/zk/bin/../lib/log4j-1.2.16.jar:/opt/zk/bin/../lib/jline-0.9.94.jar:/opt/zk/bin/../zookeeper-3.4.10.jar:/opt/zk/bin/../src/java/lib/*.jar:/opt/zk/bin/../conf:
2018-03-12 14:20:23,475 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2018-03-12 14:20:23,475 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2018-03-12 14:20:23,475 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>
2018-03-12 14:20:23,475 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Linux
2018-03-12 14:20:23,475 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=amd64
2018-03-12 14:20:23,475 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=2.6.32-431.el6.x86_64
2018-03-12 14:20:23,475 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=root
2018-03-12 14:20:23,476 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/root
2018-03-12 14:20:23,476 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/opt/zk/bin
2018-03-12 14:20:23,477 [myid:] - INFO  [main:ZooKeeper@438] - Initiating client connection, connectString=192.168.56.111:2181,192.168.56.112:2181,192.168.56.113:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@6c8d5190
2018-03-12 14:20:23,494 [myid:] - INFO  [main-SendThread(192.168.56.113:2181):ClientCnxn$SendThread@1032] - Opening Socket connection to server 192.168.56.113/192.168.56.113:2181. Will not attempt to authenticate using SASL (unknown error)
Welcome to ZooKeeper!
2018-03-12 14:20:23,581 [myid:] - INFO  [main-SendThread(192.168.56.113:2181):ClientCnxn$SendThread@876] - Socket connection established to 192.168.56.113/192.168.56.113:2181, initiating session
JLine support is enabled
2018-03-12 14:20:23,868 [myid:] - INFO  [main-SendThread(192.168.56.113:2181):ClientCnxn$SendThread@1299] - Session establishment complete on server 192.168.56.113/192.168.56.113:2181, sessionid = 0x26218afe3bd0000, neGotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
[zk: 192.168.56.111:2181,192.168.56.112:2181,192.168.56.113:2181(CONNECTED) 0]

[zk: 192.168.56.111:2181,192.168.56.112:2181,192.168.56.113:2181(CONNECTED) 0] quit
Quitting...
2018-03-12 14:22:41,435 [myid:] - INFO  [main-EventThread:ClientCnxn$EventThread@519] - EventThread shut down for session: 0x26218afe3bd0000
2018-03-12 14:22:41,436 [myid:] - INFO  [main:ZooKeeper@684] - Session: 0x26218afe3bd0000 closed


4、查看目前zk集群状态
[root@galera01 bin]#  ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zk/bin/../conf/zk.cfg
Mode: follower

[root@galera02 bin]#  ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zk/bin/../conf/zk.cfg
Mode: leader

[root@galera03 bin]#  ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zk/bin/../conf/zk.cfg
Mode: follower
----------------------------------------------------------End------------------------------------------------

以上是“ZooKeeper集群怎样安装和部署”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: ZooKeeper集群怎样安装和部署

本文链接: https://www.lsjlt.com/news/237485.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • ZooKeeper集群怎样安装和部署
    这篇文章主要为大家展示了“ZooKeeper集群怎样安装和部署”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ZooKeeper集群怎样安装和部署”这篇文章吧。0、ZooKeeper还可以用作其他...
    99+
    2023-06-04
  • docker怎么部署zookeeper集群
    这篇“docker怎么部署zookeeper集群”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“docker怎么部署zooke...
    99+
    2023-07-06
  • Linux系统如何部署zookeeper集群
    这篇文章给大家分享的是有关Linux系统如何部署zookeeper集群的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。zookeeper简介:Zookeeper是一个开源的分布式协调服务,Zookeeper的设计目...
    99+
    2023-06-28
  • mesos 集群安装部署mesos-ma
    ###############################################################                                                        M...
    99+
    2023-01-31
    集群 mesos ma
  • 消息中间件Kafka+Zookeeper集群的概念、部署和实践是怎样的
    这篇文章给大家介绍消息中间件Kafka+Zookeeper集群的概念、部署和实践是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中所有动...
    99+
    2023-06-02
  • Hadoop集群怎样安装
    这篇文章主要为大家展示了“Hadoop集群怎样安装”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Hadoop集群怎样安装”这篇文章吧。一、安装环境 因为安装Hadoop集群需要的主机数量必须为奇...
    99+
    2023-06-03
  • apache-zookeeper-3.7.1 安装部署教程
    apache-zookeeper-3.7.1 安装部署 下载地址:https://mirrors.bfsu.edu.cn/apache/zookeeper/ apache-zooke...
    99+
    2023-02-03
    apache-zookeeper-3.7.1 安装 apache-zookeeper-3.7.1
  • kafka3.X集群安装(不使用zookeeper)
    参考: 【kafka专栏】不用zookeeper怎么安装kafka集群-最新kafka3.0版本 一、kafka集群实例角色规划 在本专栏的之前的一篇文章《kafka3种zk的替代方案》已经为...
    99+
    2023-10-26
    zookeeper 分布式 kafka
  • apache-zookeeper-3.7.1 安装部署教程
    apache-zookeeper-3.7.1 安装部署 下载地址:https://mirrors.bfsu.edu.cn/apache/zookeeper/ apache-zookeeper-3.7.11.下载直接解压,...
    99+
    2023-02-03
    apache-zookeeper-3.7.1 安装 apache-zookeeper-3.7.1
  • docker部署zookeeper集群方式(单主机、多主机)
    目录1、一台主机上部署zookeeper集群2、一台主机部署zookeeper集群分析3、Macvlan网络4、跨主机环境准备5、创建macvlan网络6、docker-compos...
    99+
    2023-05-15
    docker部署zookeeper docker部署zookeeper集群 docker zookeeper集群
  • MySQL中的MMM集群部署是怎样的
    MySQL中的MMM集群部署是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。MySQL-MMM集群部署MMM(Maste...
    99+
    2024-04-02
  • Flume怎样安装部署
    这篇文章主要介绍了Flume怎样安装部署,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。环境:flume-ng-1.6.0-cdh6.7.0.tar.gzjdk 1.8下载安装...
    99+
    2023-06-03
  • Kubernetes怎样部署Nebula图数据库集群
    这期内容当中小编将会给大家带来有关Kubernetes怎样部署Nebula图数据库集群,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Kubernetes 是什么Kuber...
    99+
    2024-04-02
  • 怎样使用kubeadmin进行部署K8s集群
    这篇文章给大家介绍怎样使用kubeadmin进行部署K8s集群,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。首先,我们来看一下整体的架构。 K8s的部署方式:yum方式部署二进制包:手动使用tar包来部署mi...
    99+
    2023-06-04
  • Linux系统安装部署nacos集群:基于nacos2.0.3
    目录 前言 1.yum安装方式 2.docker安装方式 一、前置条件 1.操作系统或者虚拟机上安装jdk,版本>=8 2.下载好nacos2.0.3的压缩包 二、解压 三、部署  1.将 cluster.conf.example 文件复制...
    99+
    2023-08-31
    linux 运维 服务器
  • 怎么部署Hadoop集群
    本篇内容主要讲解“怎么部署Hadoop集群”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么部署Hadoop集群”吧!环境准备一共用5台机器作为硬件环境,全都是...
    99+
    2024-04-02
  • 怎么部署redis集群
    要部署Redis集群,您可以按以下步骤进行操作:1. 安装Redis:在每个节点上安装Redis服务器。您可以从Redis官方网站上...
    99+
    2023-08-31
    redis
  • Centos7安装部署Kubernetes(k8s)集群实现过程
    目录一.系统环境二.前言三.Kubernetes3.1 概述3.2 Kubernetes 组件3.2.1 控制平面组件3.2.2 Node组件四.安装部署Kubernetes集群4....
    99+
    2022-11-13
    Centos7安装部署Kubernetes Centos Kubernetes
  • shell脚本中如何一键部署zookeeper集群服务
    这篇文章主要介绍“shell脚本中如何一键部署zookeeper集群服务”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“shell脚本中如何一键部署zookeeper集群服务”文章能帮助大家解决问题。...
    99+
    2023-06-30
  • docker怎么部署redis集群
    要部署 Redis 集群,可以使用 Docker 来简化部署过程。以下是一个基本的步骤:1. 创建 Redis 集群配置文件你可以创...
    99+
    2023-09-22
    docker redis
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作