本篇文章給大家分享的是有關kafka的命令管理是什么,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
一:主題管理
1:創建主題,分區8個,副本為2(副本數不能超過集群中broker數)
bin/kafka-topics.sh --bootstrap-server 192.168.1.131:9092 --create --topic mytopic --replication-factor 2 --partitions 8
2:修改主題分區(主題分區只能添加,不能刪除)
bin/kafka-topics.sh --bootstrap-server 192.168.1.131:9092 --alter --topic mytopic --partitions 10
3:刪除主題
bin/kafka-topics.sh --bootstrap-server 192.168.1.131:9092 --delete --topic mytopic
4:列出全部主題
bin/kafka-topics.sh --bootstrap-server 192.168.1.131:9092 --list
5:查看主題詳細
bin/kafka-topics.sh --bootstrap-server 192.168.1.131:9092 --describe
6:列出不同步的主題
bin/kafka-topics.sh --bootstrap-server 192.168.1.131:9092 --describe --under-replicated-partition
7:列出沒有lender的主題
bin/kafka-topics.sh --bootstrap-server 192.168.1.131:9092 --describe --under-replicated-partition
二:動態默認配置
1:修改主題參數(消息保留時間設為1小時,entitiy-type topics 指明覆蓋主題配置)
bin/kafka-configs.sh --zookeeper 192.168.1.131:2181 --alter --entity-type topics --entity-name mytopic --add-config retention.ms=3600000
2:修改brokers默認配置
bin/kafka-configs.sh --bootstrap-server 192.168.1.131:9092 --alter --entity-type brokers --entity-name 0 --add-config num.io.threads=10
3:修改客戶端默認配置
bin/kafka-configs.sh --zookeeper 192.168.1.131:2181 --alter --entity-type clients --entity-name admin --add-config producer_bytes-rate=10
4:移除動態配置
bin/kafka-configs.sh --zookeeper 192.168.1.131:2181 —alter —entity-type topics —entity-name mytopic —delete-config retention.ms
5:查看動態配置
bin/kafka-configs.sh --zookeeper 192.168.1.131:2181 —describe —entity-type topics —entity-name mytopic
三:分區管理(Kafka提供兩個腳本管理分區,一個用于重新選舉首領,一個用于將分區分配給broker,結合這兩個工具,就可以實現集群流量的負載均衡。使用多個分區副本可以提升可靠性,不過只有其中一個副本可以成為分區首領,只有首領所在broker可以進行生產和消費活動。Kafka將副本清單第一個同步副本選為首領,但在關閉并重啟broker之后,并不會自動恢復原先的首領身份。broker有一個配置可以用于啟動自動首領再均衡,不過不建議在生產環境使用該功能。)
1:啟動分區選舉(kafka默認選舉)
bin/kafka-preferred-replica-election.sh --zookeeper 192.168.1.131:2181
2:啟動分區選舉并指明選舉首領(寫入在配置文件)
bin/kafka-preferred-replica-election.sh --zookeeper 192.168.126.128:2181 —path-to-json-file partitons.json
3:修改分區副本
有時需要修改分區副本,以下時需要修改分區副本的場景
1.主題分區在整個集群的不均衡分布造成集群負載不均衡
2.broker離線造成分區不同步
3.新加入的broker需要從集群獲得負載。
可以使用Kafka-reassign-partitions.sh 工具來修改分區。
第一步:根據broker清單和主題清單生成一組遷移步驟;
第二步,執行遷移步驟;
第三步:可以使用生成的遷移步驟驗證分區重分配的進度和完成情況。
示例:為topics.json文件里的主題生成遷移步驟,將這些主題遷移到broker0和broker1上。
bin/kafka-reassign-partitions.sh --zookeeper 192.168.1.131:2181 —generate —topics-to-move-json-file topics.json —broker-list 0,1
這個工具會在控制臺輸出兩個json,分別描述里當前分區和建議分區分配方案,可以把第一個json保存起來,以備回滾。
第二個json應該被保存到另一個文件,作為kafka-reassign-partitons.sh工具的輸入來執行第二個步驟。
示例:使用reassign.json來執行建議的分區分配方案
bin/kafka-reassign-partitions.sh --zookeeper 192.168.1.131:2181 —execute —reassignment-json-file reassign.json
該命令會將指定分區的副本重新分配到新的broker上。
在重分配進行過程中或完成之后,可以使用kafka-reassign-partitions.sh工具驗證重分配的狀態。
示例:驗證reassign.json文件里指定的分區重分配情況。
bin/kafka-reassign-partitions.sh --zookeeper 192.168.1.131:2181 —verify —reassignment-json-file reassign.json
以上就是kafka的命令管理是什么,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。