2.3. Red Hat Enterprise Linux 上の Streams for Apache Kafka を使用した Debezium のデプロイ


この手順では、Red Hat Enterprise Linux で Debezium のコネクターを設定する方法を説明します。コネクターは、Apache Kafka と外部システム間でデータをストリーミングするためのフレームワークである Apache Kafka Connect を使用して、Streams for Apache Kafka クラスターにデプロイされます。Kafka Connect は、スタンドアロンモードではなく分散モードで実行する必要があります。

前提条件

注記

以前のバージョンの AMQ Streams を実行している場合は、まず Streams for Apache Kafka 2.7 にアップグレードする必要があります。アップグレードプロセスの詳細は、Streams for Apache Kafka および Kafka のアップグレード を参照してください。

  • ホストの管理者権限 (sudo アクセス) がある。
  • Apache ZooKeeper と Apache Kafka ブローカーが実行している。
  • Kafka Connect が、スタンドアロンモードではなく、分散モード で実行されている。
  • Streams for Apache Kafka のインストール時に作成された kafka ユーザーの認証情報を把握している。
  • ソースデータベースがデプロイされ、Debezium をデプロイするホストがデータベースにアクセスできる。
  • コネクターの設定方法 を理解している。

手順

  1. 使用する Debezium コネクターを ソフトウェアダウンロード サイトからダウンロードします。たとえば、Debezium を MySQL データベースで使用するには、Debezium 2.7.3 MySQL Connector をダウンロードします。
  2. Streams for Apache Kafka をデプロイした Red Hat Enterprise Linux ホストで、ターミナルウィンドウを開き、/opt/kafkaconnector-plugins ディレクトリーを作成します (まだ存在しない場合)。

    $ sudo mkdir /opt/kafka/connector-plugins
  3. 次のコマンドを入力して、/opt/kafka/connector-plugins ディレクトリーにダウンロードした Debezium コネクターアーカイブの内容を抽出します。

    $ sudo unzip debezium-connector-mysql-2.7.3.Final.zip -d /opt/kafka/connector-plugins
  4. インストールするコネクターごとに、手順 1 - 3 を繰り返します。
  5. ターミナルウィンドウから、kafka ユーザーとしてサインインします。

    $ su - kafka
    $ Password:
  6. Kafka Connect プロセスが実行中の場合は、停止します。

    1. 次のコマンドを入力して、Kafka Connect が分散モードで実行されているかどうかを確認します。

      $ jcmd | grep ConnectDistributed

      プロセスが実行中の場合、コマンドはプロセス ID を返します。次に例を示します。

      18514 org.apache.kafka.connect.cli.ConnectDistributed /opt/kafka/config/connect-distributed.properties
    2. プロセス ID を指定して kill コマンドを入力し、プロセスを停止します。次に例を示します。

      $ kill 18514
  7. /opt/kafka/config/ にある connect-distributed.properties ファイルを編集し、plugin.path の値を Debezium コネクタープラグインの親ディレクトリーの場所に設定します。

    plugin.path=/opt/kafka/connector-plugins
  8. 分散モードで Kafka Connect を起動します。

    $ /opt/kafka/bin/connect-distributed.sh /opt/kafka/config/connect-distributed.properties
  9. Kafka Connect の実行後、Kafka Connect API を使用してコネクターを登録します。
    curl コマンドを入力して、「Debezium コネクター設定の計画」 で指定したコネクター設定 JSON を localhost:8083/connectors の Kafka Connect REST API エンドポイントに送信する POST リクエストを送信します。
    以下に例を示します。

    curl -i -X POST -H "Accept:application/json" -H "Content-Type:application/json" http://localhost:8083/connectors/ -d '{"name": "inventory-connector", "config":
    {"connector.class": "io.debezium.connector.mysql.MySqlConnector",
    "tasks.max": "1",
    "database.hostname": "mysql",
    "database.port": "3306",
    "database.user": "debezium",
    "database.password": "dbz",
    "database.server.id": "184054",
    "topic.prefix": "dbserver1",
    "table.include.list": "public.inventory",
    "schema.history.internal.kafka.bootstrap.servers": "kafka:9092", "schema.history.internal.kafka.topic": "dbhistory.inventory" }
    }'

    複数のコネクターを登録するには、コネクターごとに個別のリクエストを送信します。

  10. Kafka Connect を再起動して、変更を実装します。

    Kafka Connect が起動すると、connector-plugins ディレクトリーから、設定済みの Debezium コネクターをロードします。

    設定が完了すると、デプロイされたコネクターはソースデータベースに接続し、挿入、更新、または削除された行またはドキュメントごとにイベントを生成します。

  11. 各 Kafka Connect ワーカーノードに対して、ステップ 5 - 10 を繰り返します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.