CLOVER🍀

That was when it all began.

Ubuntu Linuxに、Apache Kafkaをインストールする

今後の勉強にあたり、Apache Kafkaを使ってみようかなと思いまして。

まずは、Apache Kafkaをインストールしてみたいと思います。

Apache Kafka

また、参考にしたサイトはこちら。

Apache Kafka, 他とは異なるメッセージングシステム

シシド・カフカさんが気になって調べていたら Apache Kafka 入門していたメモ - ようへいの日々精進XP

Apache Kafkaに入門した | SOTA

Apache Kafka ―入門からTrifectaを用いた可視化まで―

Apache Kafkaの説明自体は、このあたりを参照と…。

インストール

環境はUbuntu LinuxJavaOracle JDK 8がインストール済みの状態を前提とし、基本的にはQuickstartに沿って
進めていきます。

Quickstart

まずは、Apache Kafkaのバイナリをダウンロードします。

Download

現時点の最新版は0.10.2.0で、どのScalaバージョンを使ったApache Kafkaを選択するかですが、ここは
推奨されている2.12のものを使うことにしました。

ダウンロードして、展開。

$ wget http://ftp.jaist.ac.jp/pub/apache/kafka/0.10.2.0/kafka_2.12-0.10.2.0.tgz
$ tar -zxvf kafka_2.12-0.10.2.0.tgz
$ cd kafka_2.12-0.10.2.0

ZooKeeperを起動します。

$ bin/zookeeper-server-start.sh config/zookeeper.properties

daemonとして起動したい場合は、「-daemon」オプションを付与すればOKです。

$ bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

続いて、Apache Kafkaの起動。

$ bin/kafka-server-start.sh config/server.properties

こちらも、「-daemon」オプション付きでdaemonとして起動することができます。

$ bin/kafka-server-start.sh -daemon config/server.properties

ZooKeeprも、Apache Kafkaも、ログは「logs」ディレクトリに出力されるようです。

$ ls -l logs
total 80
-rw-r--r-- 1 xxxxx xxxxx 10165 Feb 25 09:22 controller.log
-rw-r--r-- 1 xxxxx xxxxx     0 Feb 25 09:20 kafka-authorizer.log
-rw-r--r-- 1 xxxxx xxxxx     0 Feb 25 09:20 kafka-request.log
-rw-r--r-- 1 xxxxx xxxxx  4394 Feb 25 09:22 kafkaServer-gc.log
-rw-r--r-- 1 xxxxx xxxxx 15546 Feb 25 09:22 kafkaServer.out
-rw-r--r-- 1 xxxxx xxxxx   725 Feb 25 09:22 log-cleaner.log
-rw-r--r-- 1 xxxxx xxxxx 21357 Feb 25 09:22 server.log
-rw-r--r-- 1 xxxxx xxxxx   684 Feb 25 09:22 state-change.log
-rw-r--r-- 1 xxxxx xxxxx     0 Feb 25 09:21 zookeeper-gc.log
-rw-r--r-- 1 xxxxx xxxxx 12098 Feb 25 09:22 zookeeper.out

これで、とりあえずApache Kafkaを使う準備が整いました。

Topicを作ってみる

そのまま手順に習い、次にTopicを作ってみます。今回はTopicの名前は、「quickstart-topic」としました。

$ bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic quickstart-topic

localhost:2181」というのは、ZooKeeperへのアクセス先ですね。

今のTopicの一覧は、「kafka-topics.sh」で確認することが可能なようです。

$ bin/kafka-topics.sh --list --zookeeper localhost:2181
quickstart-topic

Producer/Consumerを試す

Topicを作ったので、こちらを使うProducerとConsumerを作成してみます。Quickstartにもあるように、Apache Kafkaに
コンソール用のProducer/Consumerが付属しているようなので、こちらを使用。

Producerの作成。

$ bin/kafka-console-producer.sh --broker-list localhost:9092 --topic quickstart-topic

適当にメッセージを放り込みます。

Hello World!!
Hello Apache Kafka!!

Consumer側も起動します。すると、送信したメッセージを受け取ることができます。

$ bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic quickstart-topic --from-beginning
Hello World!!
Hello Apache Kafka!!

OKそうですね。

Trifectaを使ったWeb UIを見る

参考サイトを見ていると、TrifectaというWeb UIがあるようなので、こちらも導入してみましょう。

Apache Kafka ―入門からTrifectaを用いた可視化まで―

Trifecta by ldaniels528

Webサイトを見るとビルドしないといけなさそうな雰囲気ですが、GitHub上の「releases」から
最新のバイナリがダウンロードできそうなので、こちらを使ってみます。

GitHub - ldaniels528/trifecta: Trifecta is a web-based and CLI tool that simplifies inspecting Kafka messages and Zookeeper data. Additionally, the CLI tool provides the capability to import/export data to/from ElasticSearch and MongoDB.

今回は、v0.22 RC8を使用します。ダウンロードして展開。
※使っているApache Kafkaのバージョンが合わない気がしますが、とりあえずパス

$ wget https://github.com/ldaniels528/trifecta/releases/download/v0.22.0rc8-0.10.1.0/trifecta-ui-0.22.0rc8b-0.10.1.0.zip
$ unzip trifecta-ui-0.22.0rc8b-0.10.1.0.zip
$ cd trifecta-ui-0.22.0rc8b-0.10.1.0

「trifecta-ui」コマンドで、Web UIが起動します。

$ bin/trifecta-ui

「http://[Trifectaが動作しているホスト]:9000/#/inspect?mode=brokers」で、UIを見ることができます。

Topicに入っているメッセージを見ることもできるようです。

まずはこんなところではないでしょうか。これから、少しずつ使っていってみましょう。