Apache Kafka の入門

PHPz
リリース: 2024-08-05 22:36:12
オリジナル
1052 人が閲覧しました

Getting Started With Apache Kafka

Apache Kafka は、1 日に何兆ものイベントを処理できる強力な分散型イベント ストリーミング プラットフォームです。もともと LinkedIn によって開発され、2011 年初めにオープンソース化された Kafka は、多くの最新のデータ アーキテクチャの中心的なバックボーンに進化しました。このガイドでは、Apache Kafka のアーキテクチャの理解からセットアップ、基本操作の実行まで、Apache Kafka を使い始めるために必要なすべてのことを説明します。

Apache Kafka の概要

Apache Kafka は、リアルタイムのデータ フィードを処理するように設計されています。データ ストリームを処理するための高スループット、低遅延のプラットフォームとして機能します。 Kafka は、リアルタイム ストリーミング データ パイプラインとデータ ストリームに適応するアプリケーションを構築するためによく使用されます。一般的な使用例には、ログ集約、リアルタイム分析、ストリーム処理などがあります。

主要な概念と用語

セットアップと操作に入る前に、Kafka のいくつかの重要な概念と用語を理解することが重要です。

  • プロデューサー: Kafka トピックにメッセージを送信するアプリケーション。
  • コンシューマ: Kafka トピックからメッセージを読み取るアプリケーション。
  • トピック: プロデューサーによってメッセージが送信されるカテゴリまたはフィードの名前。
  • ブローカー: Kafka トピックを保存および提供する Kafka サーバー。
  • パーティション: スケーラビリティと並列処理のためのトピックの分割。
  • オフセット: パーティション内の各メッセージの一意の識別子。

Apache Kafka のセットアップ

Apache Kafka のセットアップには、必要なソフトウェアのダウンロード、構成、サービスの開始など、いくつかの手順が必要です。このセクションでは、Kafka 環境をスムーズに起動して実行できるようにするための詳細なチュートリアルを提供します。

前提条件

Kafka のセットアップを開始する前に、システムが次の前提条件を満たしていることを確認してください。

  1. Java Development Kit (JDK): Kafka には Java 8 以降が必要です。次のコマンドを使用して Java バージョンを確認できます:

    java -version
    
    ログイン後にコピー

    Java がインストールされていない場合は、Oracle Web サイトからダウンロードしてインストールするか、Debian ベースのシステムの場合は apt 、macOS の場合は brew などのパッケージ マネージャーを使用できます。

    # For Debian-based systems
    sudo apt update
    sudo apt install openjdk-11-jdk
    
    # For macOS
    brew install openjdk@11
    
    ログイン後にコピー
  2. Apache ZooKeeper: Kafka は ZooKeeper を使用して分散構成と同期を管理します。 ZooKeeper は Kafka にバンドルされているため、個別にインストールする必要はありません。

Kafka をダウンロードしてインストールする

  1. Kafka をダウンロード: 公式 Apache Kafka ダウンロード ページにアクセスし、Kafka の最新バージョンをダウンロードします。執筆時点では、Kafka 2.8.0 が最新の安定リリースです。

    wget https://downloads.apache.org/kafka/2.8.0/kafka_2.13-2.8.0.tgz
    
    ログイン後にコピー
  2. ダウンロードしたファイルを抽出します: tar ファイルを選択したディレクトリに抽出します。

    tar -xzf kafka_2.13-2.8.0.tgz
    cd kafka_2.13-2.8.0
    
    ログイン後にコピー
  3. ZooKeeper の開始: Kafka を実行するには ZooKeeper が必要です。提供された構成ファイルを使用して ZooKeeper サービスを開始します。

    bin/zookeeper-server-start.sh config/zookeeper.properties
    
    ログイン後にコピー

    ZooKeeper はデフォルトのポート 2181 で起動する必要があります。ZooKeeper が起動して実行中であることを示すログ メッセージが表示されるはずです。

  4. Kafka ブローカーの開始: 新しいターミナル ウィンドウを開き、提供された構成ファイルを使用して Kafka ブローカーを開始します。

    bin/kafka-server-start.sh config/server.properties
    
    ログイン後にコピー

    Kafka はデフォルトのポート 9092 で起動する必要があります。Kafka ブローカーが起動して実行中であることを示すログ メッセージが表示されるはずです。

カフカの構成

デフォルトの構成は開発とテストに適していますが、運用環境用に設定をカスタマイズする必要がある場合があります。主要な構成ファイルには次のものが含まれます:

  • server.properties: このファイルには、ブローカー ID、ログ ディレクトリ、リスナーなどの Kafka ブローカーの構成が含まれています。
  • zookeeper.properties: このファイルには、データ ディレクトリやクライアント ポートなどの ZooKeeper の構成が含まれています。

これらの構成ファイルは、ニーズに合わせて編集できます。たとえば、ログ ディレクトリを変更するには、server.properties ファイルの log.dirs プロパティを編集します。

log.dirs=/path/to/your/kafka-logs
ログイン後にコピー

Systemd サービス ファイルの作成

特に Linux サーバーでの管理を容易にするために、ZooKeeper と Kafka 用の systemd サービス ファイルを作成できます。これにより、systemctl を使用してこれらのサービスを開始、停止、再起動できるようになります。

  1. ZooKeeper サービス ファイル: /etc/systemd/system/ ディレクトリに、zookeeper.service という名前のファイルを作成します。

    [Unit]
    Description=Apache ZooKeeper
    After=network.target
    
    [Service]
    Type=simple
    ExecStart=/path/to/kafka/bin/zookeeper-server-start.sh /path/to/kafka/config/zookeeper.properties
    ExecStop=/path/to/kafka/bin/zookeeper-server-stop.sh
    Restart=on-abnormal
    
    [Install]
    WantedBy=multi-user.target
    
    ログイン後にコピー
  2. Kafka サービス ファイル: /etc/systemd/system/ ディレクトリに kafka.service という名前のファイルを作成します。

    [Unit]
    Description=Apache Kafka
    After=zookeeper.service
    
    [Service]
    Type=simple
    ExecStart=/path/to/kafka/bin/kafka-server-start.sh /path/to/kafka/config/server.properties
    ExecStop=/path/to/kafka/bin/kafka-server-stop.sh
    Restart=on-abnormal
    
    [Install]
    WantedBy=multi-user.target
    
    ログイン後にコピー
  3. Enable and Start Services: Enable and start the services using systemctl:

    sudo systemctl enable zookeeper
    sudo systemctl start zookeeper
    
    sudo systemctl enable kafka
    sudo systemctl start kafka
    
    ログイン後にコピー

    You can now manage ZooKeeper and Kafka using standard systemctl commands (start, stop, status, restart).

Verifying the Installation

To verify that your Kafka setup is working correctly, you can perform some basic operations such as creating a topic, producing messages, and consuming messages.

  1. Creating a Topic:

    bin/kafka-topics.sh --create --topic test-topic --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
    
    ログイン後にコピー

    You should see a confirmation message indicating that the topic has been created successfully.

  2. Producing Messages:

    bin/kafka-console-producer.sh --topic test-topic --bootstrap-server localhost:9092
    
    ログイン後にコピー

    Type a few messages in the console and press Enter after each message.

  3. Consuming Messages:
    Open a new terminal window and run:

    bin/kafka-console-consumer.sh --topic test-topic --from-beginning --bootstrap-server localhost:9092
    
    ログイン後にコピー

    You should see the messages you produced in the previous step.

By following these steps, you should have a fully functional Apache Kafka environment set up on your system. This setup forms the foundation for developing and deploying real-time data streaming applications using Kafka.

Conclusion

Getting started with Apache Kafka can seem daunting, but with the right guidance, you can quickly get up to speed. This guide provided a comprehensive introduction to Kafka, from installation to basic operations and building simple producers and consumers. As you continue to explore Kafka, you will uncover its full potential for building robust, real-time data pipelines.

By following this guide, you’ve taken the first steps in mastering Apache Kafka. Happy streaming!

以上がApache Kafka の入門の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!