【Kafka】Apache Kafka ~ 環境構築 / Linux編 ~

■ はじめに

Apache Kafka ~ 環境構築 / Windows編 ~
https://dk521123.hatenablog.com/entry/2023/04/23/235534

のLinux版。

目次

【1】構築手順 - 通常版
 0)前提条件
 1)Kafka のインストール
【2】モジュール起動
 1)zookeeper起動
 2)Kafka broker起動
【3】Quick Start
 1)トピックを作成 & 確認
 2)メッセージを送信
 3)メッセージを受信

【1】構築手順 - 通常版

* すごーい、簡単(Windows版と基本変わらない)

0)前提条件

[1] JDK

Linuxの場合
https://dk521123.hatenablog.com/entry/2017/08/01/234900

# より抜粋

sudo apt update
sudo apt install openjdk-11-jre-headless

1)Kafka のインストール

* 以下の公式サイトから、ダウンロードして任意の場所に解凍する
 => 今回は、v3.7.0 - Scala 2.12 版「kafka_2.12-3.7.0.tgz」をダウンロード

https://kafka.apache.org/downloads

Linux(Ubuntu)の場合

# Step1: ダウンロード
# curl -OL {ダウンロードするURL}
curl -OL https://downloads.apache.org/kafka/3.7.0/kafka_2.12-3.7.0.tgz

# Step2: 解凍
# -x (--extract,--get) ... アーカイブからファイルを抽出する
# -z (--gzip) ... gzip形式アーカイブを展開する
# -f アーカイブ (--file=アーカイブ) ... アーカイブファイル名を指定する
# -C <解凍先PATH> ... 解凍先を指定
sudo tar -xzf kafka_2.12-3.7.0.tgz -C /usr/local/bin/
# 所有権を自分にする
sudo chown $(whoami) -R /usr/local/bin/kafka_2.12-3.7.0/

# Step3: Path を通す (下記の関連記事「Linux ~ 環境変数あれこれ ~」を参照)
vi ~/.bash_profile
~~~~~~~~~~~
# Add /usr/local/bin/kafka_2.12-3.7.0/bin/:
# PATH="/usr/local/bin/kafka_2.12-3.7.0/bin/:【元の設定】"
PATH=/usr/local/bin/kafka_2.12-3.7.0/bin/:$PATH
~~~~~~~~~~~
source ~/.bash_profile

# Step4: 確認
kafka-topics.sh --version
# 今回の場合「3.7.0」が表示される

Linux環境変数あれこれ ~
https://dk521123.hatenablog.com/entry/2015/07/16/103501

【2】モジュール起動

1)zookeeper起動

Linuxの場合

# Start the ZooKeeper service
zookeeper-server-start.sh /usr/local/bin/kafka_2.12-3.7.0/config/zookeeper.properties
# (放置)

2)Kafka broker起動

Linuxの場合

# Start the Kafka broker service
kafka-server-start.sh /usr/local/bin/kafka_2.12-3.7.0/config/server.properties
# (放置)

【3】Quick Start

* 公式ドキュメントのQuick Startをやってみる
 => Step1-2は、既に上記で行っているので、Step3~Step5。

https://kafka.apache.org/quickstart

日本語版?
http://mogile.web.fc2.com/kafka/kafka200/quickstart.html

1)トピックを作成 & 確認

Linuxの場合

# STEP 3: CREATE A TOPIC TO STORE YOUR EVENTS
## Topic「quickstart-events」を作成
$ kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092

# 確認
## Topic一覧表示
$ kafka-topics.sh --list --bootstrap-server localhost:9092
quickstart-events <= 一覧

## Topic「quickstart-events」の詳細情報を表示
$ kafka-topics.sh --describe --topic quickstart-events --bootstrap-server localhost:9092
Topic: quickstart-events        TopicId: K7xLXZkTSCGkqWHIfnAotQ PartitionCount: 1  ReplicationFactor: 1     Configs:
        Topic: quickstart-events        Partition: 0    Leader: 0       Replicas: 0Isr: 0

2)メッセージを送信

Linuxの場合

# STEP 4: WRITE SOME EVENTS INTO THE TOPIC
kafka-console-producer.sh --topic quickstart-events --bootstrap-server localhost:9092

# あとは、以下の関連記事の「Windowの場合」を参照

Apache Kafka ~ 環境構築 / Windows編 ~
https://dk521123.hatenablog.com/entry/2023/04/23/235534

3)メッセージを受信

Linuxの場合

# STEP 5: READ THE EVENTS
kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092

参考文献

http://java-study.blog.jp/archives/1075373530.html

関連記事

Apache Kafka ~ 環境構築 / Windows編 ~
https://dk521123.hatenablog.com/entry/2023/04/23/235534
Apache Kafka ~ 環境構築 / Docker compose編 ~
https://dk521123.hatenablog.com/entry/2023/04/24/153846
Apache Kafka ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/04/26/103421
Apache Kafka ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/05/01/000000
Apache Kafka ~ Kafkaコマンド ~
https://dk521123.hatenablog.com/entry/2023/05/16/000000
Apache Kafka ~ Remote debug ~
https://dk521123.hatenablog.com/entry/2023/10/23/125909
Apache Kafka ~ Strimzi ~
https://dk521123.hatenablog.com/entry/2023/05/08/000133
Apache Kafka ~ 設定値 ~
https://dk521123.hatenablog.com/entry/2023/05/28/151212
Kafka Connect ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2023/10/22/220717
Kafka Connect ~ 環境構築 / Docker compose編 ~
https://dk521123.hatenablog.com/entry/2023/08/11/220921
Kafka Connect ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/04/29/185133
Kafka Connect ~ 基本編 / PostgreSQL
https://dk521123.hatenablog.com/entry/2023/05/02/233806
Kafka Connect ~ Connector 構成プロパティ ~
https://dk521123.hatenablog.com/entry/2023/06/02/011131
Kafka Connect ~ Rest API
https://dk521123.hatenablog.com/entry/2023/05/31/000000
Amazon MSK ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/04/21/000000
Amazon MSK ~ 基本編 / Connector ~
https://dk521123.hatenablog.com/entry/2023/05/20/003516
Amazon MSK ~ AWS CLI
https://dk521123.hatenablog.com/entry/2023/06/03/003941
kafka-python ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/10/24/000309
ローカル環境のKafkaでのトラブルシュート
https://dk521123.hatenablog.com/entry/2023/10/19/210341
Terraform ~ AWS MSK ~
https://dk521123.hatenablog.com/entry/2023/05/14/122215
Terraform ~ AWS MSK Connect ~
https://dk521123.hatenablog.com/entry/2023/05/25/000000
Kafkaコネクタ ~ Kafka用Snowflakeコネクタ ~
https://dk521123.hatenablog.com/entry/2023/06/07/144114
ScalaApache Kafka / Producer ~
https://dk521123.hatenablog.com/entry/2023/04/27/235703
ScalaApache Kafka / Consumer ~
https://dk521123.hatenablog.com/entry/2023/04/28/014737
Linux環境変数あれこれ ~
https://dk521123.hatenablog.com/entry/2015/07/16/103501