1丰歌、下載
官網(wǎng)地址:http://zookeeper.apache.org/
2、解壓并配置
1)把zoo_sample.cfg復制一份丈咐,并且重命名為zoo.cfg,并且修改zoo.conf里相關配置
最重要的兩個配置是:
dataDir:放置日志文件和快照文件的路徑燎猛,不建議為tmp目錄,因為Linux系統(tǒng)會對tmp目錄自動清理
clientPort:外部應用連接Zookeeper的端口溉瓶,默認是2181
把dataDir的配置更改為:/root/data/zookeeper,配置的是絕對路徑
2)設置環(huán)境變量
vim /etc/profile
export ZOOKEEPER_HOME=/usr/local/apache-zookeeper-3.6.0-bin
export ZOOBINDIR=$ZOOKEEPER_HOME/bin
export PATH=$ZOOBINDIR:$PATH
修改保存后急鳄,使用source /etc/profile 更新環(huán)境變量。
3堰酿、啟動Zookeeper
使用zkServer.sh start 啟動Zookeeper服務疾宏。
檢查Zookeeper日志是否有出錯信息。
檢查Zookeeper的數(shù)據(jù)文件触创。
檢查Zookeeper是否在2181端口上監(jiān)聽坎藐。
- 執(zhí)行以下語句,查看日志文件中是否有異常信息:
【grep -E 選項可以用來擴展選項為正則表達式哼绑。 如果使用了grep 命令的選項-E岩馍,則應該使用 | 來分割多個pattern,以此實現(xiàn)OR操作;
-i 不區(qū)分大小寫
】
grep -E -i "((exception)|(error))" *
無輸出抖韩,說明日志中無報錯信息蛀恩。
2)查看Zookeeper的交易日志文件
在/root/data/zookeeper目錄下,通過tree命令查看【可通過yum -y install tree 命令安裝tree】:
此時只是快照文件帽蝶。
3)查看Zookeeper是否在指定的端口上監(jiān)聽
netstat -an | ag 2181 或者 netstat -lnp|grep 2181 或者 lsof -i tcp:2181
以上證明Zookeeper服務已經(jīng)成功啟動了赦肋。
4块攒、zkCli簡單使用
1)啟動zkCli励稳,查看是否與Zookeeper節(jié)點建立了有效連接且Session是否已經(jīng)初始化完成
通過輸入help可以查看支持的常用命令:
通過命令 ls -R / 可以查看Zookeeper自帶的znode:
2)創(chuàng)建znode
再通過ls -R / 命令查看znode結構:
5、實現(xiàn)一個鎖
分布式鎖要求:如果鎖的持有者宕機了囱井,鎖可以被釋放驹尼。Zookeeper的ephemeral節(jié)點恰好具備這樣的特性:
步驟:
1)打開兩個zkCli客戶端
2)在第一個客戶端中,創(chuàng)建一個臨時znode:
create -e /lock
表示第一個客戶端加鎖成功庞呕。
3)在第二個客戶端中也嘗試進行加鎖新翎,加鎖的操作其實就是創(chuàng)建znode
加鎖失敗程帕,因為lock這個節(jié)點已經(jīng)被別人創(chuàng)建了
4)在第二個客戶端,監(jiān)控znode,也就是在等待鎖被釋放
stat -w /lock
5)退出第一個客戶端:quit
在第二個客戶端里面地啰,會收到一個WatchedEvent事件:
6)在第二個客戶端收到WatchedEvent事件之后愁拭,再嘗試加鎖,此時加鎖成功