Zookeeper
Zookeeperとは
構成
インストール
設定方法
Zookeeperとは
正式にはApache Zookeeper 大規模分散システムでよく使われる、 Hadoopのサブプロジェクト の一つです。 分散アプリケーションを構築する上で必要となる、 設定管理、同期などの機能を提供するサービスです。 自前で同じものを用意しようとしたらすごく大変なので、 すごく助かるミドルウェアです。
構成
今回は、サーバー3台で構築しました。 OSは、CentOS6.7です。 Zookeeperは、3.4.8です。
インストール
Javaで動かすので、JDKをインストールします。 JDK Java SE Development Kit 8 - Downloads
cd /tmp/ # wget --no-check-certificate --no-cookies - --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u45-b14/jdk-8u45-linux-x64.rpm # rpm -Uhv jdk-8u45-linux-x64.rpm
Zookeeper本体 Apache ZooKeeper - Releases ダウンロードして任意の場所に解答するだけでOKです。
設定方法
oss.infoscience.co.jp zoo.cfgを作るように書いてあるのですが、 confの中にzoo_sample.cfgがあるので、コピーしてzoo.cfgを作ります。 conf/zoo.confに以下を追記 ※zoo1, zoo2, zoo3 のところは各サーバーのIPアドレスを書きます。
server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
server.XのX部分の数字を それぞれzoo1~3の/tmp/zookeeoer/myidに書く。
# mkdir -p /tmp/zookeeper # echo '1' > /tmp/zookeeoer/myid # mkdir -p /tmp/zookeeper # echo '2' > /tmp/zookeeoer/myid # mkdir -p /tmp/zookeeper # echo '3' > /tmp/zookeeoer/myid
上記を3台すべてのサーバに用意します。 3台すべてのサーバで
bin/zkServer.sh start
を実行し、
bin/zkServer.sh status
をすると、
1台は
ZooKeeper JMX enabled by default Using config: /opt/zookeeper/bin/../conf/zoo.cfg Mode: leader
2台は
ZooKeeper JMX enabled by default Using config: /opt/zookeeper/bin/../conf/zoo.cfg Mode: follower
が表示されます。
leaderはランダムで自動的に決まります。 そして、leaderをshutdownした場合、 残り2台のうちどちらかのサーバがleaderになります。 起動時
leaderのサーバが壊れたor落ちた