ZooKeeper(Standalone) を Vagrant で構築した
Solr Cloud を構築するには ZooKeeper を構築する必要があります.
そこで Vagrant で ZooKeeper を構築しました.
ZooKeeper のバージョンは 3.4.14 です.
ZooKeeper???
Solr Cloud を構築する上で必須なサービスです. Solr Cloud では collection を 複数の shard に分けることでインデックスを分散し,さらに shard を replication により複製し冗長構成をとることで可用性を向上させます. ZooKeeper は分散アプリケーションの管理をおこない,Solr Cloud において shard の replica が格納された Solr の各 node の状態を管理します.
構成
ZooKeeper の構築はシェルでやることにしました.
D:\vagrant\zk ┣Vagrantfile ┗create_zk.sh
Vagrantfile
- OS は CentOS 7 を使用します.
- プロビジョナでシェルを実行します.
Vagrant.configure("2") do |config| config.vm.box = "centos/7" config.vm.network "private_network", ip: "192.168.33.10" config.proxy.enabled = true config.proxy.http = "http://user_id:password@proxy_address:proxy_port" config.proxy.https = "http://user_id:password@proxy_address:proxy_port" config.proxy.no_proxy = "localhost,127.0.0.1" config.vm.provision :shell, path: "./create_zk.sh" end
create_zk.sh
# Java をインストールする yum install -y java-1.8.0-openjdk # ZooKeeper を構築する cd /var/tmp yum install -y wget wget http://ftp.jaist.ac.jp/pub/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz tar xvf zookeeper-3.4.14.tar.gz cp -ar zookeeper-3.4.14 /opt/ ln -s /opt/zookeeper-3.4.14 /opt/zookeeper # ZooKeeper 用のユーザを作成する groupadd zookeeper useradd -g zookeeper -d /opt/zookeeper -s /sbin/nologin zookeeper chown -R zookeeper.zookeeper /opt/zookeeper/* # ZooKeeperの設定ファイルを用意する cd /opt/zookeeper/conf cp zoo_sample.cfg zoo.cfg # dataDir を tmp から var に変更する mkdir /var/lib/zookeeper chown zookeeper.zookeeper /var/lib/zookeeper cd /opt/zookeeper/conf sed -i -e 's#dataDir=.*$#dataDir=/var/lib/zookeeper#' zoo.cfg # ZooKeeper を起動する cd /opt/zookeeper bin/zkServer.sh start # Port を開放する systemctl enable firewalld.service systemctl start firewalld.service firewall-cmd --zone=public --add-port=2181/tcp --permanent firewall-cmd --reload
ZooKeeper を構築する
> pwd D:\vagrant\zk > vagrant up
これだけで Solr 導入済みの VM が完成しました.
動作確認
サービスの状態を確認します.
> vagrant ssh -c "sudo /opt/zookeeper/bin/zkServer.sh status" ZooKeeper JMX enabled by default Using config: /opt/zookeeper/bin/../conf/zoo.cfg Mode: standalone
nc(netcat) で ZooKeeper に Are you OK? と聞きます.
> vagrant ssh -c "yum install -y nc" > vagrant ssh -c "echo ruok | nc localhost 2181" imok
I'm OK と答えたので問題ないです.