自己就一臺(tái)機(jī)器(ubuntu),懶得弄虛擬機(jī)了,因此搭了一個(gè)單機(jī)偽分布式的集群,即同一臺(tái)機(jī)器三個(gè)zookeeper服務(wù)。
0.準(zhǔn)備工作
要安裝JDK(略):java運(yùn)行的環(huán)境
-
為了搭建偽分布式(三個(gè)服務(wù)),因此,建立相應(yīng)的目錄(3個(gè))
/home/zookeeper/server0
/home/zookeeper/server1
/home/zookeeper/server2
1.zookeeper下載
ubuntu下使用 wget url 下載資源。找一個(gè)穩(wěn)定的版本即可。
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.相關(guān)配置修改
zookeeper-3.4.9/conf目錄下 創(chuàng)建配置文件
cp zookeeper-sample.cfg zoo.cfg
在zookeeper-3.4.9目錄下新建目錄data,logs
內(nèi)容修改成(開(kāi)啟主要參數(shù)即可,配置端口,配置集群):
# The number of milliseconds of each tick (發(fā)送心跳的間隔時(shí)間)
tickTime=2000
# The number of ticks that the initial ( 配置允許 followers 連接并同步到 leader 的最大時(shí)間,初始為tickTime 屬性值的 10 倍)
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement(請(qǐng)求和應(yīng)答時(shí)間長(zhǎng)度,最長(zhǎng)不能超過(guò)多少個(gè) tickTime 的時(shí)間長(zhǎng)度)
syncLimit=5
# 保存數(shù)據(jù),保存日志的路徑
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 服務(wù)器的端口)
clientPort=2180
# the maximum number of client connections.(最大客戶連接數(shù))
#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(自動(dòng)清理snapshot和事務(wù)日志的功能)
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
#集群信息(服務(wù)器編號(hào),服務(wù)器地址,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
將修改完后的目錄拷貝到相應(yīng)的目錄下
/home/zookeeper/server0
/home/zookeeper/server1
/home/zookeeper/server2
并修改相應(yīng)的zoo.cfg文件(端口,目錄等)
4.啟動(dòng)
在zookeeper-3.4.9/bin目錄下,有zkServer.sh
./zkServer.sh start 即可啟動(dòng)該服務(wù)。
依次啟動(dòng)三個(gè)服務(wù)。啟動(dòng)會(huì)打印日志如下
JMX enabled by default
Using config: /home/zookeeper/server0/zookeeper-3.4.9/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
jps查看啟動(dòng)的服務(wù)
./zkServer.sh status 查看相應(yīng)服務(wù)狀態(tài)
zookeeper.out 查看日志
zkServer.sh stop關(guān)閉服務(wù)
5.遇到的坑
1 找不到j(luò)ava -----在zkServer.sh下添加javahome,path 信息
添加的示例如下
export JAVA_HOME=/usr/lib/jdk
export PATH=$JAVA_HOME/bin:$PATH
2 QuorumPeer錯(cuò)誤---配置myid信息
在data目錄下建立 myid文件,并輸入相應(yīng)的編號(hào)