1. 程式人生 > >ZooKeeper-3.4.6叢集安裝配置

ZooKeeper-3.4.6叢集安裝配置

ZooKeeper是一個分散式開源框架,提供了協調分散式應用的基本服務,它向外部應用暴露一組通用服務——分散式同步(Distributed Synchronization)、命名服務(Naming Service)、叢集維護(Group Maintenance)等,簡化分散式應用協調及其管理的難度,提供高效能的分散式服務。ZooKeeper本身可以以Standalone模式安裝執行,不過它的長處在於通過分散式ZooKeeper叢集(一個Leader,多個Follower),基於一定的策略來保證ZooKeeper叢集的穩定性和可用性,從而實現分散式應用的可靠性。

有關ZooKeeper的介紹,網上很多,也可以參考文章後面,我整理的一些相關連結。

下面,我們簡單說明一下ZooKeeper的配置。

cd /usr/local/zookeeper

2.解壓到指定目錄 
準備三臺Linux伺服器,每臺伺服器都放zookeeper壓縮檔案。解壓zookeeper-3.4.6.tar.gz到一個目錄下,比如解壓到根目錄下/zookeeper 資料夾 
解壓命令: 
tar zxvf zookeeper-3.4.6.tar.gz

3.cp zoo_sample.cfg zoo.cfg

vim 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=/home/zookeeper/data
dataLogDir=/home/zookeeper/log
# the port at which the clients will connect
clientPort=2181
server.1=192.168.10.249:2888:3888
server.2=192.168.10.244:2888:3888
4.
設定myid

在我們配置的dataDir指定的目錄下面,建立一個myid檔案,裡面內容為一個數字,用來標識當前主機,conf/zoo.cfg檔案中配置的server.X中X為什麼數字,則myid檔案中就輸入這個數字,例如:

5.啟動ZooKeeper叢集

在ZooKeeper叢集的每個結點上,執行啟動ZooKeeper服務的指令碼,如下所示:


[[email protected] bin]# ./zkServer.sh start
JMX enabled by default
Using config: /usr/local/zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

[[email protected] bin]# ./zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: follower

測試成功。


6.

[[email protected] bin]# ./zkCli.sh -server 192.169.10.249:2181
Connecting to 192.169.10.249:2181
2017-07-20 00:18:40,235 [myid:] - INFO  [main:[email protected]] - Client environment:zookeeper.version=3.4.6-1569965, built on 02/20/2014 09:09 GMT
2017-07-20 00:18:40,240 [myid:] - INFO  [main:[email protected]] - Client environment:host.name=node8
2017-07-20 00:18:40,240 [myid:] - INFO  [main:[email protected]] - Client environment:java.version=1.8.0_102
2017-07-20 00:18:40,244 [myid:] - INFO  [main:[email protected]] - Client environment:java.vendor=Oracle Corporation
2017-07-20 00:18:40,244 [myid:] - INFO  [main:[email protected]] - Client environment:java.home=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64/jre
2017-07-20 00:18:40,244 [myid:] - INFO  [main:[email protected]] - Client environment:java.class.path=/usr/local/zookeeper/zookeeper-3.4.6/bin/../build/classes:/usr/local/zookeeper/zookeeper-3.4.6/bin/../build/lib/*.jar:/usr/local/zookeeper/zookeeper-3.4.6/bin/../lib/slf4j-log4j12-1.6.1.jar:/usr/local/zookeeper/zookeeper-3.4.6/bin/../lib/slf4j-api-1.6.1.jar:/usr/local/zookeeper/zookeeper-3.4.6/bin/../lib/netty-3.7.0.Final.jar:/usr/local/zookeeper/zookeeper-3.4.6/bin/../lib/log4j-1.2.16.jar:/usr/local/zookeeper/zookeeper-3.4.6/bin/../lib/jline-0.9.94.jar:/usr/local/zookeeper/zookeeper-3.4.6/bin/../zookeeper-3.4.6.jar:/usr/local/zookeeper/zookeeper-3.4.6/bin/../src/java/lib/*.jar:/usr/local/zookeeper/zookeeper-3.4.6/bin/../conf:
2017-07-20 00:18:40,244 [myid:] - INFO  [main:[email protected]] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2017-07-20 00:18:40,244 [myid:] - INFO  [main:[email protected]] - Client environment:java.io.tmpdir=/tmp
2017-07-20 00:18:40,244 [myid:] - INFO  [main:[email protected]] - Client environment:java.compiler=<NA>
2017-07-20 00:18:40,244 [myid:] - INFO  [main:[email protected]] - Client environment:os.name=Linux
2017-07-20 00:18:40,244 [myid:] - INFO  [main:[email protected]] - Client environment:os.arch=amd64
2017-07-20 00:18:40,245 [myid:] - INFO  [main:[email protected]] - Client environment:os.version=3.10.0-514.el7.x86_64
2017-07-20 00:18:40,245 [myid:] - INFO  [main:[email protected]] - Client environment:user.name=root
2017-07-20 00:18:40,245 [myid:] - INFO  [main:[email protected]] - Client environment:user.home=/root
2017-07-20 00:18:40,245 [myid:] - INFO  [main:[email protected]] - Client environment:user.dir=/usr/local/zookeeper/zookeeper-3.4.6/bin
2017-07-20 00:18:40,247 [myid:] - INFO  [main:[email protected]] - Initiating client connection, connectString=192.169.10.249:2181 sessionTimeout=30000 [email protected]
Welcome to ZooKeeper!
2017-07-20 00:18:40,289 [myid:] - INFO  [main-SendThread(192.169.10.249:2181):[email protected]] - Opening socket connection to server 192.169.10.249/192.169.10.249:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
[zk: 192.169.10.249:2181(CONNECTING) 0] 2017-07-20 00:19:10,410 [myid:] - INFO  [main-SendThread(192.169.10.249:2181):[email protected]] - Client session timed out, have not heard from server in 30127ms for sessionid 0x0, closing socket connection and attempting reconnect
2017-07-20 00:19:11,515 [myid:] - INFO  [main-SendThread(192.169.10.249:2181):[email protected]] - Opening socket connection to server 192.169.10.249/192.169.10.249:2181. Will not attempt to authenticate using SASL (unknown error)


啟動Zookeeper 
啟動Zookeeper命令: 
./zkServer.sh start
檢視叢集的狀態: 
./zkServer.sh status