一.下载zookeeper
1.在http://apache.fayea.com/zookeeper/下载zookeeper-3.4.10,下载后用ftp放进路径 /usr/local/zookeeper-3.4.10
2.解压
# tar –zvxf zookeeper-3.4.10.tar.gz
二. 创建目录
1.在/usr/local/ zookeeper-3.4.10下创建一下目录 data
mkdir data
1.1 在/usr/local/zookeeper-3.4.10/data下创建myid文件
编辑myid文件,在对应的ip的机器上输入对应的编号,如在zookeeper上,myid文件内容为1,如果只在单点上进行安装配置,那么只有一个server.1
2.在/usr/local/ zookeeper-3.4.10下创建一下目录 logs
mkdir logs
三. 创建编辑zoo.cfg
- 将zookeeper/conf目录下的zoo_sample.cfg拷贝备份一份,命名为zoo.cfg
- 修改zoo.cfg配置文件,添加上面创建的数据文件和日志文件,修改后整个文件如下
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/usr/local/zookeeper-3.4.10/data
dataLogDir=/usr/local/zookeeper-3.4.10/logs
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
#添加服务节点,单节点服务,如下:
server.1=
provider-01:2888:3888
名称 | 说明 |
---|---|
2888端口号 | zookeeper服务之间通信的端口号 |
3888端口号 | zookeeper与其他应用程序通信的端口 |
provider-01 | hosts中已经映射了IP的主机名 |
initLimit | 初始化连接时最长能接受多少个心跳时间间隔数,当已经超过10个心跳的时间(也就是tickTime)长度之后zookeeper服务器还没有接收到客户端返回的信息,那么表示这个客户端连接失败。总时间长度是10*2000=20秒。 |
syncLimit | 标识leader与follower之间发送消息,请求和答应时间长度,最长不能超过多少个tickTime的时间长度,总时间长度是5*2000=10秒 |
server.A=B:C:D | A是个数字,表示这个是第几号服务器;B表示这个服务器的ip地址或者/etc/hosts文件中映射了的ip的主机名,C表示的是这个服务器与集群中的leader服务器交换信息的端口;D表示的是万一集群中的leader服务器挂了,需要一个端口来重新进行选举,选出新的leader,而这个端口就是用来执行选举时候服务器互相通信的端口,如果是伪集群的配置方式,由于B都是一样的,所以不同的zookeeper实例通信端口号不能一样,所以要给它们分配不同的端口号 |
四.添加环境变量
编辑系统环境变量配置文件,etc/profile
vi /etc/profile
增加以下配置变量
#zookeeper cvn
export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.10
export PATH=$PATH:$ZOOKEEPER_HOME/bin
五.防火墙开启端口
1.开启防火墙
chkconfig iptables on
2.即时生效
service iptables start
3.增加用到的ip端口
vi /etc/sysconfig/iptables
编辑在里面增加如下ip端口:
-A INPUT -p tcp -m tcp --dport 2181 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 2888 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3888 -j ACCEPT
4.重启防火墙
service iptables restart
5.查看防火墙端口状态
service iptables status
六.开启测试zookeeper
1.退出root用户,进入/usr/local/zookeeper-3.4.10/bin ,启动服务:
zkServer.sh start
2.如果出现zkServer.sh: command not found的问题,因为你的环境变量没有配好,在/home/(对应用户)下找到.bash_profile文件,修改path路径就行,开启服务则用下面的方法
./zkServer.sh start
3.如果/usr/local/zookeeper-3.4.10/data和logs没有赋予权限,则可能报错Permission denied,则增加权限
chmod a+rwx /usr/local/zookeeper-3.4.10/data
chmod a+rwx /usr/local/zookeeper-3.4.10/logs
4.如果出现
Using config: /home/zookeeper-3.4.5/bin/../conf/zoo.cfg
grep: /home/zookeeper-3.4.5/bin/../conf/zoo.cfg: No such file or directory
mkdir: cannot create directory `’: No such file or directory
Starting zookeeper … STARTED
则可能是zoo-samples.cfg 没有改成zoo.cfg
5.如果出现其他问下,可以在vi /usr/local/zookeeper-3.4.10/bin/ zookeeper.out查看错误日志进行定位分析
6.查看启动状态
zkServer.sh status
7.运行如下,以下提示则说明启动成功
[root@localhost bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@localhost bin]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: standalone
8.停止zookeeper服务
zkServer.sh stop
9.判断有没开启成功可以看下系统有运行的进程
ps -aux | grep ‘zookeeper’