工作中常用的kafka命令

Kafka常用命令
以下是kafka常用命令行总结:  

1.查看topic的详细信息  /data/bin/kafka/bin//kafka-topics.sh --zookeeper 172.16.2.179:2181,172.16.1.40:2181,172.16.1.48:2181 --describe --topic test2020  
/data/bin/kafka/bin/kafka-topics.sh --zookeeper 172.16.2.179:2181,172.16.1.40:2181,172.16.1.48:2181 --describe | grep 20200403 

2、创建topic 

/data/bin/kafka/bin/kafka-topics.sh --create --zookeeper 172.16.2.179:2181,172.16.1.40:2181,172.16.1.48:2181 --replication-factor 3 --partitions 1 --topic test202002 

3、为topic增加partition  

./bin/kafka-topics.sh --zookeeper 172.16.1.40:2181,172.16.1.48:2181,172.16.2.179:2181 --alter --partitions 1 --replication-factor 2 --topic test2020  

4、kafka生产者客户端命令  

/data/bin/kafka/bin/kafka-console-producer.sh --broker-list 172.16.2.179:9092,172.16.1.40:9092,172.16.1.48:9092 --topic test2020 

5、kafka消费者客户端命令  

/data/bin/kafka/bin/kafka-console-consumer.sh --zookeeper 172.16.1.40:2181,172.16.1.48:2181,172.16.2.179:2181 --topic test2020 --from-beginning

或者

/data/bin/kafka/bin/kafka-console-consumer.sh --bootstrap-server 172.16.2.179:9092,172.16.1.40:9092,172.16.1.48:9092  --from-beginning  --topic test2020

打印时间戳:
/data/bin/kafka/bin/kafka-console-consumer.sh --bootstrap-server 172.16.2.179:9092 --topic real-a-20200414 --from-beginning --property print.timestamp=true
6、kafka服务启动  

./kafka-server-start.sh -daemon ../config/server.properties   

7、下线broker  

./kafka-run-class.sh kafka.admin.ShutdownBroker --zookeeper 127.0.0.1:2181 --broker #brokerId# --num.retries 3 --retry.interval.ms 60  

shutdown broker  

8、删除topic  

/data/bin/kafka/bin/kafka-topics.sh --zookeeper 172.16.1.40:2181,172.16.1.48:2181,172.16.2.179:2181 --delete --topic test2020

9、查看consumer组内消费的offset  

./kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --zookeeper localhost:2181 --group test --topic testKJ1


10、为topic增加副本  

./kafka-reassign-partitions.sh --zookeeper 127.0.0.1:2181 --reassignment-json-file json/partitions-to-move.json -execute

学习参考:

http://www.infoq.com/cn/articles/kafka-analysis-part-1

http://flychao88.iteye.com/category/350737

http://shift-alt-ctrl.iteye.com/blog/1930791

http://www.tuicool.com/articles/mErEZn

最后测试是否安装成功(三台都要启动):
1.进入zookeeper的bin目录,执行sh zkServer.sh start进行启动zookeeper
2.查看状态   进入bin目录,执行sh zkServer.sh status
3.停止    进入bin目录,执行sh zkServer.sh stop
4.重启   进入bin目录,执行sh zkServer.sh restart
========================================================================================================================
[root@real-kafka-1 kafka-logs]# rm -rf sz-l2-level-20190606-0

[root@real-kafka-1 kafka-logs]# rm -rf sz-l2-master-20190606-0
[root@real-kafka-1 kafka-logs]# rm -rf ss-l2-trade-plus-20190606-0

[root@real-kafka-1 kafka-logs]# rm -rf real-a-l2-20190606-0
[root@real-kafka-1 kafka-logs]# rm -rf sz-l2-trade-20190606-0

/data/bin/kafka_2.11-1.0.0/bin/kafka-topics.sh  --delete --zookeeper  localhost:2181  --topic sz-l2-master-20190606
/data/bin/kafka_2.11-1.0.0/bin/kafka-topics.sh  --delete --zookeeper  localhost:2181  --topic sz-l2-level-20190606
/data/bin/kafka_2.11-1.0.0/bin/kafka-topics.sh  --delete --zookeeper  localhost:2181  --topic ss-l2-trade-plus-20190606
/data/bin/kafka_2.11-1.0.0/bin/kafka-topics.sh  --delete --zookeeper  localhost:2181  --topic sz-l2-trade-20190606
/data/bin/kafka_2.11-1.0.0/bin/kafka-topics.sh  --delete --zookeeper  localhost:2181  --topic real-a-l2-20190606

问题:删除topic后,报错:
kafka: Failed to produce message to topic : kafka server: In the middle of a leadership election, th

解决办法:

用kafka命令执行删除操作

重启kafka

=======================================================================
解决topic没有leader的问题,查看topic对应的leader是否正常:
szl2kafka3:

/data/bin/kafka_2.11-2.1.1/bin/kafka-topics.sh  --zookeeper 127.0.0.1:2181 --topic sz-l2-master-20190716 --describe
/data/bin/kafka_2.11-2.1.1/bin/kafka-topics.sh  --zookeeper 127.0.0.1:2181 --topic sz-l2-slave-20190716 --describe
Topic:sz-l2-slave-20190715      PartitionCount:1        ReplicationFactor:1     Configs:
        Topic: sz-l2-slave-20190715     Partition: 0    Leader: -1      Replicas: 2     Isr: 2

解决办法:
重启kafka,同上删除的解决办法
=======================================================================
kafka重启后,有一台broker一直不可用,
通过grep ERR logs/*发现是这个软链接导致kafka无法加载这个topic,broker不可用。是因为:对分区文件夹用了软链接,
删除软连接,重启kafka,问题解决。

=======================================================================
有一台zookeeper启动后,查看状态是:not running
查看zookeeper.log发现,报错 :
Cannot open channel to 1 at election address /172.16.2.179:3888
java.net.SocketTimeoutException: connect timed out
经过telnet发现 3888端口不通,因为以前一直都是好的,没想过会有人动了端口,所以查了好久,才定位到端口问题。开放端口后问题解决。


kafka如何直接查看log文件中的信息
 bin/kafka-run-class.sh kafka.tools.DumpLogSegments --files /tmp/kafka-logs/test3-0/00000000000000000000.log  --print-data-log
这里 --print-data-log 是表示查看消息内容的,不加此项是查看不到详细的消息内容。如果要查看多个log文件可以用逗号分隔
用strings命令查看kafka-log内容
发表于2015-01-06
kafka的log内容格式还不没怎么了解,想快速浏览消息内容的话,除了使用它自带的 kafka-console-consumer.sh脚本,还可以直接去看log文件本身,不过内容里有部分二进制字符,通过命令看的话会有乱码。

strings 命令可以过滤掉二进制编码,但默认它也会过滤掉中文字符,只留有英文字符。要用它的 -e S参数可以同时过滤出中文或英文字符,但仍会包含了小部分的二进制编码,可以在通过iconv去掉一下,能大致看到消息内容:

$ cat log-strings.sh
#!/bin/bash

PROG_NAME=$0
LOG_FILE=$1

if [ -z "$LOG_FILE" ];then
  echo "Usage: $PROG_NAME logfile"
  exit 1
fi

strings -e S "$LOG_FILE" | iconv -c -f "UTF-8" -t "UTF-8"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值