ZooKeeper的部署和测试

本文详述了Zookeeper的单机和伪集群部署步骤,包括环境配置、配置文件修改、服务启动与测试。在部署过程中,强调了常见问题及解决方法,如JDK环境、端口冲突和配置文件的正确设定。通过测试客户端连接,确保Zookeeper的正确运行。
摘要由CSDN通过智能技术生成

一 背景

zookeeper是一个开源的分布式应用程序协调服务,是Apache Hadoop 的一个子项目。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。其原理是基于google发表的《The Chubby lock service for loosely-coupled distributed systems》论文。网上关于zookeeper的博客也很多,但很多讲的不细致,如如何测试部署成功。在学习别人的博客进行部署的过程中遇到了一些问题。所以写这篇博客主要是总结zookeeper的部署方法及在这过程中遇到的问题,提供更加详细的部署方案,希望能为其他初学者提供一些参考。

二 所需环境和包

1. JDK 环境:

java JDK包可以到官网下载(这里提供所有版本的JDK下载地址:http://www.oracle.com/technetwork/java/archive-139210.html
JDK安装可参考:
tar.gz方式:http://blog.csdn.net/zhangxh1013/article/details/7320860
rpm方式: http://alan-hjkl.iteye.com/blog/1527179

JDK 环境是必须的,zookeeper是用java开发的,所以需要在JDK环境下运行。所以建议首先安装JDK,本人就是因为以为自己电脑上已经安装JDK,就直接部署zookeeper,在测试时并不成功,结果各种排错。

2. zookeeper 包:

下载地址:http://www.apache.org/dyn/closer.cgi/zookeeper/

三 单机部署

1.创建工作目录

mkdir /usr/lib/zookeeper
2.创建data,logs文件

data :下存放节点ID
logs:用于下存放相关日志文件

mkdir /usr/lib/zookeeper/data
mkdir /usr/lib/zookeeper/logs

3.解压zookeeper到工作目录下

下载zookeeper的安装包之后, 解压到工作目录下(本文解压到/usr/lib/zookeeper).

tar -zxvf zookeeper-3.4.6.tar.gz /usr/lib/zookeeper

4.创建zoo.cfg

进入zookeeper目录下的conf子目录, 复制zoo_sample.cfg 并命名为zoo.cfg。

zookeeper服务器启动默认加载zoo.cfg 文件,当然也可以命名为其他文件,但是在运行是需要指定cfg文件名。如命名为zk1.cfg时,启动zookeeper命令为:./zkServer.sh start zk1.cfg 。如果是zoo.cfg 启动时命令为: ./zkServer.sh start

打开zoo.cfg 并修改相关配置

sudo vi /usr/lib/zookeeper/zookeeper-3.4.6/conf/zoo.cfg

设置配置文件中的相关参数:

tickTime=2000 
initLimit=10   
syncLimit=5  
dataDir=/usr/lib/zookeeper/data   
dataLogDir=/usr/lib/zookeeper/logs    
clientPort=2181   

参数说明:

  • tickTime: zookeeper中使用的基本时间单位, 毫秒值
  • initLimit: Follower在启动过程中,会从Leader同步所有最新数据,然后确定自己能够对外服务的起始状态。Leader允许Follower在initLimit时间内完成这个工作
  • syncLimit:在运行过程中,Leader负责与ZK集群中所有机器进行通信,如果L发出心跳包在syncLimit之后,还没有从F那里收到响应,那么就认为这个F已经不在线了。
  • dataDir: 数据目录. 可以是任意目录.本文制定/usr/lib/zookeeper/data
  • dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置.
  • clientPort: 监听client连接的端口号

更多参数信息参考:http://www.cnblogs.com/ggjucheng/p/3352591.html

在某些博客中还会涉及设置环境变量这一步。
在 /etc/profile 文件中加入如下的内容:

#Set ZooKeeper Enviroment
export ZOOKEEPER_HOME=/usr/lib/zookeeper/zookeeper-3.4.6/
export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf

但我经过尝试后发现,其实并不需要进行环境的设置就可以部署成功。单机部署就到此完成了,接下来就是验证下是否部署成功了。

五 测试

这一步就是检验之前所部署的zookeeper是否能够成功运行。

1.启动服务:

首先进入到zookeeper-3.4.6的bin文件夹下,再启动zkServer.sh

 cd /usr/lib/zookeeper/zookeeper-3.4.6/bin
./zkServer.sh start

 /usr/lib/zookeeper/zookeeper-3.4.6/bin/zkServer.sh start

运行结果:

root@jaylon:/usr/lib/zookeeper/zookeeper-3.4.6/bin# ./zkServer.sh start
JMX enabled by default
Using config: /usr/lib/zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED.
root@jaylon:/usr/lib/zookeeper/zookeeper-3.4.6/bin# 

这里需要注意的是 启动时命令为 ./zkServer.sh start。如果是启动 zkServer.sh start 的话会报错找不到命令错误。这点初学者需要小心。

2.检查运行状态

通过 ./zkServer.sh status来检查服务器运行状态

root@jaylon:/usr/lib/zookeeper/zookeeper-3.4.6/bin# ./zkServer.sh status
JMX enabled by default
Using config: /usr/lib/zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值