ZooKeeperは、分散アプリケーションの構築に使用される高性能の共有データサービスを提供するApacheSoftwareFoundationによるソフトウェアプロジェクトです。これは、堅牢な同期技術を使用して共有データを維持するためにクラスターによって使用されます。構成情報、命名、分散同期、およびグループサービスのプロビジョニングを管理するためのシンプルなインターフェイスを提供します。
このチュートリアルでは、Ubuntu20.04サーバーにApacheZooKeeperをインストールする方法を示します。
- Ubuntu20.04を実行しているサーバー。
- ルートパスワードがサーバーに設定されます。
Javaのインストール
Apache ZooKeeperはJavaで記述されているため、システムにJavaをインストールする必要があります。次のコマンドでインストールできます:
apt-get install default-jdk -y
Javaをインストールした後、次のコマンドを使用して、インストールされているJavaのバージョンを確認します。
java --version
次の出力が得られるはずです:
openjdk 11.0.8 2020-07-14 OpenJDK Runtime Environment (build 11.0.8+10-post-Ubuntu-0ubuntu120.04) OpenJDK 64-Bit Server VM (build 11.0.8+10-post-Ubuntu-0ubuntu120.04, mixed mode, sharing)
Zookeeperをインストールする
Apache zookeeperをインストールする前に、zookeeperの新しいユーザーを作成する必要があります。次のコマンドで作成できます:
useradd zookeeper -m
次に、このユーザーのパスワードを設定し、次のコマンドを使用してsudoグループに追加します。
usermod --shell /bin/bash zookeeper
passwd zookeeper
usermod -aG sudo zookeeper
次に、飼育係のデータディレクトリを作成し、このディレクトリの所有権を変更します。
mkdir /zookeeper
chown -R zookeeper:zookeeper /zookeeper
次に、動物園の飼育係の最新バージョンを/optディレクトリにダウンロードする必要があります。次のコマンドでダウンロードできます:
cd /opt
wget https://mirrors.estointernet.in/apache/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz
ダウンロードが完了したら、次のコマンドを使用してダウンロードしたファイルを抽出します。
tar -xvzf apache-zookeeper-3.6.2-bin.tar.gz
次に、次のコマンドを使用して、抽出したディレクトリの名前をzookeeperに変更します。
mv apache-zookeeper-3.6.2-bin zookeeper
次に、次のコマンドを使用してzookeeperディレクトリの所有権を変更します。
chown -R zookeeper:zookeeper /opt/zookeeper
次に、ZooKeeperをスタンドアロンモードでセットアップするためのZooKeeper構成ファイルを作成する必要があります。次のコマンドで作成できます:
nano /opt/zookeeper/conf/zoo.cfg
次の行を追加します:
tickTime=2500 dataDir=/zookeeper clientPort=2181 maxClientCnxns=80
終了したら、ファイルを保存して閉じます。次に、次のコマンドを使用してZooKeeperサービスを開始します。
cd /opt/zookeeper
bin/zkServer.sh start
次の出力が得られるはずです:
ZooKeeper JMX enabled by default Using config: /opt/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ... STARTED
デフォルトでは、ZooKeeperはポート2181でリッスンしています。次のコマンドで確認できます:
ss -ntpl | grep 2181
次の出力が得られるはずです:
LISTEN 0 50 *:2181 *:* users:(("java",pid=12749,fd=53))
これで、次のコマンドを使用してZooKeeperローカルサーバーに接続できます。
bin/zkCli.sh -server 127.0.0.1:2181
接続すると、次の出力が得られます。
WATCHER:: WatchedEvent state:SyncConnected type:None path:null [zk: 127.0.0.1:2181(CONNECTED) 0]
次に、次のコマンドを使用してセッションを終了します。
quit
次に、次のコマンドを使用してZooKeeperサービスを停止します。
bin/zkServer.sh stop
次の出力が表示されます。
ZooKeeper JMX enabled by default Using config: /opt/zookeeper/bin/../conf/zoo.cfg Stopping zookeeper ... STOPPED
ZooKeeperのSystemdサービスファイルを作成する
次に、ZooKeeperサービスを管理するためのsystemdサービスファイルを作成する必要があります。次のコマンドで作成できます:
nano /etc/systemd/system/zookeeper.service
次の行を追加します:
[Unit] Description=Zookeeper Daemon Documentation=http://zookeeper.apache.org Requires=network.target After=network.target [Service] Type=forking WorkingDirectory=/opt/zookeeper User=zookeeper Group=zookeeper ExecStart=/opt/zookeeper/bin/zkServer.sh start /opt/zookeeper/conf/zoo.cfg ExecStop=/opt/zookeeper/bin/zkServer.sh stop /opt/zookeeper/conf/zoo.cfg ExecReload=/opt/zookeeper/bin/zkServer.sh restart /opt/zookeeper/conf/zoo.cfg TimeoutSec=30 Restart=on-failure [Install] WantedBy=default.target
ファイルを保存して閉じてから、systemdデーモンをリロードして構成の変更を適用します。
systemctl daemon-reload
次に、次のコマンドを使用して、ZooKeeperとデータディレクトリの所有権を変更します。
chown -R zookeeper:zookeeper /opt/zookeeper
chown -R zookeeper:zookeeper /zookeeper
次に、ZooKeeperサービスを開始し、次のコマンドを使用してシステムの再起動時に開始できるようにします。
systemctl start zookeeper
systemctl enable zookeeper
次のコマンドを使用して、ZooKeeperサービスのステータスを確認できるようになりました。
systemctl status zookeeper
次の出力が得られるはずです:
? zookeeper.service - Zookeeper Daemon Loaded: loaded (/etc/systemd/system/zookeeper.service; disabled; vendor preset: enabled) Active: active (running) since Sun 2020-09-27 06:43:28 UTC; 8s ago Docs: http://zookeeper.apache.org Process: 13915 ExecStart=/opt/zookeeper/bin/zkServer.sh start /opt/zookeeper/conf/zoo.cfg (code=exited, status=0/SUCCESS) Main PID: 13946 (java) Tasks: 37 (limit: 4691) Memory: 50.6M CGroup: /system.slice/zookeeper.service ??13946 java -Dzookeeper.log.dir=/opt/zookeeper/bin/../logs -Dzookeeper.log.file=zookeeper-zookeeper-server-ubuntu2004.log -Dzook> Sep 27 06:43:27 ubuntu2004 systemd[1]: Starting Zookeeper Daemon... Sep 27 06:43:27 ubuntu2004 zkServer.sh[13915]: /usr/bin/java Sep 27 06:43:27 ubuntu2004 zkServer.sh[13915]: ZooKeeper JMX enabled by default Sep 27 06:43:27 ubuntu2004 zkServer.sh[13915]: Using config: /opt/zookeeper/conf/zoo.cfg Sep 27 06:43:28 ubuntu2004 zkServer.sh[13915]: Starting zookeeper ... STARTED Sep 27 06:43:28 ubuntu2004 systemd[1]: Started Zookeeper Daemon.
おめでとう!これで、Ubuntu20.04サーバーにZooKeeperが正常にインストールおよび構成されました。これで、ZooKeeperを使用して分散アプリケーションを簡単にビルドおよびデプロイできます。