ZooKeeper的安装、配置、启动和使用(一)——单机模式

ZooKeeper的安装非常简单,它的工作模式分为单机模式、集群模式和伪集群模式,本博客旨在总结ZooKeeper单机模式下如何安装、配置、启动和使用:

一、安装配置ZooKeeper(在Windows操作系统下)

a、下载ZooKeeper压缩安装文件,这里下载稳定版——zookeeper-3.4.5.tar.gz

b、解压压缩文件,这里将其解压到C盘根目录下,打开解压后的文件夹,得到下图:

c、点击上图名为“conf”的文件夹,可以看到下图:

d、用记事本打开上图名为“zoo_sample.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=/tmp/zookeeper
# the port at which the clients will connect
clientPort=2181
#
# 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

这里对上面几个参数做一下必要的说明:

e、在conf文件夹中新建名为“zoo.cfg”的文件(ZooKeeper在启动时会找名为“zoo.cfg”的文件并将其作为默认配置文件),并用记事本打开,将原来名为“zoo_sample.cfg”的文件中的内容拷贝到新建的“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=C:/zookeeper-3.4.5/data
# the port at which the clients will connect
clientPort=2181
#
# 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

至此ZooKeeper在Windows操作系统中安装配置完毕,但需要指出的是ZooKeeper是使用Java编写的,因此运行ZooKeeper之前必须安装Java环境——配置JDK,且JDK的版本要大于或等于1.6。

二、启动ZooKeeper

打开上面第一张图片中显示的名为“bin”的文件夹,得到下图:

a、启动ZooKeeper服务器端:在Windows操作系统中双击上图名为“zkServer.cmd”的文件,在Linux操作系统中使用命令运行名为“zkServer.sh”的文件;

b、启动ZooKeeper客户端:在Windows操作系统中双击上图名为“zkCli.cmd”的文件,在Linux操作系统中使用命令运行名为“zkCli.sh”的文件;

注意:上面两步不能颠倒,否则ZooKeeper客户端不能成功启动;

三、使用ZooKeeper

在Windows操作系统中双击“zkServer.cmd”文件和“zkCli.cmd”文件后会出现两个cmd窗口,千万不要关闭哟

package com.ghj.packageoftest;

import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.ZooKeeper; public class ZooKeeperClient { public static void main(String[] args) throws Exception{
Watcher watcher = new Watcher(){
// 监控所有被触发的事件
public void process(WatchedEvent event) {
System.out.println("触发了" + event.getType() + "事件!");
}
}; ZooKeeper zooKeeper = new ZooKeeper("127.0.0.1:2181", 5000, watcher);//第一个参数:ZooKeeper服务器的连接地址,如果ZooKeeper是集群模式或伪集群模式(即ZooKeeper服务器有多个),那么每个连接地址之间使用英文逗号间隔,单个连接地址的语法格式为“主机IP:ZooKeeper服务器端口号”;
//第二个参数:session超时时长(单位:毫秒)
//第三个参数:用于监控目录节点数据变化和子目录状态变化的Watcher对象
zooKeeper.create("/RootNode", "RootNodeData".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);//创建一个节点名为“/RootNode”的目录节点
System.out.println("“/RootNode”节点状态:" + zooKeeper.exists("/RootNode",true));//判断指定目录节点是否存在
System.out.println("“RootNode”节点上数据:"+new String(zooKeeper.getData("/RootNode", false, null)));//获取“RootNode”节点上的数据
zooKeeper.create("/RootNode/ChildNode1", "ChildNode1Data".getBytes(), Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);//在“RootNode”节点下创建一个名为“ChildNode1”的子目录节点
zooKeeper.create("/RootNode/ChildNode2", "ChildNode2Data".getBytes(), Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);//在“RootNode”节点下创建一个和“ChildNode1”同级的名为“ChildNode2”的子目录节点
System.out.println("目录节点“RootNode”下的所有子目录节点有:"+zooKeeper.getChildren("/RootNode",true)); //取出目录节点“RootNode”下的所有子目录节点
zooKeeper.setData("/RootNode/ChildNode2","NewChildNode2Data".getBytes(),-1);//修改名为“ChildNode2”的目录节点数据 zooKeeper.delete("/RootNode/ChildNode1", -1);//删除“/RootNode/ChildNode1”目录节点
System.out.println("“/RootNode/ChildNode1”节点状态:" + zooKeeper.exists("/RootNode/ChildNode1", false));//判断“/RootNode/ChildNode1”目录节点是否存在
zooKeeper.delete("/RootNode/ChildNode2", -1);//删除“/RootNode/ChildNode2”目录节点
zooKeeper.delete("/RootNode", -1);//删除“/RootNode”目录节点
zooKeeper.close(); //关闭与ZooKeeper的连接
}
}

ZooKeeper的安装、配置、启动和使用(一)——单机模式的更多相关文章

  1. zookeeper 分布式安装/配置/启动

    版本3.4.10,已提前配置好jdk 三台主机:hadoop002,hadoop003.hadoop004 1.配置 将zookeeper-3.4.10.tar.gz解压后进入zookeeper-3. ...

  2. ZooKeeper 组件安装配置

    ZooKeeper 组件安装配置 下载和安装 ZooKeeper ZooKeeper最新的版本可以通过官网 http://hadoop.apache.org/zookeeper/ 来获取,安装 Zoo ...

  3. zookeeper的安装和启动教程

    zookeeper的安装和启动 zookeeper安装包所在目录: 上传文件到虚拟机.现在本地新建一个目录setup,将zookeeper压缩包复制进去. ALT+P打开一个标签,操作如下put命令. ...

  4. zookeeper的安装和启动

    最近的手上一个项目要用到dubbo,顺便研究下zookeeper 1.下载 下载地址:http://www.apache.org/dyn/closer.cgi/zookeeper/,下载解压到D:\t ...

  5. Zookeeper的安装配置及基本开发

    一.简介 Zookeeper 是分布式服务框架,主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状态同步服务.集群管理.分布式应用配置项的管理等等. ZooKeeper的目标就 ...

  6. ZooKeeper下载安装配置-单机版配置

    1,下载地址:http://apache.fayea.com/zookeeper/ 2,检查环境变量(需要确保配置了环境变量): java -version 3,安装配置: (1)解压 tar -zx ...

  7. Zookeeper WINDOWS 安装配置

    下载:zookeeper:http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz 解压zo ...

  8. Centos下zookeeper的安装配置

    下载安装包,下载地址 http://zookeeper.apache.org/releases.html,我下载的版本是zookeeper-3.4.9.tar.gz. # tar xvzf zooke ...

  9. windows下 zookeeper dubbo 安装+配置+demo 详细图文教程

    Java集群优化——dubbo+zookeeper构建 互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这 ...

  10. yii2框架的安装&配置启动

    top:环境MacBook 1.通过composer 安装yii2 [yii2需要php的PDO和pdo_mysql扩展,需要确认已安装] a. 首先需要配置composer:我使用的是阿里云的镜像: ...

随机推荐

  1. API通用设计原则

    什么是好的API? ·        完备(Be Complete) 对确定重点支持的用户场景具有完备的功能支持.就是说,用户通过对一组API的调用能够完成预期的功能. ·        不冗余(Be ...

  2. nexus搭建

    Nexus是Maven仓库管理软件,可以用来搭建私服.主页 http://www.sonatype.org/nexus/ 下载地址 http://www.sonatype.org/nexus/down ...

  3. NodeJS会是昙花一现吗?

    在用了一年以后,我感觉node.js有一点不正确劲.它非常有意思,可是我认为我应该用另外一个视角去审视它. 网络编程真的能够更easy吗? node.js无疑有一些设计很好的地方.前段时间我写了一个性 ...

  4. vld(Visual Leak Detector) 内存泄露检测工具

    初识Visual Leak Detector 灵活自由是C/C++语言的一大特色,而这也为C/C++程序员出了一个难题.当程序越来越复 杂时,内存的管理也会变得越加复杂,稍有不慎就会出现内存问题.内存 ...

  5. Poj 3771 hdu 3405

    poj 3771 http://poj.org/problem?id=3771 wiki Prim http://zh.wikipedia.org/wiki/%E6%99%AE%E6%9E%97%E5 ...

  6. GDI 总结三: CImage类使用

    前言          CImage类是基于GDI+的.可是这里为什么要讲归于GDI? 主要是基于这种考虑: 在GDI+环境中,我们能够直接使用GDI+ ,没多少必要再使用CImage类 可是,假设再 ...

  7. POJ 2762推断单个联通(支撑点甚至通缩+拓扑排序)

    Going from u to v or from v to u? Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 14789 ...

  8. 模拟产生CBC LATCH与buffer busy wait等待事件

    数据库版本:11.2.0.4.0 1.查出表TEST相关信息 select rowid, dbms_rowid.rowid_row_number(rowid) rowid_rownum, dbms_r ...

  9. 中文分词算法之最大正向匹配算法(Python版)

    最大匹配算法是自然语言处理中的中文匹配算法中最基础的算法,分为正向和逆向,原理都是一样的. 正向最大匹配算法,故名思意,从左向右扫描寻找词的最大匹配. 首先我们可以规定一个词的最大长度,每次扫描的时候 ...

  10. 【Demo 0008】Java基础-抽象类

    本掌学习要点:       1.  了解抽象类的定义及使用场景:       2.  掌握final修饰的类.方法以及变量作用及用法:       3.  掌握abstract 修饰的类及方法作用及用 ...