【直接从word拷贝出来的,格式有点混乱,以后我调整】
zooinspector 客户端查看工具
Zookeeper [v3.4.9]
Name
service
master
other
bdata-dev1
QuorumPeerMain
notsure
节点角色相同
bdata-dev2
QuorumPeerMain
notsure
bdata-dev3
QuorumPeerMain
notsure
下载&解压
下载地址:http://apache.fayea.com/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
然后上传至服务器bdata-dev1的/opt/src/目录里。
|
`#解压`
`tar zvxf /opt/src/zookeeper-3.4.9.tar.gz ``-C` `/opt/`
`mv` `/opt/zookeeper-3.4.9/ /opt/zookeeper`
|
## 1.2. **配置zk服务**
### 1.2.1. **配置服务**
|
`cp` `/opt/zookeeper/conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg`
`vi /opt/zookeeper/conf/zoo.cfg`
|
参数的含义:
1.tickTime:CS通信心跳时间
Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。tickTime=2000
2.initLimit:LF初始通信时限
集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。initLimit=5
3.syncLimit:LF同步通信时限
集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)。syncLimit=2
4.dataDir:数据文件目录
5.clientPort:客户端连接端口
客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。clientPort=2181
6.服务器名称与地址:集群信息(服务器编号,服务器地址,LF通信端口,选举端口)
这个配置项的书写格式比较特殊,规则如下:
server.N=YYY:A:B
例如:
server.1=zenith01:2888:3888
server.2=zenith02:2888:3888
2888为内部通讯端口,3888外部选举端口
配置如下:
|
`#将dataDir=/tmp/zookeeper改为`
`dataDir=/opt/zookeeper/data`
`#在最后一行新增集群内容:`
`server.1=bdata-dev1:2888:3888`
`server.2=bdata-dev2:2888:3888`
`server.3=bdata-dev3:2888:3888`
|
1.2.2. 配置日志
|
`vi /opt/zookeeper/conf/log4j.properties`
|
将其中的两个logdir改成如下:
zookeeper.log.dir=/opt/zookeeper/logs
zookeeper.tracelog.dir=/opt/zookeeper/logs
vi /opt/zookeeper/bin/zkEnv.sh
在第一行添加zoo的日志目录如下:
创建自己的myid文件即:自己的编号 上述server.N中的N
前提:
mkdir /opt/zookeeper/data
mkdir /opt/zookeeper/logs
echo 1 > /opt/zookeeper/data/myid
1.3. 同步其他服务器并启动zk服务:
#! /bin/sh
echo "begin scp zookeeper"
namePrefix='bdata-dev'
for i in {2..3};do
echo "begin $namePrefix$i"
scp -r /opt/zookeeper root@$namePrefix$i:/opt
ssh root@$namePrefix$i "echo $i > /opt/zookeeper/data/myid"
echo "end scp zookeeper to $namePrefix$i"
sleep 5
done
echo "begin start zk server"
for i in {1..3};do
echo "begin $namePrefix$i"
ssh root@$namePrefix$i "/opt/zookeeper/bin/zkServer.sh start"
echo "end $namePrefix$i"
done
echo "end start zk server"
sleep 10
echo "begin check zk server"
for i in {1..3};do
echo "begin $namePrefix$i"
ssh root@$namePrefix$i "/opt/zookeeper/bin/zkServer.sh status"
echo "end $namePrefix$i"
done
echo "end check zk server"
最终结果为说明ok了。