GNU/Linux >> Linux の 問題 >  >> Debian

Debian10にApacheZooKeeperをインストールする方法

Apache Zookeeperは、分散システム向けの無料のオープンソースサービスであり、多数のホストの管理に役立ちます。これは、構成情報、命名、およびグループサービスを維持するために使用される一元化されたサービスです。これはJavaで記述されており、開発者はアプリケーションの分散性を気にすることなく、ソフトウェア機能の構築に集中できます。 Apache ZooKeeperは、読み取りが書き込みよりもはるかに一般的である「読み取りが支配的な」ワークロードで最も一般的に使用されます。同期、順序付けされたメッセージ、シリアル化、信頼性、原子性、高速処理など、豊富な機能セットが付属しています。他の分散アプリケーションに接続しているときに自動障害回復を行うのに役立つロックおよび同期メカニズムがあります。 Zookeeperプロジェクトは、ApacheFoundationで最も成功したプロジェクトの1つです。多くの企業が、高可用性分散システムを大規模に作成するためにZookeeperを採用しました。

このチュートリアルでは、Debian10サーバーでシングルノードのApacheZookeeperクラスターをセットアップする方法を示します。

前提条件
  • 2GBのRAMを搭載したDebian10を実行しているサーバー。
  • ルートパスワードはサーバーで構成されています。
はじめに

開始する前に、サーバーを最新バージョンに更新することをお勧めします。次のコマンドを使用して更新できます:

apt-get update -y
apt-get upgrade -y

サーバーが更新されたら、サーバーを再起動して変更を実装します。

Javaのインストール

ApacheZookeeperはJava言語で書かれています。したがって、システムにJavaをインストールする必要があります。デフォルトでは、最新バージョンのJavaがDebian10デフォルトリポジトリで利用可能です。次のコマンドを実行してインストールできます:

apt-get install default-jdk -y

Javaをインストールした後、次のコマンドを使用して、インストールされているJavaのバージョンを確認します。

java --version

次の出力が得られるはずです:

openjdk 11.0.5 2019-10-15
OpenJDK Runtime Environment (build 11.0.5+10-post-Debian-1deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.5+10-post-Debian-1deb10u1, mixed mode, sharing)

完了したら、Zookeeperのシステムユーザーの作成に進むことができます。

Zookeeperのシステムユーザーを作成する

Zookeeperサービスを実行するための専用ユーザーを作成することをお勧めします。これにより、セキュリティと管理性が向上します。

まず、次のコマンドを実行して、ホームディレクトリを持つzookeeperユーザーを作成します。

useradd zookeeper -m

次に、次のコマンドを使用して、zookeeperユーザーのデフォルトのシェルを設定します。

usermod --shell /bin/bash zookeeper

次に、次のコマンドを使用して、飼育係ユーザーのパスワードを設定します。

passwd zookeeper

次に、zookeeperユーザーをsudoグループに追加します。

usermod -aG sudo zookeeper

この時点で、Zookeeperユーザーを作成して構成しました。これで、Zookeeperのダウンロードに進むことができます。

Zookeeperをダウンロード

まず、ApacheZookeeperの最新バージョンを公式Webサイトからダウンロードする必要があります。この記事を書いている時点で、ApacheZookeeperの最新バージョンは3.5.6です。

ダウンロードするには、ディレクトリを/ optに変更し、次のコマンドを実行します。

cd /opt
wget https://archive.apache.org/dist/zookeeper/stable/apache-zookeeper-3.5.6-bin.tar.gz

ダウンロードが完了したら、次のコマンドを使用してダウンロードしたファイルを抽出します。

tar -xvzf apache-zookeeper-3.5.6-bin.tar.gz

次に、抽出したディレクトリの名前をzookeeperに変更し、適切な権限を付与します。

mv apache-zookeeper-3.5.6-bin zookeeper
chown -R zookeeper:zookeeper /opt/zookeeper

次に、Zookeeperがすべての構成データと状態データを保存するためのデータディレクトリを作成する必要があります。必要に応じて、ローカルファイルシステムまたはリモートファイルシステムに作成できます。

次のコマンドを使用して、データディレクトリを作成できます。

mkdir -p /data/zookeeper

次に、データディレクトリの所有権をzookeeperuserに変更します。

chown -R zookeeper:zookeeper /data/zookeeper

この時点で、Zookeeperをダウンロードし、そのデータディレクトリを作成しました。これで、Zookeeperの構成に進むことができます。

Zookeeperを構成する

Zookeeperのすべての構成ファイルは、/ opt / zookeeper /conf/ディレクトリ内にあります。次のコマンドを使用して、/ opt / zookeeper /conf/ディレクトリ内にZookeeper構成ファイルを作成できます。

nano /opt/zookeeper/conf/zoo.cfg

次の行を追加します:

tickTime=2500
dataDir=/data/zookeeper
clientPort=2181
maxClientCnxns=80

終了したら、ファイルを保存して閉じます。

場所:

  • tickTime :このオプションは、ティックの長さをミリ秒単位で設定します。
  • dataDir :Zookeeperデータを保存するデータディレクトリを指定します。
  • clientPort :クライアント接続のリッスンに使用するポートを指定します。
  • maxClientCnxns :クライアント接続の最大数を制限するために使用されます。

:上記のパラメータは開発とテスト用です。必要に応じて変更できます。

この時点で、Zookeeperを構成しました。これで、Zookeeperサーバーを起動する準備ができました。

Zookeeperサーバーの起動とテスト

次のコマンドを使用して、Zookeeperサーバーを起動できます。

/opt/zookeeper/bin/zkServer.sh start

次の出力が得られるはずです:

/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

次に、次のコマンドを使用して、ポート2181でZookeeperサーバーに接続できます。

/opt/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181

接続すると、次の出力が表示されます。

[zk: 127.0.0.1:2181(CONNECTED) 0]

次に、helpコマンドを実行して、クライアントから実行できるコマンドのリストを取得します。

[zk: 127.0.0.1:2181(CONNECTED) 0] help

次の出力が表示されます。

ZooKeeper -server host:port cmd args
	addauth scheme auth
	close 
	config [-c] [-w] [-s]
	connect host:port
	create [-s] [-e] [-c] [-t ttl] path [data] [acl]
	delete [-v version] path
	deleteall path
	delquota [-n|-b] path
	get [-s] [-w] path
	getAcl [-s] path
	history 
	listquota path
	ls [-s] [-w] [-R] path
	ls2 path [watch]
	printwatches on|off
	quit 
	reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*]
	redo cmdno
	removewatches path [-c|-d|-a] [-l]
	rmr path
	set [-s] [-v version] path data
	setAcl [-s] [-v version] [-R] path acl
	setquota -n|-b val path
	stat [-w] path
	sync path

テスト後、quitコマンドを使用してクライアントセッションを終了します。

[zk: 127.0.0.1:2181(CONNECTED) 0] quit

これで、次のコマンドを使用してZookeeperサービスを停止できます。

/opt/zookeeper/bin/zkServer.sh stop

次のコマンドが表示されます:

/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED

この時点で、Zookeeperサーバーの起動とテストは正常に完了しています。

Zookeeper用のSystemdサービスファイルを作成する

次に、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サービスを開始し、次のコマンドを使用してシステムの再起動後に開始できるようにします。

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 2019-12-29 15:12:39 UTC; 8min ago
     Docs: http://zookeeper.apache.org
  Process: 9229 ExecStart=/opt/zookeeper/bin/zkServer.sh start /opt/zookeeper/conf/zoo.cfg (code=exited, status=0/SUCCESS)
 Main PID: 9245 (java)
    Tasks: 29 (limit: 2359)
   Memory: 49.7M
   CGroup: /system.slice/zookeeper.service
           ??9245 java -Dzookeeper.log.dir=/opt/zookeeper/bin/../logs -Dzookeeper.log.file=zookeeper-zookeeper-server-debian10.log -Dzookeeper.

Dec 29 15:12:38 debian10 systemd[1]: Starting Zookeeper Daemon...
Dec 29 15:12:38 debian10 zkServer.sh[9229]: /usr/bin/java
Dec 29 15:12:38 debian10 zkServer.sh[9229]: ZooKeeper JMX enabled by default
Dec 29 15:12:38 debian10 zkServer.sh[9229]: Using config: /opt/zookeeper/conf/zoo.cfg
Dec 29 15:12:39 debian10 zkServer.sh[9229]: Starting zookeeper ... STARTED
Dec 29 15:12:39 debian10 systemd[1]: Started Zookeeper Daemon.

これで、systemdを使用してZookeeperサービスを簡単に管理できます。

結論

おめでとう!これで、Debian10サーバーに単一ノードのZookeeperクラスターが正常にインストールおよび構成されました。この設定は、開発環境およびテスト環境で非常に役立ちます。シングルノードのZookeeperクラスターをセットアップするための十分な知識が得られたことを願っています。ご不明な点がございましたら、お気軽にお問い合わせください。


Debian
  1. Debian10にApacheMavenをインストールする方法

  2. Debian10にosqueryをインストールする方法

  3. Ubuntu20.04にApacheZooKeeperをインストールする方法

  1. Debian9にApacheをインストールする方法

  2. Debian11にApacheCassandraをインストールする方法

  3. Debian11にApacheMavenをインストールする方法

  1. Debian9にApacheCassandraをインストールする方法

  2. Debian10にApacheOFBizCRMをインストールする方法

  3. Debian10にApacheActiveMQをインストールする方法