quick start
1、查看broker id(通过zookeeper)
cd /usr/lib/kafka/bin
./zookeeper-shell.sh localhost:2181 /进入zookeeper
ls /brokers/ids
[15, 13, 14]//这些就是kafka的brokers的broker id
quit//退出zookeeper shell
2、创建topic
cd /usr/lib/kafka/bin
1)普通
./kafka-create-topic.sh --topic demo1 --broker tw-node127:9092 --zookeeper tw-node127
2)
./kafka-create-topic.sh --topic demo2 --broker tw-node127:9092 --zookeeper tw-node127 tw-node128 --partition2 --replica2 --replica-assignment-list 4:5,5:6
--partition:指定partition个数,默认值为1。
--replica:设置该topic中各个partition的备份数(replication factor)。
--replica-assignment-list:手动设置分配各broker处理的replica。这里依次输入处理各个partition下各replica的broker id。处理同一个partition的不同replica的broker id用冒号(“:”)分隔;处理不同partition的broker id用逗号(“,”)分隔,2个partition,每个partition各2个replica。第一个partition的两个replica分别分配给broker id为4和5的broker;第二个partition的两个replica分别分配给broker id为5和6的broker。--replica-assignment-list 4:5,5:6
3)安全
./kafka-create-topic.sh --zookeeper tw-node127,tw-node128 --topic demo4 --broker tw-node127:9092 --principal alice --keytab /tmp/alice.keytab
3、查看topic
1)
./kafka-list-topic.sh --zookeeper tw-node127
topic: demo1 partition:0 leader:6 replicas:6 isr: 6
topic: demo2 partition:0 leader:4 replicas: 4,5 isr: 4,5
topic: demo2 partition:1 leader:5 replicas: 5,6 isr: 5,6
2)
./kafka-list-topic.sh --zookeeper tw-node127 --topic demo1
topic: demo1 partition:0 leader:6 replicas:6 isr: 6
3)假如集群中broker.id=4的broker失效
./kafka-list-topic.sh --zookeeper tw-node127 --unavailable-partitions
topic: demo partition:2 leader: -1 replicas:4 isr:
./kafka-list-topic.sh --zookeeper tw-node127 --under-replicated-partitions
topic: demo partition:2 leader: -1 replicas:4 isr:
topic: demo2 partition:0 leader:5 replicas: 4,5 isr: 5
• --unavailable-partitions:如果加上这个参数,则只显示leader失效的partition。
• --under-replicated-partitions:如果加上这个参数,则只显示replica个数少于设置的个数
的partition。
4、producer通过键盘发送消息
1)
./kafka-console-producer.sh --broker-list tw-node127:9092 --topic demo1
Hello
World
2)开安全
./kafka-console-producer.sh --broker-list tw-node127:9092 --topic demo1 --principal alice --keytab /tmp/alice.keytab
Hello
World
注意,要执行此操作,alice必须对demo1有W权限,权限管理细节请见Kafka权限管理。
5、consumer消费消息
1)
./kafka-console-consumer.sh --topic demo1 --zookeeper tw-node127:2181
2)开安全
./kafka-console-consumer.sh --topic demo1 --zookeeper tw-node127 --principal alice --keytab /tmp/alice.keytab
注意,要执行此操作,alice必须对demo1有R权限,权限管理细节请见Kafka权限管理。