一、简述

  独立模式是部署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. Objective-C UIWebView添加脚视图

    - (void)addObserverForWebViewContentSize{ [self.webView.scrollView addObserver:self forKeyPath: cont ...

  2. 用css 实现凹陷的线条

    box-shadow: 0 1px 0 rgba(255,255,255,0.2) inset,0 -1px 0 rgba(0,0,0,.2) inset; 因为颜色为透明颜色,所以颜色是什么样的,不 ...

  3. vue开发完成后打包后图片路径不对

    用vue做了一个小的移动端项目,从头到尾做下来,感觉自己好多东西都没弄清楚过.也学到了很多,已整理笔记在自己电脑上,但是比较零散,空了再来仔细整理整理. 于是,上周五模拟好数据(接口还未写),准备打包 ...

  4. 基于Freemarker的eclipse plugin代码生成器插件开发

    固定类型的软件写多了,里面总是有一些复制粘贴改变类名改变量的基础文件,相似程度非常高.作为一名程序员,坚持不多写一行重复代码的精神,写了一个Eclipse的代码生成器插件.插件通过在xml文件中配置的 ...

  5. (三)使用Jmeter模拟300个用户登录

    1.首先在系统中创建300个用户(在这里使用 pl/sql 进行循环创建): 代码如下: --先对原先的表进行备份 :CREATE TABLE sys_user_bak AS SELECT * FRO ...

  6. 关于对i++,++i的理解

    i++,代表 先赋值,在加:++i,代表先自加再赋值:后台console例子中可以看到第一个例子:var a= i++;  i是等于1的:先赋值,所以打印出a =1的:而i++后为2:所以打印出a = ...

  7. PHP数据库常用常量笔记

    参考:http://php.net/manual/zh/pdo.constants.php Warning 自 PHP 5.1 起,开始使用类常量.以前的版本使用类似 PDO_PARAM_BOOL 这 ...

  8. DAY2-Flask项目

    回顾: 1.安装pipenv虚拟运行环境,隔离项目 (启动:pipenv shell) 2.安装flask(pipenv install shell),查看项目依赖(pipenv graph) 3.查 ...

  9. Visual Categorization with Bags of Keypoints

    1.Introduction and backgrounds 作为本周的论文之一,这是一篇bag of features的基本文章之一,主要了解其中的基本思路,以及用到的基本技术,尽量使得细节更加清楚 ...

  10. 【刷题】BZOJ 2002 [Hnoi2010]Bounce 弹飞绵羊

    Description 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏.游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置 ...