Contents
Apache Kafkaのローカル環境構築手順|初心者向けにわかりやすく解説
Apache Kafkaをローカルで動作させるには、Java環境が必須です。特にJDK11以上のバージョン確認や、公式サイトからのダウンロード方法、ZooKeeperとKafkaの起動手順は初心者にとってクリアすべきハードルです。本記事では、macOS/Ubuntuを対象にしたステップバイステップの解説を通して、クラスター構築からメッセージ送受信テストまでを丁寧に紹介します。
Java環境の確認
KafkaはJDK11以降を公式にサポートしており、一部APIの非互換性によりJDK8では動作しない場合があります。まずは自身の環境でどのバージョンが導入されているかを確認しましょう。
JDK11以上のバージョン確認手順
ターミナルを開き、以下のコマンドを実行します。
|
1 2 |
java -version |
出力例(JDK11以上の場合):
|
1 2 |
openjdk version "17.0.5" 2022-10-18 |
JDK11未満が表示された場合は、以下でインストールしてください。
macOSでのJDKインストール手順(Homebrew使用)
-
Homebrewをインストールしていない場合:
bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -
JDK17をインストール:
bash
brew install --cask temurin17
注意:JDKのバージョンが11未満の場合、Kafkaの公式ドキュメントには記載されていない不具合が発生する可能性があります。サポート範囲外の場合は、JDK8は動作保証外です。代替としてAdoptiumやOracle JDKの最新版を導入してください。
UbuntuでのJDKインストール手順(APT使用)
-
リポジトリ登録:
bash
sudo apt update
sudo apt install openjdk-17-jdk -y -
バージョン確認:
bash
java -version
注意:将来的なバージョン変更に備えて、
temurin17やopenjdk-17-jdkの代わりに、Adoptium公式サイト(https://adoptium.net/)から最新版を指定してインストールすることを推奨します。
Apache Kafkaバイナリのダウンロードと解凍
公式サイトから最新版を取得することで、改ざんリスクを回避できます。macOS/Ubuntu共通の手順でダウンロード・解凍を行います。
macOS/Ubuntuでの公式サイトからのダウンロード手順
- 公式サイト(https://kafka.apache.org/downloads)にアクセスし、latest stable releaseのZIPファイルを取得します。
-
例:
kafka_2.13-3.5.0.tgz -
ターミナルで以下のようにダウンロード(例: macOSの場合):
bash
wget https://downloads.apache.org/kafka/3.5.0/kafka_2.13-3.5.0.tgz
ダウンロードファイルの解凍方法
ターミナルで以下のコマンドを実行し、指定ディレクトリに展開します。
|
1 2 3 |
tar -xzf kafka_2.13-3.5.0.tgz -C ~/kafka cd ~/kafka/kafka_2.13-3.5.0 |
補足:
tarコマンドはmacOSとUbuntu共通で使用可能です。解凍先のディレクトリを任意に選択してください。
ZooKeeperとKafkaの起動
KafkaはZooKeeperを使用して分散クラスターを管理します。両方とも起動させる必要があります。
ZooKeeperの起動コマンド実行
以下のように起動します(デフォルトポート2181):
|
1 2 |
bin/zookeeper-server-start.sh config/zookeeper.properties |
注意:背景実行は推奨されません。
理由として、デバッグや状態監視の観点から、前景モードでの起動がエラーログの確認やプロセス管理に最適です。背景実行を必要とする場合は、nohupなどのツールを使用し、適切なログ出力設定を行う必要があります。
Kafkaサーバーの起動コマンド実行
ZooKeeperが起動した後、以下を実行します(デフォルトポート9092):
|
1 2 |
bin/kafka-server-start.sh config/server.properties |
確認:
Startedと表示されれば正常に起動しています。エラーが出る場合は、ポート競合やJava環境の問題が考えられます。
テスト:トピック作成とメッセージ送受信
実際にトピックを作成し、メッセージを送受信することでKafkaの基本動作を確認しましょう。
トピックの作成コマンド
以下のように、test-topicという名前のトピックを1パーティション・1レプリカで作成します。
|
1 2 3 4 5 6 |
bin/kafka-topics.sh --create \ --topic test-topic \ --bootstrap-server localhost:9092 \ --partitions 1 \ --replication-factor 1 |
メッセージの送信と受信テスト
メッセージ送信(Producer)
|
1 2 |
bin/kafka-console-producer.sh --topic test-topic --bootstrap-server localhost:9092 |
- ターミナルにメッセージを入力し、Enterで送信します。例:
Hello, Kafka!
メッセージ受信(Consumer)
別ターミナルで以下のコマンドを実行:
|
1 2 |
bin/kafka-console-consumer.sh --topic test-topic --bootstrap-server localhost:9092 |
- 入力したメッセージが表示されれば成功です。
まとめ
本記事に従って設定し、Kafkaの基本操作を実際に体験してみましょう。質問があればコメント欄でお気軽にどうぞ。
主な手順まとめ
- JDK11以上を導入・確認(
java -versionでチェック) - 公式サイトからバイナリをダウンロード・解凍
- ZooKeeperとKafkaを起動(順序に注意)
- トピック作成とメッセージ送受信テスト
ローカル環境でのクラスター構築は、開発初期段階で動作確認や学習に最適です。今後ともApache Kafkaの活用を楽しみましょう。
JDKバージョンとKafka互換性比較表
| Javaバージョン | Kafka公式サポート | 備考 |
|---|---|---|
| JDK8 | ❌ 未対応 | 非推奨。一部APIが動作しない可能性あり |
| JDK11 | ✅ 対応 | 最低限のサポートバージョン |
| JDK17 | ✅ 対応 | 推奨バージョン。最新機能対応 |
| JDK21 | ✅ 対応(実験的) | 適宜公式ドキュメントで確認 |
補足:Kafkaの公式リリースノートに記載されているサポート範囲を常に確認してください。
トラブルシューティング時の手順
- Java環境の再確認:
java -versionで導入バージョンを確認 -
ポート競合チェック:
bash
lsof -i :9092
lsof -i :2181 -
ログファイルの確認:
- ZooKeeper:
logs/zookeeper-*.log - Kafka:
logs/kafka-server.log
注意:背景実行した場合、ログ出力が期待通りに行われない可能性があります。前景モードでの起動を推奨します。
今後の学習向けリソース
ローカル環境でのクラスター構築は、開発初期段階で動作確認や学習に最適です。今後ともApache Kafkaの活用を楽しみましょう。