zookeeper偽分布式叢集環境搭建

來源:互聯網
上載者:User
step1、下載

下載地址:http://zookeeper.apache.org/releases.html

將下載的壓縮包放到使用者家目錄下(其他目錄也可以)

step2、解壓

$tar –zxvf zookeeper-3.4.6.tar.gz

重新命名

$mv zookeeper-3.4.6 zookeeper

step3、配置

進入zookeeper/conf/目錄下,將改目錄下的zoo_sample.cfg設定檔拷貝4份,依次為zoo.cfg  zoo1.cfg  zoo2.cfg  zoo3.cf

使用vim編輯zoo1.cfg  zoo2.cfg zoo3.cfg這三個設定檔

$ vim zoo1.cfg
修改內容如下

配置說明 tickTime:這個時間是作為 Zookeeper 伺服器之間或用戶端與伺服器之間維持心跳的時間間隔,也就是每個 tickTime 時間就會發送一個心跳。 initLimit:這個配置項是用來配置 Zookeeper 接受用戶端(這裡所說的用戶端不是使用者串連 Zookeeper 伺服器的用戶端,而是 Zookeeper 伺服器叢集中串連到 Leader 的 Follower 伺服器)初始化串連時最長能忍受多少個心跳時間間隔數。當已經超過 10個心跳的時間(也就是 tickTime)長度後 Zookeeper 伺服器還沒有收到用戶端的返回資訊,那麼表明這個用戶端串連失敗。總的時間長度就是 10*2000=20 秒 syncLimit:這個配置項標識 Leader 與 Follower 之間發送訊息,請求和應答時間長度,最長不能超過多少個 tickTime 的時間長度,總的時間長度就是 5*2000=10秒 dataDir:顧名思義就是 Zookeeper 儲存資料的目錄,預設情況下,Zookeeper 將寫資料的記錄檔也儲存在這個目錄裡。 clientPort:這個連接埠就是用戶端串連 Zookeeper 伺服器的連接埠,Zookeeper 會監聽這個連接埠,接受用戶端的訪問請求。 server.A=B:C:D:其中 A 是一個數字,表示這個是第幾號伺服器;B 是這個伺服器的 ip 地址;C 表示的是這個伺服器與叢集中的 Leader 伺服器交換資訊的連接埠;D 表示的是萬一叢集中的 Leader 伺服器掛了,需要一個連接埠來重新進行選舉,選出一個新的 Leader,而這個連接埠就是用來執行選舉時伺服器相互連信的連接埠。如果是偽叢集的配置方式,由於 B 都是一樣,所以不同的 Zookeeper 執行個體通訊連接埠號不能一樣,所以要給它們分配不同的連接埠號碼。
使用vim修改zoo2.cfg的dataDir=/home/jianjian/zookeeper/server2/data,clientPort=2182,修改zoo3.cfg的dataDir=/home/jianjian/zookeeper/server3/data,clientPort=2183。dataDir目錄開始不存在,需要手動建立,並在各data檔案下建立名為myid的檔案,檔案內容對應伺服器編號

[jianjian@localhost zookeeper]$ echo 1 > server1/data/myid[jianjian@localhost zookeeper]$ echo 2 > server2/data/myid[jianjian@localhost zookeeper]$ echo 3 > server3/data/myid

step4、啟動

進入目錄/home/hadoop/zookeeper/bin目錄,執行命令:

$zkServer.sh start zoo1.cfg
啟動zoo1.cfg配置的服務,同理依次啟動zoo2.cfg和zoo3.cfg所配置的服務

step5、查看狀態

依次查看啟動的三台服務,可見第二台服務為leader,第一台和三台為follower(實驗好多次都是第二台是leader,只有一次是第三台是leader,醉~)

附:

當zkServer.sh start和zkServer.sh status命令不接設定檔參數是,預設使用conf/zoo.cfg作為參數

這是只啟動一台服務的情況,可見Mode為standalone,只有一台服務的叢集...

step6、連通測試

測試server2(leader,其他服務同理)是否連通

[root@localhost bin]# ./zkCli.sh -server 127.0.0.1:2182Connecting to 127.0.0.1:21822015-08-12 20:55:23,658 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.6-1569965, built on 02/20/2014 09:09 GMT2015-08-12 20:55:23,661 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=localhost.localdomain2015-08-12 20:55:23,661 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.7.0_792015-08-12 20:55:23,662 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Oracle Corporation2015-08-12 20:55:23,662 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/usr/java/jdk1.7.0_79/jre2015-08-12 20:55:23,662 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/home/jianjian/zookeeper/bin/../build/classes:/home/jianjian/zookeeper/bin/../build/lib/*.jar:/home/jianjian/zookeeper/bin/../lib/slf4j-log4j12-1.6.1.jar:/home/jianjian/zookeeper/bin/../lib/slf4j-api-1.6.1.jar:/home/jianjian/zookeeper/bin/../lib/netty-3.7.0.Final.jar:/home/jianjian/zookeeper/bin/../lib/log4j-1.2.16.jar:/home/jianjian/zookeeper/bin/../lib/jline-0.9.94.jar:/home/jianjian/zookeeper/bin/../zookeeper-3.4.6.jar:/home/jianjian/zookeeper/bin/../src/java/lib/*.jar:/home/jianjian/zookeeper/bin/../conf:2015-08-12 20:55:23,663 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/i386:/lib:/usr/lib2015-08-12 20:55:23,663 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/tmp2015-08-12 20:55:23,663 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>2015-08-12 20:55:23,663 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Linux2015-08-12 20:55:23,663 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=i3862015-08-12 20:55:23,663 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=2.6.18-194.el52015-08-12 20:55:23,663 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=root2015-08-12 20:55:23,663 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/root2015-08-12 20:55:23,664 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/home/jianjian/zookeeper/bin2015-08-12 20:55:23,665 [myid:] - INFO  [main:ZooKeeper@438] - Initiating client connection, connectString=127.0.0.1:2182 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@154ea792015-08-12 20:55:23,699 [myid:] - INFO  [main-SendThread(127.0.0.1:2182):ClientCnxn$SendThread@975] - Opening socket connection to server 127.0.0.1/127.0.0.1:2182. Will not attempt to authenticate using SASL (unknown error)2015-08-12 20:55:23,703 [myid:] - INFO  [main-SendThread(127.0.0.1:2182):ClientCnxn$SendThread@852] - Socket connection established to 127.0.0.1/127.0.0.1:2182, initiating session2015-08-12 20:55:23,718 [myid:] - INFO  [main-SendThread(127.0.0.1:2182):ClientCnxn$SendThread@1235] - Session establishment complete on server 127.0.0.1/127.0.0.1:2182, sessionid = 0x24f21e1b05b0000, negotiated timeout = 30000Welcome to ZooKeeper!WATCHER::WatchedEvent state:SyncConnected type:None path:nullJLine support is enabled[zk: 127.0.0.1:2182(CONNECTED) 0] 
出現以上資訊表示連通成功。

附:

看到有些人配置偽叢集是將壓縮包壓縮後拷貝幾個副本,每個副本代表一個zookeeper服務,個人覺得沒必要,只有拷貝設定檔並修改就行,一個設定檔代表一個zookeeper服務。

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.