CentOSインストールZooKeeperクラスタ


ZooKeeper(スタンドアロン版)のダウンロード、インストール、構成、起動、テストなどについては、別の記事:CentOSインストールZooKeeperを参照してください.
クラスタを構築するには、その上でいくつかの構成を追加する必要があります.本稿では、クラスタに関連するこれらの構成について説明します.その他の手順は省略します.
ノード数を3と仮定し、ipはそれぞれ:10.20.1.52,10.20.1.53,10.20.1.54一、構成
1、先に1台の機械を取り付けて配置する(10.20.1.52):
修正zoo.cfg
shell> cd /usr/local/zookeeper-3.5.3-beta/conf
shell> cp zoo_sample.cfg zoo.cfg
shell> vim zoo.cfg

末尾に次のクラスタ関連構成を追加
server.1=10.20.1.52:2888:3888
server.2=10.20.1.53:2888:3888
server.3=10.20.1.54:2888:3888

myidファイルを追加
shell> mkdir /usr/local/zookeeper-3.5.3-beta/data
shell> echo 1 > /usr/local/zookeeper-3.5.3-beta/data/myid    #10.20.1.52

ここでecho 1の数字「1」はzoo.cfgserver.1と一致する
2、他のノードにコピー(10.20.1.53、10.20.1.54)
最初のマシンが構成されたら、他のノードに直接コピーして少し修正すればいいです(もちろん、必要であれば、同じ手順でもう一度インストール構成を繰り返して、myidファイルの内容を修正すればいいです)
shell> scp -r /usr/local/zookeeper-3.5.3-beta [email protected]:/usr/local/
shell> scp -r /usr/local/zookeeper-3.5.3-beta [email protected]:/usr/local/

他の2台のマシンのmyidファイルをそれぞれ修正します
shell> echo 2 > /usr/local/zookeeper-3.5.3-beta/data/myid    #10.20.1.53
shell> echo 3 > /usr/local/zookeeper-3.5.3-beta/data/myid    #10.20.1.55

3、ファイアウォールを閉じる
CentOS 6:
shell> service iptables stop
shell> chkconfig iptables off

CentOS 7:
shell> systemctl stop firewalld
shell> systemctl disable firewalld

その他のファイアウォール設定(簡単にファイアウォールを閉じたくなく、指定したポートへのアクセスのみをオンにします)は、[CentOSDKファイアウォール設定](CentOSDKファイアウォール設定)()を参照してください.
二、起動
ZooKeeperノードをそれぞれ3つ起動
shell> cd /usr/local/zookeeper-3.5.3-beta/
shell> bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.5.3-beta/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

三、テスト
1、起動状態の表示
スタンドアロン版のMode: standaloneとは異なり、クラスタのModeはleader(プライマリノード)またはfollower(スレーブノード)と表示され、デフォルトのクラスタの最初のノードはleaderです.
# 10.20.1.52
shell> bin/zkServer.sh status                                      
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.5.3-beta/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: leader
# 10.20.1.53
shell> bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.5.3-beta/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower
# 10.20.1.54
shell> bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.5.3-beta/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower

2、テストノード(またはデータ)の同期
いずれかのマシン(10.20.1.52)でノードを作成し、他のマシン(10.20.1.53)でノードが同期しているかどうかを確認します.
shell> cd /usr/local/zookeeper-3.5.3-beta/
#   zkCli      ZooKeeper,  2181  
shell> bin/zkCli.sh
#     ,      [zookeeper]
[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper]
#       
[zk: localhost:2181(CONNECTED) 1] create /test
Created /test
#     ,    test  
[zk: localhost:2181(CONNECTED) 2] ls /
[test, zookeeper]
#   connect      (       zkCli.sh -server 10.20.1.53:2181  )
[zk: localhost:2181(CONNECTED) 3] connect 10.20.1.53
#   test      
[zk: 10.20.1.53(CONNECTED) 4] ls /
[test, zookeeper]