はじめに
ZooKeeper は、グループサービスの監視と管理を簡素化するように設計されたApacheSoftwareFoundationプロジェクトです。構成、情報、命名、分散同期、プロビジョニングを管理する一元化された調整サービスにシンプルなインターフェースを使用しています。
このチュートリアルでは、Ubuntu18.04または20.04にApacheZooKeeperをインストールしてセットアップする方法を学びます。
前提条件
- Ubuntu20.04または18.04を実行しているLinuxシステム
- ターミナルウィンドウ/コマンドラインへのアクセス(検索>ターミナル )
- sudoのユーザーアカウント またはルート 特権
UbuntuへのApacheZooKeeperのインストール
ステップ1:Javaのインストール
ZooKeeperはJavaで記述されており、このプログラミング言語が機能する必要があります。 Javaがすでにインストールされているかどうかを確認するには、次のコマンドを実行します。
java --version
出力に実行中のJavaバージョンが表示されている場合は、次の手順に進むことができます。システムがno such file or directory
と言った場合 、ZooKeeperに移行する前にJavaをインストールする必要があります。
Ubuntuで利用できるさまざまなオープンソースのJavaパッケージがあります。 UbuntuにJavaをインストールする方法で、自分に最適なものとそのインストールガイドを見つけてください。手順はUbuntu18.04とUbuntu20.04に適用されます。
ステップ2:ZooKeeperのユーザーを作成する
1.次のように入力して、ZooKeeperサービス用の別のユーザーを作成します。
useradd zookeeper -m
-m
flagは、ユーザーのホームディレクトリを作成します。この場合、/home/zookeeper
になります 。ユーザーに別の名前を付けるには、 zookeeper
を置き換えます お好みの名前で。
2.次に、 bash
を設定します 次のコマンドを使用して、新しいユーザーのデフォルトシェルとして:
usermod --shell /bin/bash zookeeper
3.ユーザーのパスワードを設定します:
passwd zookeeper
ZooKeeperユーザーの強力なパスワードを入力して再入力します。
4.次に、ユーザーをsudoersグループに追加して、sudo権限を付与します。
usermod -aG sudo zookeeper
5. sudoersグループのアカウントを一覧表示して、ユーザーがスーパーユーザーになったことを確認します。
sudo getent group sudo
出力には、作成したユーザーが表示されます。
ステップ3:ZooKeeperデータディレクトリを作成する
ZooKeeperをインストールする前に、構成データと状態データを(ローカルディスクまたはリモートストレージに)保存できるディレクトリ構造を作成します。
ローカルマシンにデータを保存するには、最初に次のコマンドを実行して新しいZooKeeperディレクトリを作成します。
sudo mkdir -p /data/zookeeper
次に、ZooKeeperユーザーにそのディレクトリの所有権を付与します。
chown -R zookeeper:zookeeper /data/zookeeper
ステップ4:ZooKeeperのダウンロードとインストール
1.選択したWebブラウザーを開き、ApacheZooKeeperダウンロードページに移動します。最新の安定版リリースがページの上部に表示されます。インストールするバージョンをクリックして、Apacheダウンロードミラーを開きます。
2.提案されたミラーサイトのHTTPアドレスをコピーします。
3.コマンドラインに戻り、 /opt
に移動します ディレクトリ:
cd /opt
4. wget
を使用します 。tarをダウンロードするコマンド ファイル。 Apacheの公式Webページからコピーしたリンクを貼り付けます:
sudo wget https://downloads.apache.org/zookeeper/zookeeper-3.6.1/apache-zookeeper-3.6.1-bin.tar.gz
5.次のコマンドを実行してファイルを抽出します:
sudo tar -xvf apache-zookeeper-3.6.1-bin.tar.gz
6.抽出したファイルの名前をzookeeper
に変更します コマンドを使用して:
mv apache-zookeeper-3.6.1-bin zookeeper
7.次のコマンドを実行して、zookeeperユーザーにそのファイルの所有権を付与します。
chown -R zookeeper:zookeeper /opt/zookeeper
ステップ5:スタンドアロンモードでのZooKeeperの構成
次のステップは、ZooKeeperの構成ファイルを作成することです。以下の構成では、ZooKeeperをスタンドアロンモード(開発とテストに使用)でセットアップします。本番環境では、ZooKeeperをレプリケーションモードで実行する必要があります。
ZooKeeperをスタンドアロンモードで構成するには、新しい zoo.cfgを作成します。 zookeeperのファイル ディレクトリ:
sudo nano /opt/zookeeper/conf/zoo.cfg
次の行を追加します:
tickTime = 2000
dataDir = /data/zookeeper
clientPort = 2181
initLimit = 5
syncLimit = 2
保存 および終了 テキストエディタ。
これは、単一ノードクラスターの基本的な構成設定であることに注意してください。ファイルは必要に応じて異なる場合があります。上記の行は次のとおりです。
-
tickTime
:各ティックのミリ秒数。 -
dataDir
:インメモリデータベースのスナップショットと更新のトランザクションログが保存されるディレクトリ。 -
clientPort
:クライアント接続をリッスンしているポート。 -
initLimit
:最初の同期フェーズにかかる可能性のあるティック数。 -
syncLimit
:リクエストの送信から確認応答の取得までに通過できるティック数。
ステップ6:ZooKeeperサービスを開始する
これで、ZooKeeperサービスを開始できます。 / opt内で次のコマンドを実行します ディレクトリ。ディレクトリを終了した場合は、 cd /opt
を使用してディレクトリ内を移動します 。
ZooKeeperサービスを開始するには、次のコマンドを使用します。
sudo bin/zkServer.sh start
出力には、ZooKeeperが開始したことが表示されます。 。
ステップ7:ZooKeeperサーバーへの接続
サービスを開始すると、ZooKeeperサーバーに接続できます。このガイドでは、これはローカルサーバーです。
次のコマンドでZooKeeperに接続します:
bin/zkCli.sh -server 127.0.0.1:2181
出力が新しいzk
を開くのを待ちます プロンプト。接続済みであることを確認する必要があります 。
使用可能なコマンドのリストを表示するには、新しいコマンドプロンプトで次のコマンドを実行します。
help
セッションを閉じる 、タイプ:
quit
ZooKeeperサービスを停止する 、コマンドを実行します:
bin/zkServer.sh stop
ステップ8:システムサービスファイルの作成
最後に、ZooKeeperを管理するためのサービスファイルを作成する必要があります。
1.新しいzookeeper.serviceを作成します 選択したテキストエディタのファイル:
sudo nano /etc/systemd/system/zookeeper.service
2.次のコンテンツをファイルに貼り付けます。
[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
3.ファイルを保存して終了します。
4.次を実行してsystemdサービスをリロードします:
systemctl daemon-reload
5.次に、ZooKeeperサービスを開始し、起動時に開始できるようにします。
systemctl start zookeeper
systemctl enable zookeeper
6.次のコマンドを使用して、サービスが稼働していることを確認します。
systemctl status zookeeper
ZooKeeperがアクティブ(実行中)であることがわかります。 。
複製されたZooKeeperの構成
本番環境では、ZooKeeperノードのレプリケートされたクラスターをセットアップする必要があります。
Javaをインストールし、ZooKeeperユーザーを作成し、バイナリパッケージをダウンロードしたら、構成ファイルを作成する必要があります。スタンドアロンモードの基本構成とは異なり、複製モード さらに数行含まれています。
同じアプリケーション内のすべてのサーバーには、構成ファイルのコピーが必要です。
次のコマンドで各ファイルを作成します:
sudo nano /opt/zookeeper/conf/zoo.cfg
次に、次のコンテンツをファイルに貼り付けます。
tickTime=2000
dataDir=/var/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=[server_ip]:2888:3888
server.2=[server_ip]:2888:3888
server.3=[server_ip]:2888:3888
ファイルを保存して終了します。グループ内の各サーバーでこのプロセスを繰り返します。