Apache Kafkaをインストールして、コマンドラインツールを試す
Apache Kafkaをインストールして、produce, consumeしてみたメモです。
Apache Kafkaをインストールして、コマンドラインツールからproduce, consumeを試して動作確認してみました。
kafkaは色々な使い方が出来、設定もたくさんありますが、とりあえずデフォルトの設定で試してみます。
下記バージョンで試してみます。
O'Reilly本を基本に下記サイトを参考にしました。
https://kafka.apache.org/
https://kafka.apache.org/quickstart
zookeeper install
Kafkaではzookeeperでメタデータを管理してるので、先にzookeeperをインストールします。
https://zookeeper.apache.org/releases.html#download
https://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html
本家から最新をダウンロードして、解凍し、/usr/local/zookeeper に配置しました。
$ cd src/ $ wget http://ftp.jaist.ac.jp/pub/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz $ ll -rw-rw-r-- 1 pppurple pppurple 37191810 7月 16 12:40 zookeeper-3.4.13.tar.gz $ tar -zxf zookeeper-3.4.13.tar.gz $ sudo mv zookeeper-3.4.13 /usr/local/zookeeper $ sudo vi /usr/local/zookeeper/conf/zoo.cfg tickTime=2000 dataDir=/var/lib/zookeeper clientPort=2181 $ sudo /usr/local/zookeeper/bin/zkServer.sh start
kafka install
Kafkaをインストールします。
https://www.apache.org/dyn/closer.cgi?path=/kafka/2.0.0/kafka_2.11-2.0.0.tgz
本家から最新をダウンロードして、解凍し、/usr/local/kafka に配置しました。
$ wget http://ftp.jaist.ac.jp/pub/apache/kafka/2.0.0/kafka_2.11-2.0.0.tgz $ ll -rw-rw-r-- 1 pppurple pppurple 55751827 7月 29 05:01 kafka_2.11-2.0.0.tgz $ tar -zxf kafka_2.11-2.0.0.tgz $ sudo mv kafka_2.11-2.0.0 /usr/local/kafka $ sudo mkdir /tmp/kafka-logs $ sudo /usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
動作確認
kafkaのアーカイブにコマンドラインツールが入っているので、それを使ってproducerとconsumerを操作してみようと思います。
はじめにkafka-topics.shを利用してしてtopicを作成します。
testという名前で作成します。zookeeperのホスト、ポートを指定し、partitionは1にします。
$ /usr/local/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test Created topic "test".
topicが作成されたことを確認。
$ /usr/local/kafka/bin/kafka-topics.sh --list --zookeeper localhost:2181 test $ /usr/local/kafka/bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic test Topic:test PartitionCount:1 ReplicationFactor:1 Configs: Topic: test Partition: 0 Leader: 0 Replicas: 0 Isr: 0
kafka-console-producer.shを使用して、producerを立ち上げてメッセージを送信してみます。
--broker-listでbrokerのホスト、ポートを指定し、testトピックを指定します。
$ /usr/local/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test >my test message. >my test message!!!! >my new test message!
同時にconsumerを立ち上げておいて、メッセージを取得出来ることを確認してみます。
kafka-console-consumer.shを使用して、consumerを立ち上げてメッセージを取得します。
--bootstrap-serverでbrokerのホスト、ポートを指定し、testトピックを指定します。
--from-beginningを指定して、一番最初のoffsetからメーッセージをpullします。
$ /usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning my test message. my test message!!!! my new test message!
producerで送信したメッセージを取得出来ました。
次はjava clientで試そうと思います。
終わり。