ZooKeeper安装与执行
首先从官网下载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.cfg
。bin/zkServer.sh start deploy/z2/z2.cfg
和bin/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安装与执行的更多相关文章
- ZooKeeper学习第二期--ZooKeeper安装配置
一.Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式. ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境:■ 伪集群模式:就是在一台物 ...
- ZooKeeper 安装部署
一.解压 tar -zxvf zookeeper-3.3.5.tar.gz 二.将zookeeper-3.3.4/conf目录下面的 zoo_sample.cfg修改为zoo.cfg,配置文件内容如下 ...
- Zookeeper安装部署
Zookeeper安装 1. 安装 wget http://www.apache.org/dist//zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz ...
- ZooKeeper安装与运行
ZooKeeper安装与运行 首先从官网下载ZooKeeper压缩包,然后解压下载得到的ZooKeeper压缩包,发现有“bin,conf,lib”等目录.“bin目录”中存放有运行脚本:“conf目 ...
- 【Zookeeper】Zookeeper安装配置
本文演示使用三台Linux服务器安装Zookeeper,使用的是zookeeper-3.4.5版本,将zookeeper-3.4.5.tar.gz上传到linux服务器, 使用如下命令解压到/usr/ ...
- Zookeeper系列一:Zookeeper介绍、Zookeeper安装配置、ZK Shell的使用
https://www.cnblogs.com/leeSmall/p/9563547.html 一.Zookeeper介绍 1. 介绍Zookeeper之前先来介绍一下分布式 1.1 分布式主要是下面 ...
- zookeeper安装(单机版)
1:查看当前服务器IP: # ifconfig 情况1:直接可以看到自己的IP:192.168.164.130 情况2:看不到自己的IP(但是能看到ifcfg-开头的东西,如:ifcfg-eno167 ...
- 【Zookeeper系列】ZooKeeper安装配置(转)
原文链接:https://www.cnblogs.com/sunddenly/p/4018459.html 一.Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪 ...
- 【转载】ZooKeeper学习第二期--ZooKeeper安装配置
原文地址(https://www.cnblogs.com/sunddenly/p/4018459.html) 一.Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及 ...
随机推荐
- 编写COOL编译器
Coursera上面有Stanford的课程“Compilers”,该课程使用“龙书”作为参考书,并有一个编程项目,完成一个完整的编译器.这个编译器支持的语言称为COOL,是一个面向对象的用于教学的语 ...
- protobuf 中的嵌套消息的使用 主要对set_allocated_和mutable_的使用
protobuf的简单的使用,不过还留下了一个问题,那就是之前主要介绍的都是对简单数据的赋值,简单数据直接采用set_xx()即可,但是如果不是简单变量而是自定义的复合类型变量,就没有简单的set函数 ...
- centos编译安装vim并支持lua
系统环境:centos6.5 x86 (basic server) 1.安装编译环境. # yum groupinstall "Development Tools" 2.安装vim ...
- Centos 环境变量
1. 控制台中,不赞成使用这种方法,因为换个shell,你的设置就无效了,因此这种方法仅仅是临时使用,以后要使用的时候又要重新设置,比较麻烦. 这个只针对特定的shell; $ PATH=" ...
- 第五步:Lucene创建索引
package cn.lucene; import java.io.IOException; import java.nio.file.Paths; import java.util.Date; im ...
- 陕西师范大学第七届程序设计竞赛网络同步赛D ZQ的睡前故事【约瑟夫环1-N数到第k个出队,输出出队顺序/ STL模拟】
链接:https://www.nowcoder.com/acm/contest/121/D来源:牛客网 题目描述 ZQ是一个拥有n女朋友的万人迷,她的每一个女朋友每天晚上都会挨个给他打电话,要他讲了睡 ...
- Python与数据结构[1] -> 栈/Stack[1] -> 中缀表达式与后缀表达式的转换和计算
中缀表达式与后缀表达式的转换和计算 目录 中缀表达式转换为后缀表达式 后缀表达式的计算 1 中缀表达式转换为后缀表达式 中缀表达式转换为后缀表达式的实现方式为: 依次获取中缀表达式的元素, 若元素为操 ...
- #417 Div2 E (树上阶梯博弈)
#417 Div2 E 题意 给出一颗苹果树,设定所有叶子节点的深度全是奇数或偶数,并且包括根在内的所有节点上都有若干个苹果. 两人进行游戏,每回合每个人可以做下列两种操作中的一种: 每个人可以吃掉某 ...
- Java StringBuffer与StringBuider
String 的值是不可变的,每次对String的操作都会生成新的String对象,不仅效率低,而且耗费大量内存空间. StringBuffer类和String类一样,也用来表示字符串,但是Strin ...
- jsp homework(*)
3.编写一个JSP程序实现手表的功能,显示当前时间(时:分:秒),并不停地自动刷新时间. 方法一[scriptlet] <%@ page language="java" im ...