ZooKeeper入门教程二在单机和集群环境下的安装搭建及使用

目录
  • 1、下载
  • 2、解压
    • 3、创建配置文件
  • 4、单机启动ZooKeeper
  • 5、通过客户端连接ZooKeeper
  • 6、通过客户端执行基本命令
  • 7、集群配置和启动
  • 小结:

通过本篇学习掌握zookeeper环境的搭建,为后续学习做好准备

1、下载

首先我们下载最新稳定版本的zookeeper

https://www.jb51.net/softs/578345.html

2、解压

下载完成后,我们解开压缩包

3、创建配置文件

解压后的路径下找到conf文件夹,进入conf文件夹复制zoo_sample.cfg,命名为zoo.cfg

# 每个tick的毫秒数。后面的initLimit和syncLimit都以tick为单位
tickTime=2000
#初始化同步阶段时长
initLimit=10
# 同步确认时长
syncLimit=5
# 快照存储路径,不要使用/tmp。这里使用只是为了示例
dataDir=/tmp/zookeeper
# 客户端端口好
clientPort=2181

#可连接的client的最大数
#如果需要处理更多的clinet,请增加此数量
#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

对于学习来说,一般无需做修改。生产环境,需要修改dataDir。其他参数后续调优。

4、单机启动ZooKeeper

在ZooKeeper根目录下执行 bin/zkServer.sh start

➜  zookeeper-3.4.12 bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /Users/yimingli/dev/tool/zookeeper-3.4.12/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

5、通过客户端连接ZooKeeper

➜  zookeeper-3.4.12 bin/zkCli.sh

6、通过客户端执行基本命令

1、创建znode,名为/my_test,携带数据testData

[zk: localhost:2181(CONNECTED) 0] create /my_test testData

2、查看znode信息

[zk: localhost:2181(CONNECTED) 2] get /my_test

返回如下:

testData
cZxid = 0x2e9
ctime = Mon Oct 29 10:50:46 CST 2018
mZxid = 0x2e9
mtime = Mon Oct 29 10:50:46 CST 2018
pZxid = 0x2e9
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 8
numChildren = 0

3、修改znode数据

[zk: localhost:2181(CONNECTED) 3] set /my_test testDataV2

4、创建子znode

[zk: localhost:2181(CONNECTED) 0] create /my_test/tester1 testData

5、列出子znode

[zk: localhost:2181(CONNECTED) 5] ls  /my_test
[tester1]

6、删除znode

有子节点的znode不能直接删除,否则会报错。

[zk: localhost:2181(CONNECTED) 6] delete /my_test
Node not empty: /my_test

我们删除/my_test/tester1。

[zk: localhost:2181(CONNECTED) 8] delete /my_test/tester1

再次查看该znode。

[zk: localhost:2181(CONNECTED) 9] get /my_test/tester1
Node does not exist: /my_test/tester1

已经被成功删除了。

7、集群配置和启动

我们配置和启动一个三台server的集群。

1、修改zoo.cfg文件

tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=ip1:2888:3888
server.2=ip2:2888:3888
server.3=ip3:2888:3888

initLimit,zookeeper用来限制zookeeper服务器连接到leader的时长。

syncLimit,一个服务器多久在leader那里过期。

以上两种过期时间,单位都是tickTime,

本例initLimit时长为5个tickTime=5*2000ms=10秒

server.x列出了所有的zookeeper服务。集群启动它通过查看data下面的myid来知道自己是哪台服务器。

2888用来连接其它server。3888用来leader选举。

2、复制2份zookeeper到另外两台server上。

3、在配置的dataDir路径下创建myid文件,文件内容为对应自己的server.x的x值。比如zoo1这台sever,myid文件中内容为1.

4、启动每个zookeeper

5、查看本机状态,是leader还是follower

➜  zookeeper-3.4.12 bin/zkServer.sh status

至此我们已经把zookeeper集群启动起来了,并且做了验证,有一台是leader,另外两台是follower。

我们还可以做个实验,看zookeeper集群是否工作正常。

1、连接其中一台server,创建一个znode。

➜  zookeeper-3.4.12 bin/zkCli.sh -server ip1:2181
[zk: ip1:2181(CONNECTED) 10] create /zk_test my_data

2、连接另外一台server,列出所有根节点下znode。

➜  zookeeper-3.4.12 bin/zkCli.sh -server ip2:2181
[zk: ip2:2181(CONNECTED) 10] ls /

输出如下:

[zk_test]

可以看到集群已经能够正常工作,server间可以正常进行数据的复制。

客户端连接集群方法如下:

➜  zookeeper-3.4.12 bin/zkCli -server ip1:2181,ip2:2181,ip3:2181

客户端会自动随机选择集中一台连接。

小结:

至此,ZooKeeper单机环境和集群环境的搭建讲解完成,更多关于ZooKeeper单机集群环境的安装搭建使用的资料请关注我们其它相关文章!

(0)

相关推荐

  • ZooKeeper开发实际应用案例实战

    目录 项目背景介绍 面临问题 如何解决 代码讲解 数据服务器 检索服务器 总结 附:完整代码 数据服务端代码 检索服务端代码 项目背景介绍 首先给大家介绍一下本文描述项目的情况.这是一个检索网站,它让你能在几千万份复杂文档数据中检索出你所需要的文档数据.为了加快检索速度,项目的数据分布在100台机器的内存里,我们称之为数据服务器.除了数据,这100台机器上均部署着检索程序.这些server之外,还有数台给前端提供接口的搜索server,这些机器属一个集群,我们称之为检索服务器.当搜索请求过来时,

  • zookeeper概述图文详解

    1.1 概述 分布式系统:分布式系统指由很多台计算机组成的一个整体!这个整体一致对外,并且处理同一请求!系统对内透明,对外不透明!内部的每台计算机,都可以相互通信,例如使用RPC/REST或者是WebService!客户端向一个分布式系统发送的一次请求到接受到响应,有可能会经历多台计算机! Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目,多用作为集群提供服务的中间件! Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责

  • ZooKeeper入门教程三分布式锁实现及完整运行源码

    目录 1.0版本 2.0版本 LockSample类 构造方法 获取锁实现 createLock() attemptLock() 释放锁实现 TicketSeller类 sell() sellTicketWithLock() 测试入口 测试方法 代码清单如下: 1.LockSample 2.TicketSeller ZooKeeper入门教程一简介与核心概念 ZooKeeper入门教程二在单机和集群环境下的安装搭建及使用 1.0版本 首先我们先介绍一个简单的zookeeper实现分布式锁的思路:

  • ZooKeeper入门教程一简介与核心概念

    目录 1.ZooKeeper介绍与核心概念 1.1 简介 1.2分布式系统面临的问题 1.通过网络进行信息共享 2.通过共享存储 1.3 ZooKeeper如何解决分布式系统面临的问题 1.4 zookeeper概念介绍 1.4.1 znode 1.4.2 观察与通知 1.4.3 版本 1.4.4 法定人数 1.4.5 会话 1.4.6 会话状态和生命周期 回顾总结 本章是后续学习的基石,只有充分理解了分布式系统的概念和面临的问题,以及ZooKeeper内部的概念,才能懂得ZooKeeper是如

  • zookeeper服务优化的一些建议

    1.快照文件和事务日志文件分别挂在不同磁盘.zoo.cfg文件中,dataDir是存放快照数据的,dataLogDir是存放事务日志的.zookeeper更新操作过程:先写事务日志,再写内存,周期性落到磁盘(刷新内存到快照文件).事务日志的对写请求的性能影响很大,保证dataLogDir所在磁盘性能良好.没有竞争者. 2. 默认jvm没有配置Xmx.Xms等信息,可以在conf目录下创建java.env文件(内存堆空间一定要小于机器内存,避免使用swap) export JVMFLAGS="-X

  • ZooKeeper的安装及部署教程

    一.Zookeeper介绍 •是一个针对大型分布式系统的可靠协调系统: •提供的功能包括:配置维护.名字服务.分布式同步.组服务等: •目标就是封装好复杂易出错的关键职务,将简单易用的接口和性能高效.功能稳定的系统提供给用户: •Zookeeper已经成为Hadoop生态系统中的基础组件. 二.Zookeeper特点 •最终一致性:为客户端展示同一视图,这是Zookeeper最重要的性能: •可靠性:如果消息被一台服务器接受,那么它将被所有的服务器接受: •原子性:更新只能成功或失败,没有中间状

  • ZooKeeper入门教程二在单机和集群环境下的安装搭建及使用

    目录 1.下载 2.解压 3.创建配置文件 4.单机启动ZooKeeper 5.通过客户端连接ZooKeeper 6.通过客户端执行基本命令 7.集群配置和启动 小结: 通过本篇学习掌握zookeeper环境的搭建,为后续学习做好准备 1.下载 首先我们下载最新稳定版本的zookeeper https://www.jb51.net/softs/578345.html 2.解压 下载完成后,我们解开压缩包 3.创建配置文件 解压后的路径下找到conf文件夹,进入conf文件夹复制zoo_sampl

  • Zookeeper 单机环境和集群环境搭建

     一.单机环境搭建# 1.1 下载# 下载对应版本 Zookeeper,这里我下载的版本 3.4.14.官方下载地址:https://archive.apache.org/dist/zookeeper/ # wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz 1.2 解压# # tar -zxvf zookeeper-3.4.14.tar.gz 1.3 配置环境变量# #

  • Docker下安装zookeeper(单机和集群)

    启动Docker后,先看一下我们有哪些选择. 有官方的当然选择官方啦~ 下载: [root@localhost admin]# docker pull zookeeper Using default tag: latest Trying to pull repository docker.io/library/zookeeper ... latest: Pulling from docker.io/library/zookeeper 1ab2bdfe9778: Already exists 7a

  • 零基础易语言入门教程(二)之编程思路

    易语言简介: 易语言是一门以中文作为程序代码编程语言.以"易"著称.创始人为吴涛.早期版本的名字为E语言.易语言最早的版本的发布可追溯至2000年9月11日.创造易语言的初衷是进行用中文来编写程序的实践.从2000年至今,易语言已经发展到一定的规模,功能上.用户数量上都十分可观. 上一篇跟大家讲了零基础易语言入门教程(一)编写第一个程序,然后接下来大家应该自己把支持库和易语言组件里面的控件全部认真的看一下,下面我直接跟大家分享下易语言简单编程思路. 方法和步骤如下所示: 1.易语言程序

  • Bootstrap零基础入门教程(二)

    什么是 Bootstrap? Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的. 历史 Bootstrap 是由 Twitter 的 Mark Otto 和 Jacob Thornton 开发的.Bootstrap 是 2011 年八月在 GitHub 上发布的开源产品. 本文重点给大家介绍Bootstrap零基础入门教程(二),具体详情如下所示: 过程中会频繁查阅资料的网站: http://www.

  • BootStrap入门教程(二)之固定的内置样式

    相关阅读: BootStrap入门教程(一)之可视化布局 HTML5文档类型(Doctype) Bootstrap使用了一些HTML5元素和CSS属性,所以需要使用HTML5文档类型. <!DOCTYPE html> <html> .... </html> 移动设备优先 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 宽度设置

  • Python入门教程(二十九)Python的RegEx正则表达式

    RegEx 或正则表达式是形成搜索模式的字符序列. RegEx 可用于检查字符串是否包含指定的搜索模式. RegEx 模块 Python 提供名为 re 的内置包,可用于处理正则表达式. 导入 re 模块: import re Python 中的 RegEx 导入 re 模块后,就可以开始使用正则表达式了: 实例 检索字符串以查看它是否以 “China” 开头并以 “country” 结尾: import re txt = "China is a great country" x =

  • Python入门教程(二十八)Python中的JSON

    JSON 是用于存储和交换数据的语法. JSON 是用 JavaScript 对象表示法(JavaScript object notation)编写的文本. Python 中的 JSON Python 有一个名为 json 的内置包,可用于处理 JSON 数据. 实例 导入 json 模块: import json 解析 JSON - 把 JSON 转换为 Python 若有 JSON 字符串,则可以使用 json.loads() 方法对其进行解析. 结果将是 Python 字典 实例 把 JS

  • Python入门教程(二十七)Python的日期

    目录 Python 日期 日期输出 创建日期对象 strftime() 方法 Python 日期 Python 中的日期不是其自身的数据类型,但是我们可以导入名为 datetime 的模块,把日期视作日期对象进行处理. 实例 导入 datetime 模块并显示当前日期: import datetime x = datetime.datetime.now() print(x) 运行实例 2023-02-14 20:43:20.889388 日期输出 如果我们执行上面的代码,结果将是: 2019-0

随机推荐