KafkaToolでのZooKeeper/chroot

先日の1つのZooKeeperアンサンブルで複数のKafkaクラスタを管理させる件、KafkaToolで正常にできているかを見てみる事にする。

■ 環境

  • KafkaTool 1.0
  • Mac OSX (10.10.5)

■ KafkaTool

起動したままでは先日の設定がそのまま残っている。

kafkatool-chroot-001

Add Connection“から1つ目のKafkaクラスタの設定を追加する。”chroot path“を”/kafka1“に変更するのみである。”Test“を実行。

kafkatool-chroot-002

追加する。

kafkatool-chroot-003

2つ目のKafkaクラスタは1つ目の設定を”Clone“してみた。こちらも”chroot path“を”/kafka2“に変更するのみである。

kafkatool-chroot-004

無事認識されているようである。

kafkatool-chroot-005

以上。

■ 関連

ZooKeeper:Kafka=1アンサンブル:2クラスタ

1つのApache ZooKeeperに、Apache Kafkaの2クラスタを管理させてみる。

■ 環境

  • Apache ZooKeeper 3.4.6
  • Apache Kafka 0.8.2.1
  • Mac OSX (10.10.5)

■ ZooKeeper

HomebrewでインストールしたものをStandaloneで起動する。設定はデフォルトまま。

$ zkServer start
JMX enabled by default
Using config: /usr/local/etc/zookeeper/zoo.cfg
Starting zookeeper ... STARTED
$

ちなみにデータは事前に空にしておいた。”zoo.cfg“の”dataDir“で設定しているディレクトリをすべて削除してある。

■ Kafka

1つめのKafkaクラスタを起動する。クラスタと言っても今回は1台のみとしている。設定ファイルは下記を編集した。

  • port
  • log.dirs
  • zookeeper.connect

今回は1つのホスト上(Mac)にKafkaを2プロセス稼働させているので、”port“と”log.dirs“も編集する必要があった。

$ cd /usr/local/etc/kafka
$ cp server.properties server1.properties
$ vi server1.properties
  :
port=9092
  :
log.dirs=/usr/local/var/lib/kafka-logs/kafka1
  :
zookeeper.connect=localhost:2181/kafka1
  :
$

1つ目のKafkaの設定は以上。項目を抜き出すと下記。

  • port=9092
  • log.dirs=/usr/local/var/lib/kafka-logs/kafka1
  • zookeeper.connect=localhost:2181/kafka1

起動する。

$ kafka-server-start.sh -daemon /usr/local/etc/kafka/server1.properties

続いて2つ目のKafkaを起動する。設定ファイルは”server2.properties“とし、下記項目を編集している。

  • port=9093
  • log.dirs=/usr/local/var/lib/kafka-logs/kafka2
  • zookeeper.connect=localhost:2181/kafka2

起動する。

$ kafka-server-start.sh -daemon /usr/local/etc/kafka/server2.properties

プロセスを確認。

$ jps
72016 Jps
72003 Kafka
71994 QuorumPeerMain
72014 Kafka
$

Kafka“が2つ稼働していることがわかる。

■ znode

続いてznodeを確認してみる。

$ zkCli
Connecting to localhost:2181
Welcome to ZooKeeper!
JLine support is enabled
[zk: localhost:2181(CONNECTED) 0] ls /
[kafka2, zookeeper, kafka1]
[zk: localhost:2181(CONNECTED) 1] ls /kafka1
[admin, consumers, controller, controller_epoch, brokers, config]
[zk: localhost:2181(CONNECTED) 2]
[zk: localhost:2181(CONNECTED) 2] ls /kafka2
[admin, consumers, controller, controller_epoch, brokers, config]
[zk: localhost:2181(CONNECTED) 3]
[zk: localhost:2181(CONNECTED) 3]

それぞれ別のznodeとなり、1組のZooKeeperアンサンブルで複数のKafkaクラスタを管理できることがわかる。今回は1台のMac上でKafkaを複数プロセス稼働させているので設定項目も増えてしまったが、本来の使い方であれば”zookeeper.connect“の設定のみでいけるであろう。

以上。

■ 関連

KafkaToolでTopicを作成

表題の通り。Apache Kafkaの情報を見ることができるKafkaToolを使って、Topicを作成してみる。

■ 環境

  • Apache Kafka 0.8.2.1
  • Kafka Tool 1.0
  • Mac OSX (10.10.5)

■ ZooKeeper & Kafka

KafkaToolを起動する前に、ZooKeeperとKafkaを起動しておく。今回は1台ずつのみでクラスタは組まない。

$ zkServer start
JMX enabled by default
Using config: /usr/local/etc/zookeeper/zoo.cfg
Starting zookeeper ... STARTED
$
$ kafka-server-start.sh -daemon /usr/local/etc/kafka/server.properties
$

■ KafkaTool

起動して接続する。

kafkatool-topic-001

kafkatool-topic-002

上部にある『+』からTopicを作成する。

kafkatool-topic-003

Partition Count“/”Replica Count“が設定できるようだ。今回はデフォルトままの”1“にしておく。特にクラスタが1台であるので”Replica Count“を指定しても意味を成さないので。

kafkatool-topic-004

いろいろとTopicに関する情報を得ることができる。

kafkatool-topic-005

kafkatool-topic-006

kafkatool-topic-007

実際のデータを閲覧することもできそうだ。

以上。

■ 関連

KafkaTool

表題の通り。Kafkaをインストールする際に`brew search kafka`の結果を見ていて”kafka-tool“というのが気になり見てみたところ、Kakfaのデータ等を見ることができそうなツールであったので試してみることにした。

■ 環境

  • Apache Kafka 0.8.2.1
  • Mac OSX
  • Kafka Tool 1.0

■ Kafka Tool

kafkatool-001

http://www.kafkatool.com/

DOWNLOAD“よりMacのバイナリをダウンロードした。ダウンロードされたファイルは”kafkatool.dmg“である。これをダブルクリックして実行する。

kafkatool-002

Kafka Tool Installer“をダブルクリックしてインストールする。

kafkatool-003

kafkatool-004

kafkatool-005

kafkatool-006

起動してみる。

kafkatool-007

初回起動時なので設定を入力する必要があるようである。Kafkaクラスタは先日のエントリの通りに起動している。

kafkatool-008

Cluster name“には”localcluster“と付けている。ZooKeeperはローカルにデフォルト設定で起動しているのでそのまま利用。”ping“で試す。

kafkatool-009

kafkatool-010

OKであったので”Test“を押して確認。設定を追加するか?と尋ねられたので”Yes“で追加。

kafkatool-011

現状ではデータの投入等していないので見られるのはこの程度であるが、”Broker“の設定や”Topic“などいろいろ見ることができそうである。

以上。

■ 関連

kafka-server-stop.shで気をつけること

Apache Kafkaにおいて表題の通り。

■ 環境

  • Apache Kafka 0.8.2.1

■ kafka-server-stop.sh

`kafka-server-stop.sh`を実行する際に気をつけなければいけない点がある。先日のエントリにあるような1サーバに複数のKafkaサーバ(Broker)のプロセスを稼働させている場合、`kafka-server-stop.sh`で停止をしようとすると全てのKafkaサーバが停止してしまう。

そもそも`kafka-server-stop.sh`には引数が存在しないので中身を見てみると下記のようになっている。

$ cat /usr/local/Cellar/kafka/0.8.2.1/libexec/bin/kafka-server-stop.sh
#!/bin/sh
  :
ps ax | grep -i 'kafka\.Kafka' | grep java | grep -v grep | awk '{print $1}' | xargs kill -SIGTERM

`kill`で”kafka.Kafka“の全てのプロセスを停止させているだけである。

`kill`で殺して良いのだな、という発見もあるが、ちょっと乱暴である気もする。

1台で複数のKafkaサーバを起動している場合には注意が必要だ。

以上。

■ 関連