您好,登錄后才能下訂單哦!
接下來我們將啟動一個單實例的zookeeper然后在此基礎上搭建一個最簡單的zookeeper集群,為了貫徹最簡單的理念,我們的集群將共只有三個節點,并且他們都在同一臺機器上。
好了,讓我們開始干吧!
tar -xvzf zookeeper-3.4.12.tar.gz
解壓后到conf目錄下,復制一份配置文件:cp zoo_sample.cfg zoo.cfg
雖然是可選的,最好還是把data移出/tmp目錄,我在zookeeper的安裝目錄下創建了一個data目錄,到zookeeper目錄下執行:mkdir data
然后修改zoo.cfg文件中的dataDir,我修改后的文件內容為:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/ym/zookeeper/zookeeper-3.4.12/data
clientPort=2181
到bin目錄下執行:./zkServer.sh start
出現以下內容表示成功了:
[ym@localhost bin]$ ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/ym/zookeeper/zookeeper-3.4.12/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
首先,從上面的單實例配置文件zoo.cfg復制一份:cp zoo.cfg zoo1.cfg
修改其中內容為:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/ym/zookeeper/zookeeper-3.4.12/data1
clientPort=2182
server.1=127.0.0.1:2222:2223
server.2=127.0.0.1:3333:3334
server.3=127.0.0.1:4444:4445
創建zoo2.cfg和zoo3.cfg:
cp zoo1.cfg zoo2.cfg
cp zoo1.cfg zoo3.cfg
修改zoo2.cfg和zoo3.cfg中clientPort分別為2183和2184、dataDir分別指向data2和data3,修改后內容分別為:
data2.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/ym/zookeeper/zookeeper-3.4.12/data2
clientPort=2183
server.1=127.0.0.1:2222:2223
server.2=127.0.0.1:3333:3334
server.3=127.0.0.1:4444:4445
data3.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/ym/zookeeper/zookeeper-3.4.12/data3
clientPort=2183
server.1=127.0.0.1:2222:2223
server.2=127.0.0.1:3333:3334
server.3=127.0.0.1:4444:4445
每一個server.n項指定了編號為n的ZooKeeper服務器使用的地址和端口號。每個server.n項通過冒號分隔為三部分,第一部分為服務器n的IP地址或主機名(hostname),第二部分和第三部分為TCP端口號,分別用于仲裁通信和群首選舉。因為我們在同一個機器上運行三個服務器進程,所以我們需要在每一項中使用不同的端口號。通常,我們在不同的服務器上運行每個服務器進程,因此每個服務器項的配置可以使用相同的端口號。
到zookeeper安裝目錄下執行:
mkdir data1
mkdir data2
mkdir data3
當啟動一個服務器時,我們需要知道啟動的是哪個服務器。一個服
務器通過讀取data目錄下一個名為myid的文件來獲取服務器ID信息。可
以通過以下命令來創建這些文件:
echo 1 > data1/myid
echo 2 > data2/myid
echo 3 > data3/myid
打開三個終端,到zookeeper目錄下分別執行:
bin/zkServer.sh start ../conf/zoo1.cfg
bin/zkServer.sh start ../conf/zoo2.cfg
bin/zkServer.sh start ../conf/zoo3.cfg
bin/zkCli.sh -server 127.0.0.1:2182,127.0.0.1:2183,127.0.0.1:2184
會出現如下信息:
[myid:] - INFO [...] - Session establishment
complete on server localhost/127.0.0.1:2182 ...
表面客戶端連接到了端口為2182的zookeeper服務器上。
使用ctrl+c停止并重新使用上述命令進行連接,如此往復幾次會發現連接的端口在2182,2183,2184來回改變。
參考:《ZooKeeper-分布式過程協同技術》
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。