このチュートリアルでは、Ubuntu18.04を実行しているVPSにApacheKafkaをインストールして設定する方法を示します。
KafkaまたはApacheKafkaは、pub-sub(パブリッシュ/サブスクライブ)モデルの原則に基づく分散メッセージングシステムです。これにより、分類可能なレコードのストリームをパブリッシュおよびサブスクライブできます。 信じられないほど速い 、拡張性が高い 、フォールトトレラント システムであり、大量のデータをリアルタイムで処理するように設計されています 。 Apache Kafkaは、メッセージブローカーの代わりに使用することもできます。これにより、レコードのストリームを処理/変換できます。 Kafkaはメッセージングシステムとして使用できますが、かなり大規模です。全体として、ApacheKafkaは正しく使用すると非常に強力なツールです。
前提条件
- 4GB以上のメモリを搭載したUbuntu18.04を実行しているサーバー。このチュートリアルでは、マネージドUbuntu18.04VPSの1つを使用します。
- root権限でのSSHアクセス、または「root」ユーザー自体へのアクセス
ステップ1:SSH経由でログインし、システムを更新する
rootユーザーとしてSSHを使用してUbuntu18.04VPSにログインします:
ssh root@IP_Address -p Port_number
必要に応じて、「root」をsudo権限を持つユーザーに置き換えます。さらに、「IP_Address」と「Port_Number」をサーバーのそれぞれのIPアドレスとSSHポートに置き換えます。
それが完了したら、次のコマンドを使用して、サーバーに適切なUbuntuバージョンがインストールされているかどうかを確認できます。
# lsb_release -a
次の出力が得られるはずです:
Distributor ID: Ubuntu Description: Ubuntu 18.04.2 LTS Release: 18.04 Codename: bionic
次に、次のコマンドを実行して、サーバーにインストールされているすべてのパッケージが最新の利用可能なバージョンに更新されていることを確認します。
# apt update && apt upgrade
ステップ2:システムユーザーを追加する
「kafka」という新しいユーザーを作成してから、この新しいユーザーをsudoerとして追加します。
# adduser kafka # usermod -aG sudo kafka
ステップ3:Javaをインストールする
KafkaはJavaで記述されているため、動作させるにはJVMが必要です。このチュートリアルでは、2018年9月からUbuntuに付属しているJavaの標準バージョンであるOpenJDK11を使用します。
# apt install default-jre
ステップ4:ApacheKafkaをダウンロードする
それでは、Kafkaをダウンロードしましょう。ここにアクセスして、必要に応じて最新リリースをダウンロードできます。執筆時点での最新のダウンロードリンクは、すでに例に入力されています。
# su - kafka
wget https://www-us.apache.org/dist/kafka/2.2.0/kafka_2.12-2.2.0.tgz -O kafka.tgz
Apache Kafkaバイナリがダウンロードされたので、Kafkaユーザーディレクトリに解凍する必要があります
$ tar -xzvf kafka.tgz --stripe 1
ステップ5:ApacheKafkaを構成する
ApacheKafkaを構成する時が来ました。デフォルトでは、メッセージを投稿できるトピック、カテゴリ、またはグループを削除することは許可されていません。この動作を変更するには、デフォルトの構成を編集する必要があります。
$ nano ~/config/server.properties
構成ファイルの最後の行に次の行を追加します。
delete.topic.enable =true
ステップ6:ApacheKafka用のシステムユニットファイルを作成する
Kafkaを実行するには、Zookeeperが必要です。 Kafkaはzookeeperを使用するため、Apache Kafkaサービスを開始する前に、まずZookeeperサーバーのインスタンスを起動する必要があります。このチュートリアルでは、Kafkaにパッケージ化された便利なスクリプトを使用して、手っ取り早い単一ノードのZookeeperインスタンスを取得します。
ファイルパス/etc/systemd/system/zookeeper.service
で新しいファイルを開きます 、お好みのテキストエディタで開きます。 nano
を使用します このチュートリアルのために。
$ sudo nano /etc/systemd/system/zookeeper.service
次の行を貼り付けます:
[Unit] Requires=network.target remote-fs.target After=network.target remote-fs.target [Service] Type=simple User=kafka ExecStart=/home/kafka/bin/zookeeper-server-start.sh /home/kafka/config/zookeeper.properties ExecStop=/home/kafka/bin/zookeeper-server-stop.sh Restart=on-abnormal [Install] WantedBy=multi-user.target
それでは、ファイルパス/etc/systemd/system/kafka.service
にkafkaのシステムユニットファイルを作成しましょう。 :
$ sudo nano /etc/systemd/system/kafka.service
次の行をファイルに貼り付けます:
[Unit] Requires=zookeeper.service After=zookeeper.service [Service] Type=simple User=kafka ExecStart=/bin/sh -c '/home/kafka/bin/kafka-server-start.sh /home/kafka/config/server.properties > /home/kafka/kafka.log 2>&1' ExecStop=/home/kafka/bin/kafka-server-stop.sh Restart=on-abnormal [Install] WantedBy=multi-user.target
新しいシステムユニットが追加されたので、Apache Kafkaを起動時に自動的に実行してから、サービスを実行できるようにします。
$ sudo systemctl enable kafka $ sudo systemctl start kafka
ステップ7:トピックを作成する
このステップでは、「FirstTopic」という名前のトピックを作成します。パーティションは1つで、レプリカは1つだけです。
$ bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic FirstTopic Created topic "FirstTopic".
レプリケーション係数の値は、作成されるデータのコピーの数を示します。単一のインスタンスで実行しているため、値は1になります。
パーティション値は、データを分割するブローカーの数を表します。単一のブローカーで実行しているため、値は1になります。
これで、list topicコマンドを実行して、Kafkaで作成されたトピックを確認できます。
$ bin/kafka-topics.sh --list --zookeeper localhost:2181 FirstTopic
ステップ8:ApacheKafkaを使用してメッセージを送信する
Apache Kafkaには、ファイルまたは標準入力から入力を受け取り、それをメッセージとしてKafkaクラスターに送信するコマンドラインクライアントが付属しています。 「プロデューサー」とは、Kafkaサービスにデータを投入する責任があるプロセスです。デフォルトでは、Kafkaは各行を個別のメッセージとして送信します。
プロデューサーを実行してから、コンソールにいくつかのメッセージを入力してサーバーに送信しましょう。
$ bin/kafka-console-producer.sh --broker-list localhost:9092 --topic FirstTopic >Welcome to kafka >This is the content of our first topic >
ターミナルを開いたままにして、次のステップに進みましょう。
ステップ9:ApacheKafkaをコンシューマーとして使用する
Apache Kafkaには、コンシューマーがKafkaからデータを読み取るためのコマンドラインもあります。これは、コンシューマーがKafkaを使用して標準出力でメッセージを表示できるようにするためです。
新しいSSHセッションで次のコマンドを実行します。
$ bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testTopic --from-beginning Welcome to kafka This is the content of our first topic
それでおしまい! ApacheKafkaが正常にインストールおよびセットアップされました。これで、前の手順で説明したように、プロデューサー端末でいくつかのメッセージを入力できます。メッセージはすぐに消費者向け端末に表示されます。
もちろん、Ubuntu 18.04 VPSがホストされている場合は、Ubuntu18.04にApacheKafkaをインストールする方法を知る必要はありません。その場合は、サポートチームにUbuntu18.04にApacheKafkaをインストールするように依頼するだけです。これらは24時間年中無休で利用可能であり、Apache Kafkaのインストールや、その他の要件に対応することができます。
PS。 Ubuntu18.04にApacheKafkaをインストールする方法に関するこのブログ投稿を読んで楽しんでいる場合は、以下のショートカットを使用してソーシャルネットワークで自由に共有するか、コメントセクションにコメントを残してください。ありがとうございます。