首先从官网下载ZooKeeper压缩包,然后解压下载得到的ZooKeeper压缩包,发现有“bin,conf,lib”等文件夹。

“bin文件夹”中存放有执行脚本。“conf文件夹”中存放有配置文件。“lib文件夹”中存放有执行所须要第三方库。

一、standalone模式

1.1、编辑配置文件

在“conf”文件夹下,新建一个名为“zoo.cfg”的文件,当中内容例如以下:

tickTime=2000
dataDir=/home/dsl/tmp/zookeeper
clientPort=2181

1.2、执行ZooKeeper Server

执行bin/zkServer.sh start命令,执行ZooKeeper Server进程。得到如图1所看到的结果,表示后台执行ZooKeeper Server进程成功。

图1

也能够执行bin/zkServer.sh start-foreground命令,非后台执行ZooKeeper Server进程。得到如图2所看到的结果。

图2

1.3、执行ZooKeeper命令行client

执行bin/zkCli.sh -server 127.0.0.1:2181命令,执行ZooKeeper命令行client,得到如图3所看到的界面。能够在当中调用操作Znode节点树的API。

图3

1.4、调用操作Znode节点树的API

进入“1.3、执行ZooKeeper命令行client”中得到的界面。调用操作Znode节点树的API。

1、获取初始Znode节点

初始时。存在路径标识为“/zookeeper”的Znode节点。该Znode节点保存一些元数据。不能被删除。

执行ls /命令,可得到如图4所看到的结果。

图4

2、创建Znode节点

执行create /data "data"命令。创建一个Znode节点,路径标识为“/data”,包括内容“data”。

再执行ls /命令,得到如图5所看到的结果。

图5

3、删除Znode节点

执行delete /data命令,删除路径标识为“/data”的Znode节点。再执行ls /命令,得到如图6所看到的结果。

图6

二、quorum模式

使用quorum模式有两种形式:1)使用多台机器,在每台机器上执行一个ZooKeeper Server进程。2)使用一台机器。在该台机器上执行多个ZooKeeper Server进程。在生产环境中,一般使用第一种形式,在练习环境中,一般使用另外一种形式。

2.1、參数配置

quorum模式下。要使一个ZooKeeper Server进程能够正常执行,须要配置一些參数。下面是常见的一些參数。

1、data文件夹

用于存放进程执行数据。

2、data文件夹下的myid文件

用于存储一个数值。该数值用来作为该ZooKeeper Server进程的标识。

3、监听Client端请求的port号

该port号用来监听Client端请求。(关于“Client”见《ZooKeeper》 Chapter 2 Getting to Grips with ZooKeeper的图2)

4、监听同ZooKeeper集群内其它ZooKeeper Server进程通信请求的port号

该port号用来监听同ZooKeeper集群内其它ZooKeeper Server进程的通信请求。

5、监听ZooKeeper集群内“leader”选举请求的port号

该port号用来监听ZooKeeper集群内“leader”选举的请求。注意这个是ZooKeeper集群内“leader”的选举,跟分布式应用程序无关。

參数配置注意事项:

1)同一个ZooKeeper集群内,不同ZooKeeper Server进程的标识须要不一样。即myid文件内的值须要不一样

2)採用上述第2种形式构建ZooKeeper集群,须要注意“文件夹,port号”等资源的不可共享性,假设共享会导致ZooKeeper Server进程不能正常执行。比方“data文件夹。几个监听port号”都不能被共享

2.2、举例

採用上述第2种形式构建一个使用quorum模式的ZooKeeper集群。集群规划如表1所看到的。

表1

ZooKeeper Server进程标识(myid文件内数值) data文件夹 监听Client端请求的port号 监听同ZooKeeper集群内其它ZooKeeper Server进程通信请求的port号 监听ZooKeeper集群内“leader”选举请求的port号 配置文件名
1 /home/dsl/bigdisk/apps/zookeeper-3.4.8/deploy/z1/data 2181 2222 2223 z1.cfg
2 /home/dsl/bigdisk/apps/zookeeper-3.4.8/deploy/z2/data 2182 3333 3334 z2.cfg
3 /home/dsl/bigdisk/apps/zookeeper-3.4.8/deploy/z3/data 2183 4444 4445 z3.cfg

对应的文件夹结构如图1所看到的。

图1

“z1.cfg,z2.cfg,z3.cfg”这3个文件的文件内容分别例如以下所看到的。

# z1.cfg
tickTime=2000
initLimit=10
syncLimit=5 dataDir=/home/dsl/bigdisk/apps/zookeeper-3.4.8/deploy/z1/data
clientPort=2181
# server.x中的“x”表示ZooKeeper Server进程的标识
# 同一个ZooKeeper集群内的ZooKeeper Server进程间的通信不仅能够使用详细的点IP地址。也能够使用组播地址
server.1=127.0.0.1:2222:2223
server.2=127.0.0.1:3333:3334
server.3=127.0.0.1:4444:4445
# z2.cfg
tickTime=2000
initLimit=10
syncLimit=5 dataDir=/home/dsl/bigdisk/apps/zookeeper-3.4.8/deploy/z2/data
clientPort=2182
# server.x中的“x”表示ZooKeeper Server进程的标识
# 同一个ZooKeeper集群内的ZooKeeper Server进程间的通信不仅能够使用详细的点IP地址,也能够使用组播地址
server.1=127.0.0.1:2222:2223
server.2=127.0.0.1:3333:3334
server.3=127.0.0.1:4444:4445
# z3.cfg
tickTime=2000
initLimit=10
syncLimit=5 dataDir=/home/dsl/bigdisk/apps/zookeeper-3.4.8/deploy/z3/data
clientPort=2183
# server.x中的“x”表示ZooKeeper Server进程的标识
# 同一个ZooKeeper集群内的ZooKeeper Server进程间的通信不仅能够使用详细的点IP地址。也能够使用组播地址
server.1=127.0.0.1:2222:2223
server.2=127.0.0.1:3333:3334
server.3=127.0.0.1:4444:4445

2.2.1、执行ZooKeeper Server

分别执行bin/zkServer.sh start deploy/z1/z1.cfgbin/zkServer.sh start deploy/z2/z2.cfgbin/zkServer.sh start deploy/z3/z3.cfg命令,执行上述配置的3个ZooKeeper Server进程。

2.2.2、执行ZooKeeper命令行client

执行bin/zkCli.sh -server 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183命令,建立ZooKeeper Client端到ZooKeeper集群的连接会话。

2.2.3、调用操作Znode节点树的API

跟“1.4、调用操作Znode节点树的API”一样,能够在“2.2.2、执行ZooKeeper命令行client”中得到的界面内,调用操作Znode节点树的API。

备注:

依据《ZooKeeper》 Chapter 2 Getting to Grips with ZooKeeper可知,“ZooKeeper命令行client”本质上还是使用了Java版驱动程序库提供的API或者C版驱动程序库提供的API。




參考文献:

[1]https://zookeeper.apache.org/doc/r3.4.8/zookeeperStarted.html

[2]http://blog.csdn.net/dslztx/article/details/51077606

ZooKeeper安装与执行的更多相关文章

  1. ZooKeeper学习第二期--ZooKeeper安装配置

    一.Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式. ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境:■ 伪集群模式:就是在一台物 ...

  2. ZooKeeper 安装部署

    一.解压 tar -zxvf zookeeper-3.3.5.tar.gz 二.将zookeeper-3.3.4/conf目录下面的 zoo_sample.cfg修改为zoo.cfg,配置文件内容如下 ...

  3. Zookeeper安装部署

    Zookeeper安装 1. 安装 wget http://www.apache.org/dist//zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz ...

  4. ZooKeeper安装与运行

    ZooKeeper安装与运行 首先从官网下载ZooKeeper压缩包,然后解压下载得到的ZooKeeper压缩包,发现有“bin,conf,lib”等目录.“bin目录”中存放有运行脚本:“conf目 ...

  5. 【Zookeeper】Zookeeper安装配置

    本文演示使用三台Linux服务器安装Zookeeper,使用的是zookeeper-3.4.5版本,将zookeeper-3.4.5.tar.gz上传到linux服务器, 使用如下命令解压到/usr/ ...

  6. Zookeeper系列一:Zookeeper介绍、Zookeeper安装配置、ZK Shell的使用

    https://www.cnblogs.com/leeSmall/p/9563547.html 一.Zookeeper介绍 1. 介绍Zookeeper之前先来介绍一下分布式 1.1 分布式主要是下面 ...

  7. zookeeper安装(单机版)

    1:查看当前服务器IP: # ifconfig 情况1:直接可以看到自己的IP:192.168.164.130 情况2:看不到自己的IP(但是能看到ifcfg-开头的东西,如:ifcfg-eno167 ...

  8. 【Zookeeper系列】ZooKeeper安装配置(转)

    原文链接:https://www.cnblogs.com/sunddenly/p/4018459.html 一.Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪 ...

  9. 【转载】ZooKeeper学习第二期--ZooKeeper安装配置

    原文地址(https://www.cnblogs.com/sunddenly/p/4018459.html) 一.Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及 ...

随机推荐

  1. [BZOJ1295][SCOI2009]最长距离 最短路+枚举

    1295: [SCOI2009]最长距离 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1683  Solved: 912[Submit][Statu ...

  2. Reporting Service报表水印的添加

    上一篇文章寫到了自帶報表的製作,現在來談談報表水印的添加 1:水印產生代碼 using System; using System.Data; using System.Configuration; u ...

  3. (6)C#方法,作用域,方法重载

    1.方法 返回类型 方法名(参数列表) 例如:int a(int b,int c) { 方法体 return b+c; } 函数如果有返回类型则最后要用return一个和返回类型一样的数据. 2.无返 ...

  4. 二分LIS模板

    假设存在一个序列d[1..9] = 2 1 5 3 6 4 8 9 7,可以看出来它的LIS长度为5. 下面一步一步试着找出它. 我们定义一个序列B,然后令 i = 1 to 9 逐个考察这个序列. ...

  5. python 字符串最长公共前缀

      编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow&qu ...

  6. Linux是32位还是64位

    命令行输入 file /bin/ls 显示 /sbin/init: ELF 64-bit LSB executable, x86-64 ...   则为64位 file /sbin/init /sbi ...

  7. POJ 2987 Firing(最大权闭合图)

    [题目链接] http://poj.org/problem?id=2987 [题目大意] 为了使得公司效率最高,因此需要进行裁员, 裁去不同的人员有不同的效率提升效果,当然也有可能是负的效果, 如果裁 ...

  8. 数论day1 —— 基础知识(们)

    [pixiv] https://www.pixiv.net/member_illust.php?mode=medium&illust_id=61632537 向大(hei)佬(e)势力学(di ...

  9. 【hdu1150】【Machine Schedule】二分图最小点覆盖+简单感性证明

    (上不了p站我要死了,侵权度娘背锅) 题目大意 有两台机器A和B以及N个需要运行的任务.每台机器有M种不同的模式,而每个任务都恰好在一台机器上运行.如果它在机器A上运行,则机器A需要设置为模式ai,如 ...

  10. [USACO09MAR]Cleaning Up

    题目大意: 给你一个长度为n的序列a,你可以将其分为若干段,最终的答案为每一段不同数个数的平方和. 思路: 不难想到一个O(n^2)的DP: f[i]=min{f[j]+cnt(j,i)^2} 考虑一 ...