Linux上安装zookeeper的详细过程

首先确保Linux已经安装好jdk。

1、zookeeper下载,选择自己合适的版本。我用的3.4.14

http://mirrors.hust.edu.cn/apache/zookeeper/

2、将下载好的zookeeper上传到Linux服务器

上传位置看个人喜好,一般大型软件或服务程序习惯放在 /opt/目录下。

如果没有xftp或者WinSCP类工具,可以直接输入命令 rz上传。如果执行不了,可以先安装一下。输入命令:yum -y install lrzsz

3、上传完解压到zookeeper目录。

命令:tar -zxvf zookeeper-3.4.14.tar.gz

4、进入解压后的zookeeper目录,并且创建俩文件夹,data和logs。

如命令:mkdir data 是创建data文件夹,我这之前已创建如下。

Linux上安装zookeeper的详细过程_第1张图片

5、cd 进入conf目录,将zoo_sample.cfg复制一份并且命名为zoo.cfg(该文件名必须改成zoo.cfg)。

zoo_sample.cfg  这个文件是官方给的zookeeper样板文件,给他复制一份命名为zoo.cfg,zoo.cfg是官方指定的文件命名规则。

Linux上安装zookeeper的详细过程_第2张图片

6、修改zoo.cfg文件,添加data和logs路径给dataDir和dataLogDir

(1)编辑zoo.cfg。

(2)按字母 i,插入内容。

Linux上安装zookeeper的详细过程_第3张图片

zoo.cfg文件里边参数介绍:

(1)tickTime:Zookeeper中的一个时间单元。Zookeeper中所有时间都是以这个时间单元为基础,进行整数倍配置的。例如,session的最小超时时间是2*tickTime。

(2)initLimit:这个配置项是用来配置 Zookeeper 接受客户端,初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 10 个心跳的时间(也就是 initLimit的值), Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。

注意:这里所说的客户端不是用户连接 Zookeeper服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器。Follower在启动过程中,会从Leader同步所有最新数据,然后确定自己能够对外服务的起始状态。Leader允许Follower在 initLimit 时间内完成这个工作。

通常情况下,我们不用太在意这个参数的设置。如果Zookeeper 集群的数据量确实很大了,Follower在启动的时候,从Leader上同步数据的时间也会相应变长,因此在这种情况下,有必要适当调大这个参数了

(3)syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度。

附加:在运行过程中,Leader负责与Zookeeper 集群中所有机器进行通信,例如通过一些心跳检测机制,来检测机器的存活状态。如果Leader发出心跳包在syncLimit之后,还没有从Follower那里收到响应,那么就认为这个Follower已经不在线了。注意:不要把这个参数设置得过大,否则可能会掩盖一些问题。

(4)dataDir:Zookeeper 保存数据的目录。默认情况下,事务日志也会存储在这里。(自定义对应目录,一般在zookeeper下mkdir data 新建个data目录)

(5)dataLogDir:事务日志输出目录。 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置。(尽量给事务日志的输出配置单独的磁盘或是挂载点,这将极大的提升Zookeeper 性能。)(自定义对应目录,一般在zookeeper下新建logs目录)

(6)clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,即对外服务端口,Zookeeper 会监听这个端口,接受客户端的访问请求。一般设置为2181。如果端口被占用可以更改。

(7)server.1=192.128.67.128:2881:3881:第一个端口用于Follower和Leader之间的数据同步和其它通信,第二个端口用于Leader选举过程中投票通信,server.x这里的x是一个数字,代表第几号服务器,与data目录里myid文件中的id是一致的。

注意:如果搭建zookeeper集群的话,每台服务器上都必须安装zookeeper,并且zookeeper的该位置都需要加上全部服务器的server配置。配置内容如下:

附加:server.num=ip:端口1:端口2:其中 num 是一个数字,表示这个是第几号服务器(自定义);ip 是这个服务器的IP地址或/etc/hosts文件中映射了IP的主机名;端口1 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;端口2 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 ip 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。

①2881 端口号是zookeeper服务之间通信的端口,默认是2888(可自定义)
②3881 是zookeeper 与其他应用程序通信的端口,默认是3888(可自定义) 

搭建zookeeper集群注意事项

7、在zookeeper的data目录下新建myid文件,并在该文件里边输入服务器编号。

该data目录就是上边在conf/zoo.cfg文件里边dataDir对应路径下的目录。 

注意:因为当前服务器ip是192.168.67.128,对应conf目录下zoo.cfg配置的server.1,所以myid文件里边内容输入1,内容与conf目录下zoo.cfg文件的server.x参数的server. 后边x(机器号)的数字一样。myid内容只能是当前服务器ip或主机名下对应的机器号。

8、如果不想每次到conf目录里边启动zkServer.sh,可以在.bash_profile文件中增加zookeeper环境变量配置

温馨提示:在用户家目录:~ .bash_profile ,这里边设置环境变量只对当前用户永久有效。/etc/profile 该文件里边配置环境变量对所有用户永久有效 。下边使用第一种:

cd ~ 返回到当前用户的主目录,vim .bash_profile 编辑.bash_profile文件。输入 i 插入以下红框内容。

ZOOKEEPER_HOME=zookeeper的绝对路径

PATH=$ZOOKEEPER_HOME/bin:$PATH

注意:$号别丢了。 

Linux上安装zookeeper的详细过程_第4张图片

 

9、重新执行.bash_profile文件使配置生效: source .bash_profile 

10、关闭防火墙

11、直接可以输入命令启动zk、查看状态、停止zk

Linux上安装zookeeper的详细过程_第5张图片

启动之后如果能看到Mode:standalone(单机模式启动)就表示启动成功了。如果有哪环节出错,可以查看zookeeper.out 看打印的日志。如下:查看前100行。-f 是实时更新日志。

注意:当前终端在哪个目录执行完zkServer.sh start命令, zookeeper.out就会写在哪个目录。

Linux上安装zookeeper的详细过程_第6张图片

 

 

 

你可能感兴趣的:(Linux学习笔记)