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

RockyLinux8にApacheKafkaをインストールする方法

Apache Kafkaは、分散ストリーミングプラットフォームを介してデータストリームを処理できるようにするオープンソースのストリーム処理およびメッセージブローカーソフトウェアアプリケーションです。これは、送信者と受信者の間のメッセージングシステムとして機能します。 Apache Kafkaは分散アーキテクチャに基づいているため、高いフォールトトレランスとスケーラビリティ機能を提供します。もともとはLinkedInによって開発されましたが、現在はApacheSoftwareFoundationのプロジェクトです。 Apache Kafkaは、Kafkaクラスターに対してデータを読み書きしたり、サードパーティシステムとの間でデータをインポートおよびエクスポートしたりするためのインターフェイスを提供します。

この投稿では、ApacheKafkaをRockyLinux8にインストールする方法を説明します。

前提条件

  • Atlantic.NetクラウドプラットフォームでRockyLinux8を実行しているサーバー
  • サーバーで構成されているrootパスワード

ステップ1-Atlantic.Netクラウドサーバーを作成する

まず、Atlantic.Netクラウドサーバーにログインします。 2GB以上のRAMを搭載したオペレーティングシステムとしてRockyLinux8を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。

サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。

dnf update -y

ステップ2–Javaをインストールする

Apache KafkaはJavaベースのアプリケーションであるため、Javaをサーバーにインストールする必要があります。インストールされていない場合は、次のコマンドを使用してインストールできます。

dnf install java-11-openjdk-devel -y

Javaがインストールされたら、次のコマンドを使用してJavaのインストールを確認します。

java --version

次の出力でJavaバージョンを取得します。

openjdk 11.0.13 2021-10-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.13+8-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8-LTS, mixed mode, sharing)

ステップ3– RockyLinux8にApacheKafkaをインストールする

まず、Apacheの公式Webサイトにアクセスし、wgetコマンドを使用して最新バージョンのApacheKafkaをダウンロードします。

wget https://dlcdn.apache.org/kafka/3.0.0/kafka_2.13-3.0.0.tgz

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

tar -xvzf kafka_2.13-3.0.0.tgz

ダウンロードしたファイルが抽出されたら、抽出したディレクトリを/ usr/localディレクトリに移動します。

mv kafka_2.13-3.0.0/ /usr/local/kafka

終了したら、次のステップに進むことができます。

ステップ4–ZookeeperとKafkaのSystemdサービスファイルを作成する

本番環境では、ZookeeperとKafkaの両方をバックグラウンドで実行するsystemdサービスファイルを作成することをお勧めします。

まず、次のコマンドを使用してZookeeperのsystemdサービスファイルを作成します。

nano /etc/systemd/system/zookeeper.service

次の行を追加します:

[Unit]
Description=Apache Zookeeper server
Documentation=http://zookeeper.apache.org
Requires=network.target remote-fs.target
After=network.target remote-fs.target

[Service]
Type=simple
ExecStart=/usr/bin/bash /usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties
ExecStop=/usr/bin/bash /usr/local/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

ファイルを保存して閉じ、次のコマンドを使用してKafkaのsystemdサービスファイルを作成します。

nano /etc/systemd/system/kafka.service

次の行を追加します:

[Unit]
Description=Apache Kafka Server
Documentation=http://kafka.apache.org/documentation.html
Requires=zookeeper.service

[Service]
Type=simple
Environment="JAVA_HOME=/usr/lib/jvm/jre-11-openjdk"
ExecStart=/usr/bin/bash /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
ExecStop=/usr/bin/bash /usr/local/kafka/bin/kafka-server-stop.sh

[Install]
WantedBy=multi-user.target

ファイルを保存して閉じてから、次のコマンドを使用してsystemdデーモンをリロードします。

systemctl daemon-reload

次に、ZookeeperサービスとKafkaサービスの両方を開始し、システムの再起動時に開始できるようにします。

systemctl start zookeeper
systemctl start kafka
systemctl enable zookeeper
systemctl enable kafka

次のコマンドを使用して、両方のサービスを確認することもできます。

systemctl status zookeeper kafka

次の出力が得られます:

● zookeeper.service - Apache Zookeeper server
   Loaded: loaded (/etc/systemd/system/zookeeper.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2021-10-22 07:51:56 UTC; 42s ago
     Docs: http://zookeeper.apache.org
 Main PID: 33802 (java)
    Tasks: 28 (limit: 11411)
   Memory: 91.4M
   CGroup: /system.slice/zookeeper.service
           └─33802 java -Xmx512M -Xms512M -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCIn>

Oct 22 07:51:58 RockyLinux8 bash[33802]: [2021-10-22 07:51:58,676] INFO zookeeper.snapshot.compression.method = CHECKED (org.apache.zookeeper.>
Oct 22 07:51:58 RockyLinux8 bash[33802]: [2021-10-22 07:51:58,676] INFO Snapshotting: 0x0 to /tmp/zookeeper/version-2/snapshot.0 (org.apache.z>
Oct 22 07:51:58 RockyLinux8 bash[33802]: [2021-10-22 07:51:58,679] INFO Snapshot loaded in 22 ms, highest zxid is 0x0, digest is 1371985504 (o>
Oct 22 07:51:58 RockyLinux8 bash[33802]: [2021-10-22 07:51:58,679] INFO Snapshotting: 0x0 to /tmp/zookeeper/version-2/snapshot.0 (org.apache.z>
Oct 22 07:51:58 RockyLinux8 bash[33802]: [2021-10-22 07:51:58,683] INFO Snapshot taken in 3 ms (org.apache.zookeeper.server.ZooKeeperServer)
Oct 22 07:51:58 RockyLinux8 bash[33802]: [2021-10-22 07:51:58,703] INFO zookeeper.request_throttler.shutdownTimeout = 10000 (org.apache.zookee>
Oct 22 07:51:58 RockyLinux8 bash[33802]: [2021-10-22 07:51:58,741] INFO PrepRequestProcessor (sid:0) started, reconfigEnabled=false (org.apach>
Oct 22 07:51:58 RockyLinux8 bash[33802]: [2021-10-22 07:51:58,764] INFO Using checkIntervalMs=60000 maxPerMinute=10000 maxNeverUsedIntervalMs=>
Oct 22 07:51:58 RockyLinux8 bash[33802]: [2021-10-22 07:51:58,765] INFO ZooKeeper audit is disabled. (org.apache.zookeeper.audit.ZKAuditProvid>
Oct 22 07:52:12 RockyLinux8 bash[33802]: [2021-10-22 07:52:12,102] INFO Creating new log file: log.1 (org.apache.zookeeper.server.persistence.>

● kafka.service - Apache Kafka Server
   Loaded: loaded (/etc/systemd/system/kafka.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2021-10-22 07:52:09 UTC; 29s ago
     Docs: http://kafka.apache.org/documentation.html
 Main PID: 34147 (java)
    Tasks: 69 (limit: 11411)
   Memory: 331.6M
   CGroup: /system.slice/kafka.service
           └─34147 /usr/lib/jvm/jre-11-openjdk/bin/java -Xmx1G -Xms1G -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancy>

Oct 22 07:52:14 RockyLinux8 bash[34147]: [2021-10-22 07:52:14,881] INFO [/config/changes-event-process-thread]: Starting (kafka.common.ZkNodeC>
Oct 22 07:52:14 RockyLinux8 bash[34147]: [2021-10-22 07:52:14,899] INFO [SocketServer listenerType=ZK_BROKER, nodeId=0] Starting socket server>
Oct 22 07:52:14 RockyLinux8 bash[34147]: [2021-10-22 07:52:14,981] INFO [SocketServer listenerType=ZK_BROKER, nodeId=0] Started data-plane acc>
Oct 22 07:52:14 RockyLinux8 bash[34147]: [2021-10-22 07:52:14,988] INFO [SocketServer listenerType=ZK_BROKER, nodeId=0] Started socket server >
Oct 22 07:52:15 RockyLinux8 bash[34147]: [2021-10-22 07:52:15,069] INFO Kafka version: 3.0.0 (org.apache.kafka.common.utils.AppInfoParser)
Oct 22 07:52:15 RockyLinux8 bash[34147]: [2021-10-22 07:52:15,069] INFO Kafka commitId: 8cb0a5e9d3441962 (org.apache.kafka.common.utils.AppInf>
Oct 22 07:52:15 RockyLinux8 bash[34147]: [2021-10-22 07:52:15,069] INFO Kafka startTimeMs: 1634889134988 (org.apache.kafka.

ステップ5–Kafkaでトピックを作成する

Apache Kafkaをテストするには、サーバー上に少なくとも1つのトピックを作成する必要があります。

ディレクトリをApacheKafkaに変更し、次のコマンドを使用してtopic1という名前のテストトピックを作成します。

cd /usr/local/kafka/
bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic topic1

これで、次のコマンドを使用して、作成したトピックを確認できます。

bin/kafka-topics.sh --list --bootstrap-server localhost:9092

次の出力が得られます:

topic1

Kafkaは、プロデューサーとコンシューマーの2つのAPIを提供します。プロデューサーはイベントを作成する責任があり、コンシューマーはそれらを画面に表示します:

まず、次のコマンドを実行して、次のコマンドを使用してevent1という名前のイベントを作成します。

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic event1

ストリーミングしてコンシューマーに表示するテキストを入力します。

>Hi, this is my first event

サンプル出力:

[2021-10-22 07:58:05,318] WARN [Producer clientId=console-producer] Error while fetching metadata with correlation id 3 : {event1=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)

別のターミナルを開き、次のコマンドを実行して、生成されたイベントデータをリアルタイムで表示します。

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic event1 --from-beginning

次の出力が得られます:

Hi, this is my first event

結論

上記のガイドでは、Rocky Linux8にApacheKafkaをインストールする方法を学習しました。詳細については、ApacheKafkaのドキュメントページにアクセスしてください。 Atlantic.NetからのVPSホスティングでApacheKafkaを使い始めましょう!


Linux
  1. AlmaLinux / RockyLinux8にApacheCassandraをインストールする方法

  2. Rocky Linux / AlmaLinux8にApacheMavenをインストールする方法

  3. RockyLinux8にPython3.10をインストールする方法

  1. RockyLinux8.4のインストール方法

  2. RockyLinux8にPython3.9をインストールする方法

  3. CentOS8にApacheKafkaをインストールする方法

  1. RockyLinuxにApacheSolrをインストールする方法

  2. RockyLinux8.4のインストール方法

  3. Rocky Linux /CentOS8にApacheMavenをインストールする方法