zookeeper学习之三:ubuntu下单机伪集群搭建

自己就一台机器(ubuntu),懒得弄虚拟机了,因此搭了一个单机伪分布式的集群,即同一台机器三个zookeeper服务。

0.准备工作

  • 要安装JDK(略):java运行的环境

  • 为了搭建伪分布式(三个服务),因此,建立相应的目录(3个)

    /home/zookeeper/server0
    /home/zookeeper/server1
    /home/zookeeper/server2

1.zookeeper下载

ubuntu下使用 wget url 下载资源。找一个稳定的版本即可。
wget http://apache.osuosl.org/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
下载到download目录下。

2.tar 解压

利用tar命令解压。
tar -xf zookeeper-3.4.9.tar.gz
解压到该目录下,多出文件夹zookeeper-3.4.9。

3.相关配置修改

zookeeper-3.4.9/conf目录下 创建配置文件
cp zookeeper-sample.cfg zoo.cfg

在zookeeper-3.4.9目录下新建目录data,logs

内容修改成(开启主要参数即可,配置端口,配置集群):

# The number of milliseconds of each tick (发送心跳的间隔时间)
tickTime=2000
# The number of ticks that the initial ( 配置允许 followers 连接并同步到 leader 的最大时间,初始为tickTime 属性值的 10 倍)
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement(请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度)
syncLimit=5
# 保存数据,保存日志的路径
dataDir=/home/zookeeper/server0/zookeeper-3.4.9/data
dataLofDir=/home/zookeeper/server0/zookeeper-3.4.9/logs
# the port at which the clients will connect(客户端连接 Zookeeper 服务器的端口)
clientPort=2180
# the maximum number of client connections.(最大客户连接数)
#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(自动清理snapshot和事务日志的功能)
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
#集群信息(服务器编号,服务器地址,LF通信端口,选举端口)
server.0=127.0.0.1:8880:7770
server.1=127.0.0.1:8881:7771
server.2=127.0.0.1:8882:7773

将修改完后的目录拷贝到相应的目录下
/home/zookeeper/server0
/home/zookeeper/server1
/home/zookeeper/server2
并修改相应的zoo.cfg文件(端口,目录等)

4.启动

在zookeeper-3.4.9/bin目录下,有zkServer.sh
./zkServer.sh start 即可启动该服务。
依次启动三个服务。启动会打印日志如下

JMX enabled by default  
Using config: /home/zookeeper/server0/zookeeper-3.4.9/bin/../conf/zoo.cfg  
Starting zookeeper ... STARTED  

jps查看启动的服务
./zkServer.sh status 查看相应服务状态
zookeeper.out 查看日志
zkServer.sh stop关闭服务

5.遇到的坑

1 找不到java -----在zkServer.sh下添加javahome,path 信息
添加的示例如下

export JAVA_HOME=/usr/lib/jdk  
export PATH=$JAVA_HOME/bin:$PATH  

2 QuorumPeer错误---配置myid信息
在data目录下建立 myid文件,并输入相应的编号

推荐阅读更多精彩内容