Zookeeper的安装和使用

首先在Zookeeper官网下载最新版本,下载后解压到用户目录下。

tar -zxvf zookeeper-3.4.8.tar.gz

重命名conf目录下zoo_sample.cfg文件为zoo.cfg并且修改其中的配置项

initLimit=10 #默认值
syncLimit=5 #默认值
dataDir=/Users/umgsai/zookeeper/data
dataLogDir=/Users/umgsai/zookeeper/dataLog
server.1=172.24.51.28:2888:3888

其他配置项使用默认值即可。

172.24.51.28为当前机器的IP地址,也可以使用host文件中配置的域名。

2888端口号是zookeeper服务之间通信的端口。

3888端口是zookeeper与其他应用程序通信的端口。

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

syncLimit:配置Leader与Follower之间发送消息,请求和应答时间长度最长不能超过多少个ticketTime的时间长度,总的时间长度就是2*2000=4秒。

server.A=B:C: D 其中A是一个数字,表示这是第几号服务器。B是这台服务器的IP地址。C表示这台服务器与集群中的Leader服务器交换信息的端口。D表示的是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于B都是一样,所以不同的zookeeper实例通信端口号不能一样,所以要给他们分配不同的端口号。

在dataDir=/Users/umgsai/zookeeper/data 下创建myid文件

编辑myid文件,并在对应的IP的机器上输入对应的编号。如在zookeeper上,myid文件内容就是1.如果只在单点上进行安装配置,那么只有一个server.1

添加环境变量

vi /home/umgsai/.bash_profile

添加ZOOKEEPER_HOME配置,添加path=%ZOOKEEPER_HOME%/bin

# zookeeper env
export ZOOKEEPER_HOME=/home/umgsai/zookeeper-3.4.8
export PATH=$ZOOKEEPER_HOME/bin:$PATH

使配置文件生效

source .bash_profile

在防火墙中打开要用到的端口2181 2888 3888

sudo chkconfig iptables on
service iptables start

编辑 /etc/sysconfig/iptables

vi /etc/sysconfig/iptables

增加以下内容:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 2181 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2888 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3888 -j ACCEPT

重启防火墙

service iptables restart

检查防火墙状态

service iptables status

启动Zookeeper

进入bin目录下执行

./zkServer.sh start

可以使用jps命令查看进程。

QuorumPeerMain是Zookeeper进程。

查看状态

./zkServer.sh status

查看zookeeper服务输出信息,服务信息输出文件在.../bin/zookeeper.out

tail -500f zookeeper.out

配置zookeeper开始使用umgsai用户启动

编辑/etc/rc.local文件。加入以下内容

su - umgsai -c 'home/umgsai/zookeeper-2.4.8/bin/zkServer.sh start'

参考 http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/

上一篇:ThinkPhp框架:有条件的数据库查询、tp框架的其他知识


下一篇:写自己的一个pdo数据库操作框架