1.將安裝包解壓出來(可以通過wget或者本地下載上傳到服務器都可以)
tar -zxvf apche-zookeeper-3.5.8-bin.tar.gz 解壓到當前目錄或者
tar -zxvf apche-zookeeper-3.5.8-bin.tar.gz -C xxxx指定目錄
2.解壓完。我們需要修改配置文件。
進入conf目錄下,將原先zoo_simple.cfg的名字改爲zoo.cfg即可
mv zoo_simple.cfg zoo.cfg
3.修改配置文件內容
搭建虛擬集羣需要注意。端口號不能重複,然後dataDir LogDir目錄不能重複,然後需要複製三分文件,可以命名其他名字,但是我們啓動的時候必須帶上以哪個配置文件參數啓動。然後還需要注意的是。我們必須要在定義的dataDir下的/data目錄裏面創建myid文件(echo 1 > myid)。這個1值對應下面的server.1 代表server id的。啓動三個實例的話。這三個id必須不一樣
4.配置文件都修改完畢後。我們接下來就直接帶配置文件啓動zk
進入zk的bin目錄使用 ./zkServer.sh start-foreground ../myconf1/zoo.cfg
-foreground參數是顯示報錯信息,比如啓動失敗時我們可以看到具體原因導致的。如果我們data目錄下沒有設置myid文件,就會報如下錯誤:
所以一定要設置好myid文件。
5.如何知道我啓動的哪個端口是leader機子呢。
我們使用./zkServer.sh status ../myconf/zoo.cfg 注意。因爲我們是一臺機子啓動的多個實例。所以必須帶下配置文件才知道哪一個實例對應的進程
6.啓動實例這裏注意一點。我們可以通過ps -aux | grep zookeeper 或者ps -ef | grep zookeeper查看zookeeper是否啓動。但是
因爲zk啓動參數過多不好看。我們可以直接通過查看端口號的命令來看zk是否啓動起來了
netstat -ntlp
可以看到2182 2183 的zk實例已經在監聽了。還有心跳端口2889 3889等也在監聽中
7.遠程連接可能因爲防火牆導致連接失敗。這時就需要開放端口號。我們可以先查看我們的端口號是否有開放
firewall-cmd --list-ports
增加某個TCP端口的開放
firewall-cmd --zone=public --add-port=2181/tcp --permanent 其中permanent表示永久開放,服務器重啓後依然有效
執行完之後,我們還需要重啓防火牆
firewall-cmd --reload
8.虛擬集羣查看不同端口的服務狀態,需要指定配置文件的路徑
./zkServer.sh status ../conf/zoo.cfg
9.虛擬集羣連接不同端口的zk
./zkCli.sh -server ip:port