Zookeeper学习 安装和四字命令
Posted gongcomeon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zookeeper学习 安装和四字命令相关的知识,希望对你有一定的参考价值。
前言
在刚开始没有接触zookeeper的具体应用前,光看别人的描述,其实对它的实际应用其实不是特别清晰,所以慢慢从其基础应用开始了解其底层原理是很重要也是很必要的。
首先,安装Zookeeper并了解一下Zookeeper的基础命令。这个过程是非常简单的,正如zookeeper官网说的,zookeeper是可复制的,安装zookeeper的集群其实就是安装多个单机版的zookeeper,然后通过配置让每个zookeeper起来。因此,Zookeeper的安装有下列几种:
- 单机Zookeeper
- 单机多Zookeeper示例
- Zookeeper集群
其实之前在公司项目里就研究过Zookeeper的使用,并在team的wiki里把zookeeper的安装过程和在项目里的使用信息在wiki中分享了,这里把当时的安装过程翻译(公司wiki是英文写的),分享一下,并介绍一下zookeeper的基础命令。在下一章介绍中会做一个简单的demo介绍下zookeeper的基础API的使用,同时也会简单说说我们当时在项目中是如何使用zookeeper的。
单机安装
1. 环境
centos7, Java 1.8(Zookeeper要求Java不低于1.6的版本)
并且Zookeeper必须要2GB的RAM和80GB硬盘空间。
2. 下载Zookeeper
Zookeeper版本查看:Zookeeper Releases
我们项目中使用的版本是:Release 3.4.11(stable) ; Archive网址:Zookeeper 3.4.11
cmd: wget?https://archive.apache.org/dist/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar.gz
3. 解压
把下载的Zookeeper解压成binary文件。
cmd:?tar -zxvf zookeeper-3.4.11.tar.gz
4. 具体操作
进入解压后zookeeper的文件夹,然后进入conf文件夹。这时候会发现有一个zoo_sample.cfg文件。
复制zoo_sample.cfg并生成一个新的名为zoo.cfg的文件。
编辑zoo.cfg。
- 把zoo.cfg中dataDir的值改为一个已经有的文件夹,在我们当时的测试环境中我们设置的值是dataDir=/var/lib/zookeeper;dataDir是存放内存数据库快照的位置; 默认情况下,事务日志也会存储在这里。
- tickTime:基本事件单元,以毫秒为单位。它用来控制心跳和超时,默认情况下最小的会话超时时间为两倍的 tickTime。
- dataLogDir: 事务日志输出目录。尽量给事务日志的输出配置单独的磁盘或是挂载点,这将极大的提升ZK性能。
- clientPort:客户端连接server的端口,即对外服务端口,一般默认为2181。
- 总参数的详解:Zoo.cfg 参数介绍
5. 启动Zookeeper
进入Zookeeper目录下的bin目录,开始启动zookeeper并查看Zookeeper的状态。
启动Zookeeper cmd:?./zkServer.sh start
查看Zookeeper状态 cmd:?./zkServer.sh status
如果没有启动成功,可以查看zookeeper根目录下的zookeeper.out文件。
6. 使用Zookeeper客户端连接服务器端
在zookeeper根目录下的bin目录下,有zkCli.sh文件,这就是Zookeeper的客户端。可以使用zookeeper的客户端来连接服务器端。
cmd:?./zkCli.sh -server IP:PORT
IP:PORT不填写为默认连接本机Zookeeper。
使用quit可以退出和服务期端的连接。
搭建Zookeeper集群
现在我们在一台机器上搭建好了zookeeper,这个过程也是非常简单的。
而Zookeeper的集群需要2*n+1个实例,所以要搭建一个最简单的zookeeper的集群,需要三个实例。那么现在有两种方案:
- 在单台机器上安装三个zookeeper实例。但是有几个条件需要保证:
- dataDir需要设置成不同的文件夹;
- clientPort需要不同;
- dataLogDir需要设置成不同的文件夹(如果有的话);
- server.x及后面的端口号需要不同(后面会详细介绍)。
- 在三台机器上安装三个独立的zookeeper。
还记得之前的dataDir吗?进入你设置的dataDir目录,新建一个名为myid的文件。文件如其名,myid里含有一行文本,其含义也就是这个机器在Zookeeper集群里的id。这个id不能大于255。如果是在一台机器上创建了多个zookeeper实例,和在多台机器上安装多个zookeeper是一样,去到它们对应的dataDir文件夹,分别给每一个建一个myid文件就可以了,但是要保证里面的id值不一样。
然后分别编辑每一个zookeeper的zoo.cfg文件,在他们的最后加上server.x=ip:port1:port2这样格式的配置。这样说有点不清楚,举个例子配上图片就清楚啦。
现在假设安装的三个zookeeper在对应的myid里设置的id值为1,2,3,对于其中任意一个zookeeper的实例,它们的x值就是它们在myid里设置的id值,并且ip也要和实例对应起来,儿后面的port1,port2不仅要不一样,同时也不能和之前的clientPort一样,之前我配置的时候吧port1和clientPort配置成一样的了导致一直失败。一定要注意!!!
可以看一下我的配置,记得在每一个实例的zoo.cfg中都要配置哦!
看最下面红框里面的部分,马赛克的部分就是对应的ip,千万记得三个端口不能有重复!
重启zookeeper
在每一台机器上重启zookeeper服务(./zkserver restart),你可能会发现重启的时候zookeeper会报连接不通的错误,别着急,把所有的启动完~
启动完之后去看每一台的状态,这时候就会有下图中的状态:
这个是zookeeper集群中的leader。
这是集群中的follower。
Zookeeper的四字命令
zookeeper四字命令的官网介绍:四字命令
下面是每一个操作的返回样例:
以上是关于Zookeeper学习 安装和四字命令的主要内容,如果未能解决你的问题,请参考以下文章