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

RHEL8にkafkaをインストールする方法

Apache Kafkaは、分散ストリーミングプラットフォームです。豊富なAPI(Application Programming Interface)セットを使用すると、ほとんどすべてのものをデータのソースとしてKafkaに接続できます。また、処理用のレコードの蒸気を受け取る多数のコンシューマーを設定できます。 Kafkaは拡張性が高く、信頼性が高くフォールトトレラントな方法でデータのストリームを保存します。接続性の観点から、Kafkaは多くの異種システム間のブリッジとして機能でき、Kafkaは、提供されたデータを転送および永続化する機能に依存できます。

このチュートリアルでは、ApacheKafkaをRedHat Enterprise Linux 8にインストールし、systemdを作成します。 管理を容易にするためのユニットファイル、および付属のコマンドラインツールを使用して機能をテストします。

このチュートリアルでは、次のことを学びます。

  • ApacheKafkaのインストール方法
  • KafkaとZookeeperのsystemdサービスを作成する方法
  • コマンドラインクライアントでKafkaをテストする方法

コマンドラインからKafkaトピックに関するメッセージを消費します。

使用されるソフトウェア要件と規則

システム ソフトウェア その他 規約
ソフトウェア要件とLinuxコマンドラインの規則
カテゴリ 使用する要件、規則、またはソフトウェアバージョン
Red Hat Enterprise Linux 8
Apache Kafka 2.11
rootまたはsudoを介したLinuxシステムへの特権アクセス コマンド。
–指定されたLinuxコマンドは、rootユーザーとして直接、またはsudoを使用して、root権限で実行する必要があります。 コマンド
$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります

Redhat8にkafkaをインストールする方法ステップバイステップの説明

Apache KafkaはJavaで記述されているため、インストールを続行するために必要なのはOpenJDK8をインストールすることだけです。 Kafkaは、同じくJavaで記述された分散調整サービスであるApache Zookeeperに依存しており、ダウンロードするパッケージに同梱されています。 HA(高可用性)サービスを単一のノードにインストールすることはその目的を損なうものですが、KafkaのためにZookeeperをインストールして実行します。

  1. 最も近いミラーからKafkaをダウンロードするには、公式ダウンロードサイトを参照する必要があります。 .tar.gzのURLをコピーできます そこからファイル。 wgetを使用します 、およびパッケージをターゲットマシンにダウンロードするために貼り付けられたURL:
    # wget https://www-eu.apache.org/dist/kafka/2.1.0/kafka_2.11-2.1.0.tgz -O /opt/kafka_2.11-2.1.0.tgz
  2. /optを入力します ディレクトリを作成し、アーカイブを抽出します:
    # cd /opt
    # tar -xvf kafka_2.11-2.1.0.tgz

    そして、/opt/kafkaというシンボリックリンクを作成します これは、現在作成されている/opt/kafka_2_11-2.1.0を指します。 私たちの生活を楽にするディレクトリ。

    ln -s /opt/kafka_2.11-2.1.0 /opt/kafka
  3. 両方のzookeeperを実行する非特権ユーザーを作成します およびkafka service。
    # useradd kafka
  4. そして、新しいユーザーを、抽出したディレクトリ全体の所有者として再帰的に設定します。
    # chown -R kafka:kafka /opt/kafka*
  5. ユニットファイル/etc/systemd/system/zookeeper.serviceを作成します 次の内容で:
    [Unit]
    Description=zookeeper
    After=syslog.target network.target
    
    [Service]
    Type=simple
    
    User=kafka
    Group=kafka
    
    ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
    ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh
    
    [Install]
    WantedBy=multi-user.target

    シンボリックリンクを作成したため、バージョン番号を3回書き込む必要がないことに注意してください。同じことがKafkaの次のユニットファイル/etc/systemd/system/kafka.serviceにも当てはまります。 、次の構成行が含まれています:

    [Unit]
    Description=Apache Kafka
    Requires=zookeeper.service
    After=zookeeper.service
    
    [Service]
    Type=simple
    
    User=kafka
    Group=kafka
    
    ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
    ExecStop=/opt/kafka/bin/kafka-server-stop.sh
    
    [Install]
    WantedBy=multi-user.target
  6. systemdをリロードする必要があります 新しいユニットファイルを読み取るには:
    # systemctl daemon-reload
  7. これで、新しいサービスを(この順序で)開始できます。
    # systemctl start zookeeper
    # systemctl start kafka

    すべてがうまくいけば、systemd 以下の出力のように、両方のサービスのステータスで実行状態を報告する必要があります。

    # systemctl status zookeeper.service
      zookeeper.service - zookeeper
       Loaded: loaded (/etc/systemd/system/zookeeper.service; disabled; vendor preset: disabled)
       Active: active (running) since Thu 2019-01-10 20:44:37 CET; 6s ago
     Main PID: 11628 (java)
        Tasks: 23 (limit: 12544)
       Memory: 57.0M
       CGroup: /system.slice/zookeeper.service
                11628 java -Xmx512M -Xms512M -server [...]
    
    # systemctl status kafka.service
      kafka.service - Apache Kafka
       Loaded: loaded (/etc/systemd/system/kafka.service; disabled; vendor preset: disabled)
       Active: active (running) since Thu 2019-01-10 20:45:11 CET; 11s ago
     Main PID: 11949 (java)
        Tasks: 64 (limit: 12544)
       Memory: 322.2M
       CGroup: /system.slice/kafka.service
                11949 java -Xmx1G -Xms1G -server [...]
  8. オプションで、両方のサービスの起動時に自動開始を有効にすることができます。
    # systemctl enable zookeeper.service
    # systemctl enable kafka.service
  9. 機能をテストするために、1つのプロデューサーと1つのコンシューマークライアントを使用してKafkaに接続します。プロデューサーによって提供されたメッセージは、コンシューマーのコンソールに表示されます。しかし、この前に、これら2つのメッセージを交換する媒体が必要です。 topicという新しいデータチャネルを作成します Kafkaの用語では、プロバイダーが公開する場所と、コンシューマーがサブスクライブする場所です。トピックを
    FirstKafkaTopicと呼びます 。 kafkaを使用します トピックを作成するユーザー:

    $ /opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic FirstKafkaTopic
  10. 前の手順で作成した(この時点では空の)トピックにサブスクライブするコマンドラインからコンシューマークライアントを起動します。
    $ /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic FirstKafkaTopic --from-beginning

    コンソールとその中で実行されているクライアントは開いたままにしておきます。このコンソールは、プロデューサークライアントで公開するメッセージを受信する場所です。

  11. 別の端末で、プロデューサークライアントを起動し、作成したトピックにいくつかのメッセージを公開します。利用可能なトピックについてKafkaにクエリを実行できます:
    $ /opt/kafka/bin/kafka-topics.sh --list --zookeeper localhost:2181
    FirstKafkaTopic

    そして、消費者がサブスクライブしているものに接続し、メッセージを送信します:

    $ /opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic FirstKafkaTopic
    > new message published by producer from console #2

    コンシューマー端末で、メッセージがまもなく表示されます:

    $ /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic FirstKafkaTopic --from-beginning
     new message published by producer from console #2

    メッセージが表示された場合、テストは成功し、Kafkaのインストールは意図したとおりに機能しています。多くのクライアントは、このチュートリアルで作成した単一ノードのセットアップでも、同じ方法で1つ以上のトピックレコードを提供および消費することができます。


Linux
  1. RHEL 8 /CentOS8にphpMyAdminをインストールする方法

  2. RHEL 8 /CentOS8にP7Zipをインストールする方法

  3. RHEL 7.4 に gcc 4.9.2 をインストールする方法

  1. RHEL 8 /CentOS8にntfs-3gをインストールする方法

  2. PHP-mbstringをRHEL8/CentOS8にインストールする方法

  3. RHEL 8 /CentOS8にphantomjsをインストールする方法

  1. DropboxをRHEL8/CentOS8にインストールする方法

  2. RHEL 8 /CentOS8にコンパスをインストールする方法

  3. RHEL 8 /CentOS8にPuppetをインストールする方法