-
Notifications
You must be signed in to change notification settings - Fork 848
/
Zookeeper(二).md
148 lines (147 loc) · 5.49 KB
/
Zookeeper(二).md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
Zookeeper单机和分布式安装
---
## 单机模式
### 1、安装前准备
  1)虚拟机安装好JDK
  2)将Zookeeper安装包拷贝到Linux系统下
  3)将Zookpeer解压到指定目录
```
[atguigu@hadoop102 software]$ tar -zxvf zookeeper-3.5.7.tar.gz -C /opt/module/
```
### 2、配置修改
  1)将/opt/module/zookeeper-3.5.7/conf这个路径下的zoo_sample.cfg修改为zoo.cfg
```
[atguigu@hadoop102 conf]$ mv zoo_sample.cfg zoo.cfg
```
  2)打开zoo.cfg文件,修改dataDir路径
```
[atguigu@hadoop102 zookeeper-3.5.7]$ vim zoo.cfg
```
  修改如下内容:
```
dataDir=/opt/module/zookeeper-3.5.7/zkData
```
  3)在/opt/module/zookeeper-3.5.7/这个目录上创建zkData文件夹
```
[atguigu@hadoop102 zookeeper-3.5.7]$ mkdir zkData
```
### 3、启动Zookeeper
  1)启动Zookeeper
```
[atguigu@hadoop102 zookeeper-3.5.7]$ bin/zkServer.sh start
```
  2)查看进程是否启动
```
[atguigu@hadoop102 zookeeper-3.5.7]$ jps
4020 Jps
4001 QuorumPeerMain
```
3)查看状态
```
[atguigu@hadoop102 zookeeper-3.5.7]$ bin/zkServer.sh status
```
  4)启动客户端
```
[atguigu@hadoop102 zookeeper-3.5.7]$ bin/zkCli.sh
```
  5)退出客户端
```
[zk: localhost:2181(CONNECTED) 0] quit
```
  6)停止Zookeeper
```
[atguigu@hadoop102 zookeeper-3.5.7]$ bin/zkServer.sh stop
```
### 4、配置参数解读
Zookeeper中的配置文件zoo.cfg中参数含义解读如下:
1)tickTime =2000:通信心跳数,Zookeeper服务器与客户端心跳时间,单位毫秒
  Zookeeper使用的基本时间,服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳,时间单位为毫秒。
  它用于心跳机制,并且设置最小的session超时时间为两倍心跳时间。(session的最小超时时间是2xtickTime)
2)initLimit =10:LF初始通信时限
  集群中的Follower跟随者服务器与Leader领导者服务器之间初始连接时能容忍的最多心跳数(tickTime的数量),用它来限定集群中的Zookeeper服务器连接到Leader的时限。
3)syncLimit =5:LF同步通信时限
  集群中Leader与Follower之间的最大响应时间单位,假如响应超过syncLimit * tickTime,Leader认为Follwer死掉,从服务器列表中删除Follwer。
4)dataDir:数据文件目录+数据持久化路径
  主要用于保存Zookeeper中的数据。
5)clientPort =2181:客户端连接端口
  监听客户端连接的端口。
分布式安装
---
**1、集群规划**
  在hadoop102、hadoop103和hadoop104三个节点上部署Zookeeper。
**2、解压安装**
  1)解压Zookeeper安装包到/opt/module/目录下
```
[atguigu@hadoop102 software]$ tar -zxvf zookeeper-3.5.7.tar.gz -C /opt/module/
```
  2)同步/opt/module/zookeeper-3.5.7目录内容到hadoop103、hadoop104
```
[atguigu@hadoop102 module]$ xsync zookeeper-3.5.7/
```
**3、配置服务器编号**
  1)在/opt/module/zookeeper-3.5.7/这个目录下创建zkData
```
[atguigu@hadoop102 zookeeper-3.5.7]$ mkdir -p zkData
```
  2)在/opt/module/zookeeper-3.5.7/zkData目录下创建一个myid的文件
```
[atguigu@hadoop102 zkData]$ touch myid
```
  **添加myid文件,注意一定要在linux里面创建,在notepad++里面很可能乱码**
  3)编辑myid文件
```
[atguigu@hadoop102 zkData]$ vim myid
```
  在文件中添加与server对应的编号:
```
2
```
  4)拷贝配置好的zookeeper到其他机器上
```
[atguigu@hadoop102 zkData]$ xsync myid
```
  **并分别在hadoop103、hadoop104上修改myid文件中内容为3、4**
**4、配置zoo.cfg文件**
  1)重命名/opt/module/zookeeper-3.5.7/conf这个目录下的zoo_sample.cfg为zoo.cfg
```
[atguigu@hadoop102 conf]$ mv zoo_sample.cfg zoo.cfg
```
  2)打开zoo.cfg文件
```
[atguigu@hadoop102 conf]$ vim zoo.cfg
```
  修改数据存储路径配置
```
dataDir=/opt/module/zookeeper-3.5.7/zkData
```
  增加如下配置
```
#######################cluster##########################
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888
server.4=hadoop104:2888:3888
```
  3)同步zoo.cfg配置文件
```
[atguigu@hadoop102 conf]$ xsync zoo.cfg
```
  4)配置参数解读
```
server.A=B:C:D。
```
  A是一个数字,表示这个是第几号服务器;
  集群模式下配置一个文件myid,这个文件在dataDir目录下,这个文件里面有一个数据就是A的值,**Zookeeper启动时读取此文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server。**
  B是这个服务器的地址;
  C是这个服务器Follower与集群中的Leader服务器交换信息的端口;
  D是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
**5、集群操作**
  1)分别启动Zookeeper
```
[atguigu@hadoop102 zookeeper-3.5.7]$ bin/zkServer.sh start
[atguigu@hadoop103 zookeeper-3.5.7]$ bin/zkServer.sh start
[atguigu@hadoop104 zookeeper-3.5.7]$ bin/zkServer.sh start
```
  2)查看状态(三台机器)
```
[atguigu@hadoop102 zookeeper-3.5.7]# bin/zkServer.sh status
```