Simplified command-line administration for Kafka brokers.
Let us know! If you fork this, or if you use it, or if it helps in anyway, we'd love to hear from you! opensource@airbnb.com
This project is released under the Apache License Version 2.0 (APLv2).
- update the version number in
lib/kafkat/version.rb
- execute
bundle exec rake release
- Install the gem.
gem install kafkat
- Create a new configuration file to match your deployment.
{
"kafka_path": "/srv/kafka/kafka_2.10-0.8.1.1",
"log_path": "/mnt/kafka-logs",
"zk_path": "zk0.foo.ca:2181,zk1.foo.ca:2181,zk2.foo.ca:2181/kafka",
"json_files_path": "/tmp"
}
Kafkat searches for this file in two places, ~/.kafkatcfg
and /etc/kafkatcfg
.
- At any time, you can run
kafkat
to get a list of available commands and their arguments.
$ kafkat
kafkat 0.0.10: Simplified command-line administration for Kafka brokers
usage: kafkat [command] [options]
Here's a list of supported commands:
brokers Print available brokers from Zookeeper.
clean-indexes Delete untruncated Kafka log indexes from the filesystem.
controller Print the current controller.
elect-leaders [topic] Begin election of the preferred leaders.
partitions [topic] Print partitions by topic.
partitions [topic] --under-replicated Print partitions by topic (only under-replicated).
partitions [topic] --unavailable Print partitions by topic (only unavailable).
reassign [topic] [--brokers <ids>] [--replicas <n>] Begin reassignment of partitions.
resign-rewrite <broker id> Forcibly rewrite leaderships to exclude a broker.
resign-rewrite <broker id> --force Same as above but proceed if there are no available ISRs.
set-replication-factor [topic] [--newrf <n>] [--brokers id[,id]] Set the replication factor of
shutdown <broker id> Gracefully remove leaderships from a broker (requires JMX).
topics Print all topics.
drain <broker id> [--topic <t>] [--brokers <ids>] Reassign partitions from a specific broker to other brokers.
verify-reassign reassign_YYYY-MM-DDThh:mm:ssZ.json Verify reassignment of partitions.
verify-replicas [--topics] [--broker <id>] [--print-details] [--print-summary] Check if all partitions in a topic have same number of replicas.
The gem needs read/write access to the Kafka log directory for some operations (clean indexes).