可在集群任何节点执行
opt/kafka_2.11-0.10.0.0/bin/kafka-topics.sh --describe --zookeeper hadoop:12181,spark:12181/kafka10 --topic nongfunginxlog
2.验证所指定的一个或多个Topic下每个Partition对应的所有Replica是否都同步
opt/kafka_2.11-0.10.0.0/bin/kafka-replica-verification.sh --broker-list hadoop:19092,spark:19092 --topic-white-list nongfunginxlog
3.有了Replication机制后,每个Partition可能有多个备份。某个Partition的Replica列表叫作AR(Assigned Replicas),AR中的第一个Replica即为“Preferred Replica”。创建一个新的Topic或者给已有Topic增加Partition时,Kafka保证Preferred Replica被均匀分布到集群中的所有Broker上。理想情况下,Preferred Replica会被选为Leader。以上两点保证了所有Partition的Leader被均匀分布到了集群当中,这一点非常重要,因为所有的读写操作都由Leader完成,若Leader分布过于集中,会造成集群负载不均衡。但是,随着集群的运行,该平衡可能会因为Broker的宕机而被打破,该工具就是用来帮助恢复Leader分配的平衡
4.均衡topic的partition的leader到各个节点,使每个broker的负载能够均衡承担,增加稳定性,可用性(特别适用于某些broker重新回复到ISR中时,进行topic的各partitions leader的均衡分布
同时,与运行该工具前相比,Leader的分配更均匀
$KAFKA_HOME/bin/kafka-preferred-replica-election.sh --zookeeper hadoop:12181,spark:12181/kafka10
注:
除了手动运行该工具使Leader分配均匀外,Kafka还提供了自动平衡Leader分配的功能,该功能可通过将auto.leader.rebalance.enable
设置为true开启,它将周期性检查Leader分配是否平衡,若不平衡度超过一定阈值则自动由Controller尝试将各Partition的Leader设置为其Preferred Replica。检查周期由leader.imbalance.check.interval.seconds
指定,不平衡度阈值由leader.imbalance.per.broker.percentage
指定。
5.查看kafka topic在zookeeper上的状态:
leader
opt/zookeeper-3.4.11/bin/zkCli.sh -server hadoop:12181
查看brokerid(cluster broker是否正常)
get /kafka10/brokers/ids/1
get /kafka10/brokers/ids/0
follower
opt/zookeeper-3.4.11/bin/zkCli.sh -server spark:12181
6.
a)查看redis 保存offset 时间
keys * 得到时间戳
b)date -d @时间戳
c)查看kafka进入消息
7.kill当前机器运行的 kafka-console-consumer.sh
cat killKafkaConsole.sh
#! /bin/bash
kafkaconsolePid=`jps | grep -v grep | grep ConsoleConsumer | cut -d " " -f 1 `
#echo $kafkaconsolePid
kill -9 ${kafkaconsolePid}
echo "is done"
8.查看topic
kafka-topics.sh --describe --zookeeper hadoop:2181/kafka10 --topic nongfunginxlog
opt/kafka_2.11-0.10.0.0/bin/kafka-topics.sh --describe --zookeeper spark:12181,hadoop:12181/kafka10 --topic test
9.修改topic的配置项
opt/kafka_2.11-0.10.0.0/bin/kafka-topics.sh --alter --zookeeper spark:12181,hadoop:12181/kafka10 --topic nongfunginxlog --partitions 2
10.收集topic接收到的数据
/home/sznongfu/opt/kafka_2.11-0.10.0.0/bin/kafka-console-consumer.sh --zookeeper hadoop:12181,spark:12181/kafka10 --topic __consumer_offsets >> /tmp/test
/home/sznongfu/opt/kafka_2.11-0.10.0.0/bin/kafka-console-consumer.sh --zookeeper hadoop:12181,spark:12181/kafka10 --topic nongfunginxlog >>/tmp/kafkaRM-7.1.dat &
/home/sznongfu/opt/kafka_2.11-0.10.0.0/bin/kafka-console-consumer.sh --zookeeper hadoop:12181,spark:12181/kafka10 --topic nongfunginxlog