一、简述

  独立模式是部署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. Teamwork(The second day of the team)

    梦之翼 5.20工作汇报: Master:杨灵超 产品负责人:杨家安 第一次Sprint的目标和时间: 目标:这一次的sprint我们想先做成一个可以运行的可以展示,但是功能或许还不是很完善的一个模型 ...

  2. ResNet笔记

    参考: Deep Learning-TensorFlow (14) CNN卷积神经网络_深度残差网络 ResNet 先前的研究已经证明,拥有至少一个隐层的神经网络是一个通用的近似器,只要提高网络的深度 ...

  3. 团队作业4Alpha冲刺(真.三英战吕布团队)

    第一天 2018/6/13 1.1 今日完成任务情况以及遇到的问题. 1.1.1:完成前台部分界面优化,后台进行代码优化 1.1.2团队前台部分js.jquery部分功能实现有难度. 1.2 明天任务 ...

  4. 手动解析Excel获取文件元数据

    工作中有遇到需要获取上传的Excel文件的列明.最大行数.大小等元数据信息.通常做法是通过Apache的POI工具加载文件然后再读取行列进行处理.这种方法很大的弊端就是需要把excel文件加载到内存, ...

  5. Prism框架的优点

    以我粗略的了解,prism/mvvm可以做到完全的逻辑和ui分离.即便是事件都是如此.这是主要优点.mvc是从本质上ui框架(当前大量半吊子把业务逻辑写在里面是不对的),mvvm包含客户端的业务逻辑. ...

  6. SQLSERVER 使用XP开头的系统默认存储过程

    1. 根据官网上面的内容进行执行命令 EXEC xp_cmdshell 'dir *.exe'; 但是会报错 消息 ,级别 ,状态 ,过程 xp_cmdshell,行 [批起始行 ] SQL Serv ...

  7. Linux 压缩 解压缩 命令相关

    1.命令格式:tar[必要参数][选择参数][文件] 2.命令功能:用来压缩和解压文件.tar本身不具有压缩功能.他是调用压缩功能实现的 3.命令参数:必要参数有如下:-A 新增压缩文件到已存在的压缩 ...

  8. 第218天:Angular---模块和控制器

    1.使用NG实现双边数据绑定 所有需要ng管理的代码必须被包裹在一个有ng-app指令的元素中ng-app是ng的入口,表示当前元素的所有指令都会被angular管理(对每一个指令进行分析和操作) & ...

  9. POJ1430

    这个题目初看上去是一个排列组合题,而实际上……也是一个排列组合题. 题目描述是: Description The Stirling number of the second kind S(n, m) ...

  10. Centos7搭建redis集群及安装sentinel

    准备三个节点,系统版本为CentOS7.3 11.0.8.15 master 11.0.8.16 slave01 11.0.8.17 slave02 1.安装redis # yum install - ...