zookeeper系列之:独立模式部署zookeeper服务
一、简述
独立模式是部署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服务的更多相关文章
- 服务注册中心之ZooKeeper系列(二) 实现一个简单微服务之间调用的例子
上一篇文章简单介绍了ZooKeeper,讲了分布式中,每个微服务都会部署到多台服务器上,那服务之间的调用是怎么样的呢?如图: 1.集群A中的服务调用者如何发现集群B中的服务提供者呢? 2.集群A中的服 ...
- hbase系列之:独立模式部署hbase
一.概述 在上一篇博文中,我简要介绍了hbase的部分基础概念,如果想初步了解hbase的理论,可以参看上一篇博文 hbase系列之:初识hbase .本博文主要介绍独立模式下部署hbase及hbas ...
- ZooKeeper系列(1):安装搭建ZooKeeper环境
ZooKeeper系列文章:https://www.cnblogs.com/f-ck-need-u/p/7576137.html#zk ZooKeeper有三种安装模式:单机安装(standalone ...
- ZooKeeper系列 (4) 构建ZooKeeper应用
原文地址: http://www.cnblogs.com/wuxl360/p/5817540.html 一.配置服务 配置服务是分布式应用所需要的基本服务之一,它使集群中的机器可以共享配置信息中那些公 ...
- ZooKeeper系列(2)--基于ZooKeeper实现简单的配置中心
ZooKeeper节点的类型分为以下几类: 1. 持久节点:节点创建后就一直存在,直到有删除操作来主动删除该节点 2. 临时节点:临时节点的生命周期和创建该节点的客户端会话绑定,即如果客户端会话失效 ...
- ZooKeeper系列(3)--基于ZooKeeper实现主从协作
基于ZooKeeper实现主从协作 主-从模式的模型中,主要包括三个角色: 主节点:主要负责监视新的节点和任务,分配任务给可用的从节点; 从节点:通过注册自己,确保主节点看到它们可以执行任务,收到主节 ...
- Zookeeper系列(十四)Zookeeper的数据与存储
作者:leesf 掌控之中,才会成功:掌控之外,注定失败. 出处:http://www.cnblogs.com/leesf456/p/6179118.html尊重原创,奇文共欣赏: 一.前言 前 ...
- ZooKeeper学习总结 第一篇:ZooKeeper快速入门
1. 概述 Zookeeper是Hadoop的一个子项目,它是分布式系统中的协调系统,可提供的服务主要有:配置服务.名字服务.分布式同步.组服务等. 它有如下的一些特点: 简单 Zookeeper的核 ...
- ZooKeeper学习总结(1)——ZooKeeper入门介绍
1. 概述 Zookeeper是Hadoop的一个子项目,它是分布式系统中的协调系统,可提供的服务主要有:配置服务.名字服务.分布式同步.组服务等. 它有如下的一些特点: 简单 Zookeeper的核 ...
随机推荐
- spring冲刺阶段之团队工作总结
一.小组成员: 王俊凯(项目经理) 罗林杰(产品负责人) 王逸辉(Master) 罗凯杰 二.任务分配情况 王俊凯:生成题目的代码编写并提出编写意见 罗林杰:负责把按钮和界面内容连接到代码上及主要代码 ...
- BETA-7
前言 我们居然又冲刺了·七 团队代码管理github 站立会议 队名:PMS 530雨勤(组长) 过去两天完成了哪些任务 经过分析发现,为提升速率估测的可靠性,目前最具可改造性的参数为帧间间隔,调用参 ...
- Good Time 冲刺 五
一.今日完成任务情况及遇到的问题 第五天 日期:2018.6.18 王怡镔:今天继续在学习中完善编写页面,对之前的页面进行部分改进. 于鑫宇:修改完善布局,复习. 胡雅馨:今天继续改进页面,努力解决时 ...
- 关于react 官方脚手架使用出现的问题
首先按照官网说明,一路的安装下来,很顺利,然后开始运行吧,提示个错误,缺少index.js 文件 原来是默认给出的文件是App.js 如何更改呢 找到react-script模块文件夹config下 ...
- “Unable to open kernel device \\.\Global\vmx86
启动vm中虚拟机中的时候,弹出窗口的时候,弹出窗口 Unable to open kernel device \\.\Global\vmx86;系统找不到指定的文件,Did you reboot af ...
- android自动化之appium的环境搭建
简介appium appium是C/S架构,appium的核心是一个web服务器,它提供了一套REST的接口,他会接收客户端的连接,监听到命令.执行会再将结果通过HTTP响应返还给客户端.ap ...
- laravel中的Contracts, ServiceContainer, ServiceProvider, Facades关系
Contracts, ServiceContainer, ServiceProvider, Facades Contracts 合同,契约,也就是接口,定义一些规则,每个实现此接口的都要实现里面的方 ...
- poj 1144(割点)
题目链接:http://poj.org/problem?id=1144 题意:给出一个无向图,求关键节点的个数. 分析:双连通分量Tarjan算法直接求割点就行了,裸的模板题. AC代码: #incl ...
- python & dict & switch
python & dict & switch python 中是没用switch语句的,这应该是体现python大道至简的思想,python中一般多用字典来代替switch来实现. # ...
- properties文件读取与写入
将peoperties文件的读取和写入封装成了一个工具类: import java.io.BufferedInputStream; import java.io.FileInputStream; im ...