在centos下安装zookeeper

一.下载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
  1. 将zookeeper/conf目录下的zoo_sample.cfg拷贝备份一份,命名为zoo.cfg
  2. 修改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实例通信端口号不能一样,所以要给它们分配不同的端口号
四.添加环境变量
  1. 编辑系统环境变量配置文件,etc/profile

    vi /etc/profile

  2. 增加以下配置变量

#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’

猜你喜欢

转载自blog.csdn.net/u010520146/article/details/82499334