工作中常用的kafka命令
Kafka常用命令
以下是kafka常用命令行總結(jié): ?
1.查看topic的詳細(xì)信息 ?/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、創(chuàng)建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生產(chǎn)者客戶端命令 ?
/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服務(wù)啟動 ?
./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組內(nèi)消費的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
學(xué)習(xí)參考:
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目錄,執(zhí)行sh zkServer.sh start進行啟動zookeeper
2.查看狀態(tài) ? 進入bin目錄,執(zhí)行sh zkServer.sh status
3.停止 ? ?進入bin目錄,執(zhí)行sh zkServer.sh stop
4.重啟 ? 進入bin目錄,執(zhí)行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命令執(zhí)行刪除操作
重啟kafka
=======================================================================
解決topic沒有l(wèi)eader的問題,查看topic對應(yīng)的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/*發(fā)現(xiàn)是這個軟鏈接導(dǎo)致kafka無法加載這個topic,broker不可用。是因為:對分區(qū)文件夾用了軟鏈接,
刪除軟連接,重啟kafka,問題解決。
=======================================================================
有一臺zookeeper啟動后,查看狀態(tài)是:not running
查看zookeeper.log發(fā)現(xiàn),報錯 :
Cannot open channel to 1 at election address /172.16.2.179:3888
java.net.SocketTimeoutException: connect timed out
經(jīng)過telnet發(fā)現(xiàn) 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 是表示查看消息內(nèi)容的,不加此項是查看不到詳細(xì)的消息內(nèi)容。如果要查看多個log文件可以用逗號分隔
用strings命令查看kafka-log內(nèi)容
發(fā)表于2015-01-06
kafka的log內(nèi)容格式還不沒怎么了解,想快速瀏覽消息內(nèi)容的話,除了使用它自帶的 kafka-console-consumer.sh腳本,還可以直接去看log文件本身,不過內(nèi)容里有部分二進制字符,通過命令看的話會有亂碼。
strings 命令可以過濾掉二進制編碼,但默認(rèn)它也會過濾掉中文字符,只留有英文字符。要用它的 -e S參數(shù)可以同時過濾出中文或英文字符,但仍會包含了小部分的二進制編碼,可以在通過iconv去掉一下,能大致看到消息內(nèi)容:
$ 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"
總結(jié)
以上是生活随笔為你收集整理的工作中常用的kafka命令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一道关于 json 和 slice 的题
- 下一篇: go 使用sarama写入kafka数据