一、简述

  独立模式是部署zookeeper服务的三种模式中最简单和最基础的模式,只需一台机器即可,独立模式仅适用于学习,开发和生产都不建议使用独立模式。本文介绍以独立模式部署zookeeper服务器的全过程,并提供一些验证它正在运行的简单命令。

二、先决条件

  1、一台机器,本文使用服务器为CentOS 7.3。

  2、zookeeper在java虚拟机(JVM)上运行,要求JDK1.6或更高版本,所以需要安装JDK并配置环境变量,JDK的安装网络上有很多教程,此处就不再赘述,本文使用JDK版本为JDK1.8

三、下载zookeeper

  下载zookeeper,一般我选择到zookeeper档案馆中下载,既然是zookeeper档案馆,那zookeeper的各种版本,应有尽有,此处献上连接:http://zookeeper.apache.org/releases.html。此处使用的是zookeeper-3.4.0,所以下载文件zookeeper-3.4.0.tar.gz

四、独立模式部署zookeeper服务

  1、新建目录:在跟目录下新建目录/data/zookeeper

  2、上传文件:上传zookeeper-3.4.0.tar.gz/data/zookeeper目录下。

  3、解压:解压缩包到当前目录下,tar xzf zookeeper-3.4.0.tar.gz

  4、配置zookeeper环境变量:编辑/etc/profile文件,在文件末尾添加下列代码:

 export ZOOKEEPER_HOME=/data/zookeeper/zookeeper-3.4.
export PATH=$PATH:$ZOOKEEPER_HOME/bin

配置zookeeper环境变量

    如下图所示:

    

    保存文件,执行命令source /etc/profile使命令立即生效。

  5、配置zookeeper

    在启动zookeeper服务之前,我们需要创建一个配置文件,用于配置zookeeper服务。这个文件习惯上命名为zoo.cfg,在解压后的zookeeper文件下的conf目录下可以找到zoo.cfg文件的模板文件zoo_sample.cfg,如下图所示:

    

    使用命令cp zoo_sample.cfg zoo.cfg复制zoo_sample.cfg文件并重命名为zoo.cfg,如下图所示:

    

    编辑zoo.cfg文件,修改dataDir属性值为/data/zookeeper/zdata,如下图所示,该属性主要是配置zookeeper产生的数据存放的目录。也可以为其他的目录,前提是目录已经存在,如果不存在,则新建。此处/data/zookeeper/zdata目录我已经提前建好。

    

    注释掉属性initLimit和syncLimit。

    仔细观察可以发现此处仅仅设置了3个属性,分别为tickTime=2000、dataDir=/data/zookeeper/zdata、clientPort=2181。tickTime和clientPort保持默认即可,这是独立模式下zookeeper的最低要求。附录中会附上这3个属性的详细解析。

  6、启动zookeeper:由于配置了zookeeper系统环境变量,所以可以在任意路径下执行zkServer.sh start 命令来启动zookeeper。当然,如果没有配置环境变量的话,只能到/data/zookeeper/zookeeper-3.4.0/bin下通过命令./zkServer.sh start来启动zookeeper服务。如成功下图所示:

    

五、验证

  验证zookeeper服务是否启动(或服务是否正常),其实很简单。使用nc发送ruok命令到监听端口,即可检查zookeeper服务是否正在运行。命令如下:

echo ruok | nc localhost 

检查zookeeper服务是否运行

  ruok(必须配置zookeeper环境变量后此命令才有效)命令即 Are you OK?,即询问zookeeper服务是否安好,如果安好,也就是zookeeper服务正在运行,则打印imok(I am ok),如下图所示:

六、客户端连接zookeeper服务

  在任意路径下执行命令zkCli.sh -server localhost:2181连接zookeeper,如果没有配置环境变量,需要到/data/zookeeper/zookeeper-3.4.0/bin路径下执行./zkCli.sh -server localhost:2181,如下图所示:

  连接成功之后输入命令ls /可以看到zookeeper服务默认已经创建了一个zookeeper节点,如下图所示:

  

至此,独立模式下部署zookeeper服务成功,接下来可以操作zookeeper啦!在下一篇博文中会介绍zookeeper的简单操作。

附录:上述配置文件中各变量详解

  1、tickTime属性指定了zookeeper中的基本事件单元,以毫秒为单位。例如秒是人类的基本事件单元,人类计时以1秒、2秒、3秒.........,而zookeeper则使用我们给它设置的时间单元来计时。

   2、dataDir属性指定了zookeeper产生的数据存储的位置,建议不要使用默认位置,该属性值代表的路径必须存在,zookeeper启动时找不到该路径会抛出异常。

   3、clientPort属性指定了zookeeper用于监听客户端的端口

由于能力有限,如有不足和错误之处,还望不吝指出!

zookeeper系列之:独立模式部署zookeeper服务的更多相关文章

  1. 服务注册中心之ZooKeeper系列(二) 实现一个简单微服务之间调用的例子

    上一篇文章简单介绍了ZooKeeper,讲了分布式中,每个微服务都会部署到多台服务器上,那服务之间的调用是怎么样的呢?如图: 1.集群A中的服务调用者如何发现集群B中的服务提供者呢? 2.集群A中的服 ...

  2. hbase系列之:独立模式部署hbase

    一.概述 在上一篇博文中,我简要介绍了hbase的部分基础概念,如果想初步了解hbase的理论,可以参看上一篇博文 hbase系列之:初识hbase .本博文主要介绍独立模式下部署hbase及hbas ...

  3. ZooKeeper系列(1):安装搭建ZooKeeper环境

    ZooKeeper系列文章:https://www.cnblogs.com/f-ck-need-u/p/7576137.html#zk ZooKeeper有三种安装模式:单机安装(standalone ...

  4. ZooKeeper系列 (4) 构建ZooKeeper应用

    原文地址: http://www.cnblogs.com/wuxl360/p/5817540.html 一.配置服务 配置服务是分布式应用所需要的基本服务之一,它使集群中的机器可以共享配置信息中那些公 ...

  5. ZooKeeper系列(2)--基于ZooKeeper实现简单的配置中心

    ZooKeeper节点的类型分为以下几类:  1. 持久节点:节点创建后就一直存在,直到有删除操作来主动删除该节点 2. 临时节点:临时节点的生命周期和创建该节点的客户端会话绑定,即如果客户端会话失效 ...

  6. ZooKeeper系列(3)--基于ZooKeeper实现主从协作

    基于ZooKeeper实现主从协作 主-从模式的模型中,主要包括三个角色: 主节点:主要负责监视新的节点和任务,分配任务给可用的从节点; 从节点:通过注册自己,确保主节点看到它们可以执行任务,收到主节 ...

  7. Zookeeper系列(十四)Zookeeper的数据与存储

    作者:leesf    掌控之中,才会成功:掌控之外,注定失败. 出处:http://www.cnblogs.com/leesf456/p/6179118.html尊重原创,奇文共欣赏: 一.前言 前 ...

  8. ZooKeeper学习总结 第一篇:ZooKeeper快速入门

    1. 概述 Zookeeper是Hadoop的一个子项目,它是分布式系统中的协调系统,可提供的服务主要有:配置服务.名字服务.分布式同步.组服务等. 它有如下的一些特点: 简单 Zookeeper的核 ...

  9. ZooKeeper学习总结(1)——ZooKeeper入门介绍

    1. 概述 Zookeeper是Hadoop的一个子项目,它是分布式系统中的协调系统,可提供的服务主要有:配置服务.名字服务.分布式同步.组服务等. 它有如下的一些特点: 简单 Zookeeper的核 ...

随机推荐

  1. windows下的C++ socket服务器(1)

    windows下的一个C++ socket服务器,用到了C++11的相关内容,现在还不是很完善,以后会不断改进的! #include <winsock2.h>//1 以后会用这种方式对特定 ...

  2. Mongodb compass 介绍

    参考官方文档:https://docs.mongodb.com/compass/current/install/#install-on-red-hat-enterprise-linux-rhel Mo ...

  3. Scrum 项目 4.0-5.0-约教网站开发(一)

    ----------------------------------4.0----------------------------------------------- 一.项目任务 1.准备看板. ...

  4. svm小问题

    1.没有报错但是结果是pedicttestlabel = [] accuracy = [] 举例:(前提是装了工具箱libsvm-3.21) data=[178,80;172,75;160,50;15 ...

  5. ANR基础

    转自:http://blog.sina.com.cn/s/blog_c0de2be70102wd1k.html 1.ANR basic knowledge ANR分类: Key Dispatch Ti ...

  6. 笔记:delphi 与 Query

    以下不保存证正确 Query用SQL语言执行过的,没有必要Cancel.Post,因为其会对数据库直接操作:执行Update.Insert.Delete请用SQL语句: 用Table使用对当前记录直接 ...

  7. 对\${ctx}的一点理解

    一.\${ctx}与${pageContext.request.contextPath}的区别 相同点: \${ctx}和\${pageContext.request.contextPath}都是获取 ...

  8. VS2013 UML 如何复制文件

    如:复制活动图,文件复制了显示不了 正确做法:新建活动图,打开源活动图,全选,复制,在新建的活动图粘贴,以此实现复制

  9. MT【161】韦恩图

    (清华2017.4.29标准学术能力测试25) 若$N$的三个子集$A,B,C$满足$|A\cap B|=|B\cap C|=|C\cap A|=1$,且$A\cap B\cap C=\varnoth ...

  10. 【BZOJ3609】人人尽说江南好(博弈论)

    [BZOJ3609]人人尽说江南好(博弈论) 题面 BZOJ 洛谷 题解 昨天考试的时候,毒瘤出题人出了一个\(noip\)博弈十合一然后他就被阿鲁巴了,因为画面残忍,就不再展开. 这题是他的十合一中 ...