經過rz命令,將zookeeper-3.4.10.tar.gz安裝包上傳到/opt/soft/文件夾下。java
[root@bigdata111 soft]# rz [root@bigdata111 soft]# ls hadoop-2.8.4.tar.gz jdk-8u144-linux-x64.tar.gz zookeeper-3.4.10.tar.gz
經過tar命令解壓zookeeper到/opt/module/目錄下。linux
[root@bigdata111 soft]# tar -zvxf zookeeper-3.4.10.tar.gz -C /opt/module/ [root@bigdata111 soft]# cd /opt/module/ [root@bigdata111 module]# ls hadoop-2.8.4 jdk1.8.0_144 zookeeper-3.4.10
在zookeeper的解壓目錄下新建zkData文件夾,用於數據文件目錄+數據持久化路徑。shell
[root@bigdata111 module]# cd zookeeper-3.4.10/ [root@bigdata111 zookeeper-3.4.10]# mkdir zkData [root@bigdata111 zookeeper-3.4.10]# ls bin build.xml conf contrib dist-maven docs ivysettings.xml ivy.xml lib LICENSE.txt NOTICE.txt README_packaging.txt README.txt recipes src zkData zookeeper-3.4.10.jar zookeeper-3.4.10.jar.asc zookeeper-3.4.10.jar.md5 zookeeper-3.4.10.jar.sha1
切換至zookeeper的conf目錄下,修改zoo_sample.cfg爲默認識別的zoo.cfg配置文件。數據庫
[root@bigdata111 module]# cd zookeeper-3.4.10/conf [root@bigdata111 conf]# ll 總用量 12 -rw-rw-r--. 1 1001 1001 535 3月 23 2017 configuration.xsl -rw-rw-r--. 1 1001 1001 2161 3月 23 2017 log4j.properties -rw-rw-r--. 1 1001 1001 922 3月 23 2017 zoo_sample.cfg [root@bigdata111 conf]# mv zoo_sample.cfg zoo.cfg [root@bigdata111 conf]# ll 總用量 12 -rw-rw-r--. 1 1001 1001 535 3月 23 2017 configuration.xsl -rw-rw-r--. 1 1001 1001 2161 3月 23 2017 log4j.properties -rw-rw-r--. 1 1001 1001 922 3月 23 2017 zoo.cfg
配置zookeeper的zoo.cfg文件,保存並退出。apache
[root@bigdata111 conf]# vi zoo.cfg
將其中的dataDir值修改以下:api
dataDir=/opt//module/zookeeper-3.4.10/zkData
執行vi命令服務器
[root@bigdata111 conf]# vi /etc/profile
在/etc/profile文件內容末尾添加以下內容,配置完畢,保存退出。session
export ZOOKEEPER_HOME=/opt/module/zookeeper-3.4.10 export PATH=$PATH:$ZOOKEEPER_HOME/bin
刷新profile配置文件socket
[root@bigdata111 zookeeper-3.4.10]# source /etc/profile
啓動zk服務端,查看進程是否啓動(QuorumPeerMain進程爲zookeeper的server),查看zkServer的狀態。maven
[root@bigdata111 zookeeper-3.4.10]# zkServer.sh start ZooKeeper JMX enabled by default Using config: /opt/module/zookeeper-3.4.10/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [root@bigdata111 zookeeper-3.4.10]# jps 2817 NodeManager 2565 DataNode 3014 QuorumPeerMain 2426 NameNode 3034 Jps [root@bigdata111 zookeeper-3.4.10]# zkServer.sh status ZooKeeper JMX enabled by default Using config: /opt/module/zookeeper-3.4.10/bin/../conf/zoo.cfg Mode: standalone
[root@bigdata111 zookeeper-3.4.10]# zkCli.sh Connecting to localhost:2181 2019-09-01 00:00:07,411 [myid:] - INFO [main:Environment@100] - Client environment:zookeeper.version=3.4.10-39d3a4f269333c922ed3db283be479f9deacaa0f, built on 03/23/2017 10:13 GMT 2019-09-01 00:00:07,413 [myid:] - INFO [main:Environment@100] - Client environment:host.name=bigdata111 2019-09-01 00:00:07,413 [myid:] - INFO [main:Environment@100] - Client environment:java.version=1.8.0_144 2019-09-01 00:00:07,423 [myid:] - INFO [main:Environment@100] - Client environment:java.vendor=Oracle Corporation 2019-09-01 00:00:07,423 [myid:] - INFO [main:Environment@100] - Client environment:java.home=/opt/module/jdk1.8.0_144/jre 2019-09-01 00:00:07,424 [myid:] - INFO [main:Environment@100] - Client environment:java.class.path=/opt/module/zookeeper-3.4.10/bin/../build/classes:/opt/module/zookeeper-3.4.10/bin/../build/lib/*.jar:/opt/module/zookeeper-3.4.10/bin/../lib/slf4j-log4j12-1.6.1.jar:/opt/module/zookeeper-3.4.10/bin/../lib/slf4j-api-1.6.1.jar:/opt/module/zookeeper-3.4.10/bin/../lib/netty-3.10.5.Final.jar:/opt/module/zookeeper-3.4.10/bin/../lib/log4j-1.2.16.jar:/opt/module/zookeeper-3.4.10/bin/../lib/jline-0.9.94.jar:/opt/module/zookeeper-3.4.10/bin/../zookeeper-3.4.10.jar:/opt/module/zookeeper-3.4.10/bin/../src/java/lib/*.jar:/opt/module/zookeeper-3.4.10/bin/../conf: 2019-09-01 00:00:07,424 [myid:] - INFO [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib 2019-09-01 00:00:07,424 [myid:] - INFO [main:Environment@100] - Client environment:java.io.tmpdir=/tmp 2019-09-01 00:00:07,424 [myid:] - INFO [main:Environment@100] - Client environment:java.compiler=<NA> 2019-09-01 00:00:07,424 [myid:] - INFO [main:Environment@100] - Client environment:os.name=Linux 2019-09-01 00:00:07,424 [myid:] - INFO [main:Environment@100] - Client environment:os.arch=amd64 2019-09-01 00:00:07,424 [myid:] - INFO [main:Environment@100] - Client environment:os.version=3.10.0-327.el7.x86_64 2019-09-01 00:00:07,424 [myid:] - INFO [main:Environment@100] - Client environment:user.name=root 2019-09-01 00:00:07,424 [myid:] - INFO [main:Environment@100] - Client environment:user.home=/root 2019-09-01 00:00:07,424 [myid:] - INFO [main:Environment@100] - Client environment:user.dir=/opt/module/zookeeper-3.4.10 2019-09-01 00:00:07,425 [myid:] - INFO [main:ZooKeeper@438] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@5c29bfd 2019-09-01 00:00:07,467 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1032] - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) Welcome to ZooKeeper! JLine support is enabled 2019-09-01 00:00:07,559 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@876] - Socket connection established to localhost/127.0.0.1:2181, initiating session 2019-09-01 00:00:07,588 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1299] - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x16ce86366fb0000, negotiated timeout = 30000 WATCHER:: WatchedEvent state:SyncConnected type:None path:null [zk: localhost:2181(CONNECTED) 0]
使用ls 查看 / 根目錄,只用ls不會輸出內容。
[zk: localhost:2181(CONNECTED) 1] ls / [zookeeper]
[zk: localhost:2181(CONNECTED) 0] quit Quitting... 2019-09-01 00:01:10,945 [myid:] - INFO [main:ZooKeeper@684] - Session: 0x16ce86366fb0000 closed 2019-09-01 00:01:10,947 [myid:] - INFO [main-EventThread:ClientCnxn$EventThread@519] - EventThread shut down for session: 0x16ce86366fb0000
[root@bigdata111 zookeeper-3.4.10]# zkServer.sh stop ZooKeeper JMX enabled by default Using config: /opt/module/zookeeper-3.4.10/bin/../conf/zoo.cfg Stopping zookeeper ... STOPPED
tickTime=2000:通訊心跳數,Zookeeper服務器心跳時間,單位毫秒
Zookeeper使用的基本時間,服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每一個tickTime時間就會發送一個心跳,時間單位爲毫秒。
它用於心跳機制,而且設置最小的session超時時間爲兩倍心跳時間。(session的最小超時時間是2*tickTime)
initLimit=10:Leader和Follower初始通訊時限
集羣中的follower跟隨者服務器與leader領導者服務器之間初始鏈接時能容忍的最多心跳數(tickTime的數量),用它來限定集羣中的Zookeeper服務器鏈接到Leader的時限。
投票選舉新leader的初始化時間
Follower在啓動過程當中,會從Leader同步全部最新數據,而後肯定本身可以對外服務的起始狀態。
Leader容許Follower在initLimit時間內完成這個工做。
syncLimit=5:Leader和Follower同步通訊時限
集羣中Leader與Follower之間的最大響應時間單位,假如響應超過syncLimit * tickTime,Leader認爲Follwer死掉,從服務器列表中刪除Follwer。
在運行過程當中,Leader負責與ZK集羣中全部機器進行通訊,例如經過一些心跳檢測機制,來檢測機器的存活狀態。
若是L發出心跳包在syncLimit以後,尚未從F那收到響應,那麼就認爲這個F已經不在線了。
dataDir:數據文件目錄+數據持久化路徑
保存內存數據庫快照信息的位置,若是沒有其餘說明,更新的事務日誌也保存到數據庫。
clientPort=2181:客戶端鏈接端口
監聽客戶端鏈接的端口