zookeeper単一マシン擬似クラスタ構成の詳細

3771 ワード

プロジェクトではzookeeperクラスタを実現したいのですが、マシンが不足しているので、1台のマシンに2つのzookeeperを偽クラスタとして配置することを選択しました
ダウンロードzookeeper
ダウンロードアドレススタンプここで、必要なバージョンを選択して、私がダウンロードしたのはzookeeper-3.4.10.tar.gzです
zookeeperのインストール
シングルマシン上にいくつかのzookeeperサーバーを構築する準備をするには、いくつかのディレクトリを構築し、各ディレクトリでzookeeper圧縮パッケージを解凍する必要があります.こちらは2つの1で、zookeeper圧縮ファイルを対応するディレクトリにコピーします.
cp /mnt/download/zookeeper-3.4.10.tar.gz /usr/local/

2、現在のディレクトリに2回解凍し、名前を変更する
tar xzf zookeeper-3.4.10.tar.gz
mv zookeeper-3.4.10 zookeeper1
tar xzf zookeeper-3.4.10.tar.gz
mv zookeeper-3.4.10 zookeeper2

zookeeperの設定
1、zookeeper 1配置
cd /usr/local/zookeeper1

新規ディレクトリdata
mkdir data

新規ディレクトリlog
mkdir log

新規ファイルmyid
cd data
vi myid

内容は1つの数字で、例えば私は今zookeeper 1で、それでは1を書きます
1

新規ファイルzoo.cfg
cd /usr/local/zookeeper1/conf
vi zoo.cfg

# The number of milliseconds of each tick
#tickTime:CS     
#zookeeper                        ,      tickTime           ,tickTime      
tickTime=2000

# The number of ticks that the initial 
# synchronization phase can take
#initLimit:LF      
#    follower   (F) leader   (L)                (tickTime   )
initLimit=10

# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
#syncLimit:LF      
#    follower    leader                     (tickTime   )
syncLimit=5

# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
#dataDir:      
#zookeeper       ,     ,zookeeper                  
dataDir=/usr/local/zookeeper1/data
#dataLogDir:      
#zookeeper         
dataLogDir=/usr/local/zookeeper1/log

# the port at which the clients will connect
#clientPort:       
#     zookeeper       ,zookeeper        ,          
clientPort=2181

# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

最後にファイルの最後に次の内容を追加します.
#        :    (     ,     ,LF    ,    )
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889

この構成項目の書式は比較的特殊で、規則的です.
server.N=YYY:A:B 

ここで、Nはサーバ番号を表し、この数字はdata/myidに対応する数字であり、YYYはサーバのIPアドレスを表し、AはLF通信ポートであり、このサーバがクラスタ内のリーダーと交換する情報を表すポートである.Bは選挙ポートであり、新しいリーダーを選出する際にサーバ間で相互に通信するポートを示す(リーダーが切れると残りのサーバが相互に通信し、新しいリーダーを選択する).一般的に、クラスタ内の各サーバのAポートは同じであり、各サーバのBポートも同じである.しかし、擬似クラスタとして使用される場合、IPアドレスは同じであり、AポートとBポートが異なる場合にのみ、ポートが非擬似クラスタに衝突する例
server.1=233.34.9.145:2008:6008  
server.2=233.34.9.146:2008:6008  
server.3=233.34.9.147:2008:6008  

擬似クラスタの例
server.1=127.0.0.1:2007:6007  
server.2=127.0.0.1:2006:6006  
server.3=127.0.0.1:2005:6005  

2、zookeeper 2の構成手順はzookeeper 1と同じですが、dataのmyidファイルの内容は2に変更し、zoo.cfgのclientPort、dataDir、dataLogDirもそれに応じて変更します.
dataDir=/usr/local/zookeeper2/data
dataLogDir=/usr/local/zookeeper2/log
clientPort=2182

zookeeperの起動
それぞれ2つのサーバのbinディレクトリに入り、サービスを開始します.
./zkServer.sh start

起動に成功すると、2つのサーバのステータスを表示できます.
./zkServer.sh status

リファレンス1:zookeeperエントリー(1)Zookeeperダミークラスタ/ダミークラスタ導入をシングルマシンで実現リファレンス2:zookeeperエントリー(2)zookeeperの構成項目を解読リファレンス3:zookeeperシングルマシンダミークラスタ構成