ZooKeeper的安装部署

1:下载安装包

和hadoop的下载一样,分为官网版本和CDH版本

官网下载链接为:http://archive.apache.org/dist/zookeeper/

2:解压

[root@bigdata-pro01 softwares]# tar -zxf zookeeper-3.4.5.tar.gz -C /opt/modules/

Tips:df命令可以查看磁盘的使用情况

[root@bigdata-pro01 softwares]# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16311208   5808004   9674636  38% /
tmpfs                   960828       232    960596   1% /dev/shm
/dev/sda1               198337     28897    159200  16% /boot

3:给zookeeper瘦身 删掉zookeeper下的docs目录

[root@bigdata-pro01 zookeeper-3.4.5]# rm -rf docs

4:配置zoo.cfg

#这个时间是作为Zookeeper服务器之间或者客户端与服务器之间维持心跳的时间间隔
#也就是每个tickTime时间就会发送一个心跳
tickTime=2000

#这个配置项是用来配置Zookeeper接受客户端(这里说的客户端不是用户连接Zookeeper服务器的客户端,
#而是Zookeeper服务器集群中连接到Leader的Follower服务器)初始化连接时最长能忍受多少个心跳时间间隔#数,当已经超过10个心跳时间(也就是tickTime长度后,zookeeper服务器还没有收到客户端的返回信息,那#么表明这个客户端连接失败,总的时间长度就是5*2000
#=10秒)
initLimit=10

#这个配置想表示Leader与Follower之间发送消息,
#请求和应答时间长度,最长不能超过多少个tickTime的时间长度。
#总的时间长度是2*2000=4秒
syncLimit=5

#默认情况下zookeeper将写数据的日志文件也保存在这个目录里,我们将这个目录修改
#后期的用于选举的myid文件也需要保存在这个目录下。否则会启动不了zookeeper
#当然,写这个目录之前需要保证这个目录是已经存在的,如果不存在需要创建
dataDir=/opt/modules/zookeeper-3.4.5/zkData

#这个端口就是客户端连接Zookeeper服务器的端口
#zookeeper会监听这个端口,接受客户端的发出的请求
clientPort=2181

#3888负责集群中选举leader的端口
#2888负责通信
#这里的server.x的编号,要与后期的myid文件中的编号一致,用于选举
server.1=bigdata-pro01.rachel.com:2888:3888
server.2=bigdata-senior01.rachel.com:2888:3888
server.3=bigdata-senior02.rachel.com:2888:3888

5:将zookeeper分发到各个节点

这里-r的意思是循环将目录下的所有文件发送另外一个主机的指定目录下
[root@bigdata-pro01 modules]# scp -r zookeeper-3.4.5/ [email protected]:/opt/modules/
[root@bigdata-pro01 modules]# scp -r zookeeper-3.4.5/ [email protected]:/opt/modules/

6:各个节点在目录/opt/modules/zookeeper-3.4.5/zkData创建myid文件

[root@bigdata-pro01 zkData]# touch myid

然后在不同的主机上按照zoo.cfg文件中服务的配置写上不同的编号

如果这里myid的位置放错了,启动zookeeper客户端的时候报错:

[main-SendThread(localhost:2181):ClientCnxn$SendThread@1089] - 
Session 0x0 for server null, unexpect

7:各个节点启动zookeeper服务

[root@bigdata-pro01 zookeeper-3.4.5]# bin/zkServer.sh start

8:验证zookeeper是否正常启动

这里可以查看zookeeper的状态,这是正常启动后的状态显示

[rachel@bigdata-senior02 zookeeper-3.4.5]$ bin/zkServer.sh status
JMX enabled by default
Using config: /opt/modules/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: follower

也可以通过jps命令查看,这其中的QuorumPeerMain就是zookeeper的进程

[rachel@bigdata-senior01 zookeeper-3.4.5]$ jps
28979 NodeManager
29522 DataNode
30378 QuorumPeerMain
30469 Jps

9:启动过程中出现的另外一个问题和原理:

Zookeeper在部署的时候,集群中的机器应该是2N+1台,这个N代表的意思就是集群提供服务过程中允许宕掉的机器数。

当我们只有三台机器的时候,允许宕掉还能提供服务的宕机数是一台。

当我们只开启一台机器的zookeeper,zookeeper任务是不能提供服务的。

所以客户端连接会报错,当我们启动两台或者两台以上的机器后客户端就能正常连接

10:zookeeper的基本使用

zookeeper可以保存一些元数据信息,数据是以树的数据结构存储的。以下是创建、查看、获取zookeeper一些信息的操作方式

[zk: localhost:2181(CONNECTED) 0] create /rachel lvelve
Created /rachel
[zk: localhost:2181(CONNECTED) 1] ls /
[rachel, zookeeper]
[zk: localhost:2181(CONNECTED) 2] get /rachel
lvelve
cZxid = 0x100000002
ctime = Mon Sep 10 14:10:48 EDT 2018
mZxid = 0x100000002
mtime = Mon Sep 10 14:10:48 EDT 2018
pZxid = 0x100000002
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 0

猜你喜欢

转载自blog.csdn.net/sinat_37513998/article/details/82597197