kafka叢集擴容後的topic分割槽遷移
kafka叢集擴容後,新的broker上面不會資料進入這些節點,也就是說,這些節點是空閒的;它只有在建立新的topic時才會參與工作。除非將已有的partition遷移到新的伺服器上面;
所以需要將一些topic的分割槽遷移到新的broker上。
kafka-reassign-partitions.sh是kafka提供的用來重新分配partition和replica到broker上的工具
簡單實現重新分配需要三步:
- 生成分配計劃(generate)
- 執行分配(execute)
- 檢查分配的狀態(verify)
具體操作如下:
1. 生成分配計劃
編寫分配指令碼:
vi topics-to-move.json
內容如下:
{"topics":
[{"topic":"event_request"}],
"version": 1
}
執行分配計劃生成指令碼:
kafka-reassign-partitions.sh --zookeeper $ZK_CONNECT --topics-to-move-json-file topics-to-move.json --broker-list "5,6,7,8" --generate
執行結果如下:
[[email protected] topic_reassgin]$ kafka-reassign-partitions.sh --zookeeper $ZK_CONNECT --topics-to-move-json-file topics-to-move.json --broker-list "5,6,7,8" --generate Current partition replica assignment #當前分割槽的副本分配 {"version":1,"partitions":[{"topic":"event_request","partition":0,"replicas":[3,4]},{"topic":"event_request","partition":1,"replicas":[4,5]}]} Proposed partition reassignment configuration #建議的分割槽配置 {"version":1,"partitions":[{"topic":"event_request","partition":0,"replicas":[6,5]},{"topic":"event_request","partition":1,"replicas":[7,6]}]}
Proposed partition reassignment configuration 後是根據命令列的指定的brokerlist生成的分割槽分配計劃json格式。將 Proposed partition reassignment configuration的配置copy儲存到一個檔案中 topic-reassignment.json
vi topic-reassignment.json
{"version":1,"partitions":[{"topic":"event_request","partition":0,"replicas":[6,5]},{"topic":"event_request","partition":1,"replicas":[7,6]}]}
2. 執行分配(execute)
根據step1 生成的分配計劃配置json檔案topic-reassignment.json,進行topic的重新分配。
kafka-reassign-partitions.sh --zookeeper $ZK_CONNECT --reassignment-json-file topic-reassignment.json --execute
執行前的分割槽分佈:
[[email protected] topic_reassgin]$ le-kafka-topics.sh --describe --topic event_request
Topic:event_request PartitionCount:2 ReplicationFactor:2 Configs:
Topic: event_request Partition: 0 Leader: 3 Replicas: 3,4 Isr: 3,4
Topic: event_request Partition: 1 Leader: 4 Replicas: 4,5 Isr: 4,5
執行後的分割槽分佈:
[[email protected] topic_reassgin]$ le-kafka-topics.sh --describe --topic event_request
Topic:event_request PartitionCount:2 ReplicationFactor:4 Configs:
Topic: event_request Partition: 0 Leader: 3 Replicas: 6,5,3,4 Isr: 3,4
Topic: event_request Partition: 1 Leader: 4 Replicas: 7,6,4,5 Isr: 4,5
3. 檢查分配的狀態
檢視分配的狀態:正在進行
[[email protected] topic_reassgin]$ kafka-reassign-partitions.sh --zookeeper $ZK_CONNECT --reassignment-json-file topic-reassignment.json --verify
Status of partition reassignment:
Reassignment of partition [event_request,0] is still in progress
Reassignment of partition [event_request,1] is still in progress
[[email protected] topic_reassgin]$
檢視“is still in progress” 狀態時的分割槽,副本分佈狀態:
發現Replicas有4個哦,說明在重新分配的過程中新舊的副本都在進行工作。
[[email protected] topic_reassgin]$ le-kafka-topics.sh --describe --topic event_request
Topic:event_request PartitionCount:2 ReplicationFactor:4 Configs:
Topic: event_request Partition: 0 Leader: 3 Replicas: 6,5,3,4 Isr: 3,4
Topic: event_request Partition: 1 Leader: 4 Replicas: 7,6,4,5 Isr: 4,5
檢視分配的狀態:分配完成。
[[email protected] topic_reassgin]$ kafka-reassign-partitions.sh --zookeeper $ZK_CONNECT --reassignment-json-file topic-reassignment.json --verify
Status of partition reassignment:
Reassignment of partition [event_request,0] completed successfully
Reassignment of partition [event_request,1] completed successfully
檢視“completed successfully”狀態的分割槽,副本狀態:
已經按照生成的分配計劃正確的完成了分割槽的重新分配。
[[email protected] topic_reassgin]$ le-kafka-topics.sh --describe --topic event_request
Topic:event_request PartitionCount:2 ReplicationFactor:2 Configs:
Topic: event_request Partition: 0 Leader: 6 Replicas: 6,5 Isr: 6,5
Topic: event_request Partition: 1 Leader: 7 Replicas: 7,6 Isr: 6,7
相關推薦
kafka叢集擴容後的topic分割槽遷移
kafka叢集擴容後,新的broker上面不會資料進入這些節點,也就是說,這些節點是空閒的;它只有在建立新的topic時才會參與工作。除非將已有的partition遷移到新的伺服器上面; 所以需要將一些topic的分割槽遷移到新的broker上。 kafka-reassign-partitions.s
kafka叢集擴容(Topic遷移)
文章新地址 文章開始前推薦使用 kafka-manager 工具,可以實時檢視kafka同步狀態,broker實時讀寫流量,topic分割槽情況等資訊,提供重選最優leader等操作。 kafka的叢集擴容實際上就是把 topic 的 partiti
kafka集群擴容後的topic分區遷移
eve event haskell zook ado quest top alter 結果 kafka集群擴容後的topic分區遷移 ./bin/kafka-topics.sh --zookeeper node3:2181,node4:2181,node5:2181 -
Kafka叢集中 topic資料的分割槽 遷移到其他broker
前言 kafka叢集擴容後,新的broker上面不會資料進入這些節點,也就是說,這些節點是空閒的;它只有在建立新的topic時才會參與工作。除非將已有的partition遷移到新的伺服器上面;所以需要將一些topic的分割槽遷移到新的broker上。另外一種情況就是叢集減少broker節點,對原有的topi
Kafka動態調整topic分割槽partition
我們在使用kafka時,初期建立時所指定topic屬性需要修改,如何動態修改kafka屬性?kafka提供了命令列工具—kafka-topics.sh. kafka-topics.sh工具介紹 kafka-topics.sh工具也是我們用來建立topic、檢視top
kafka消費者連線topic分割槽失敗造成訊息大量堆積
晚上7點收到topic堆積告警,經檢查,發現消費者到topic分割槽斷連,分割槽覆蓋率下降為0,由於業務TPS高,所以幾分鐘內即形成上千萬條訊息堆積,業務成功率下降明顯,第一時間懷疑晚上高峰期業務量大,頻寬消耗大,網路不穩定造成的,所以第一時間增加消費方的超時時間(socke
kafka如何擴容伺服器、重新分割槽Partition
1. 擴容 在新的物理機上安裝kafka程式,修改config/server.properties檔案裡的broker.id必須在叢集中唯一,修改其他必要的配置項,其中zookeeper.connect配置項,寫上kafka叢集現在使用的zookeeper叢集
Kafka Topic動態遷移 (原始碼解析)
總結下自己在嘗試Kafka分割槽遷移過程中對這部分知識的理解,請路過高手指正。 本文主要側重自己對相關Kafka原始碼的理解: generateAssignment()函式 (對應上述連結原文中的 --generate 引數)產生新的遷移計劃,輸出格式為Json字串
記一次 Kafka 叢集線上擴容
前段時間收到某個 Kafka 叢集的生產客戶端反饋傳送訊息耗時很高,於是花了一段時間去排查這個問題,最後該叢集進行擴容,由於某些主題的當前資料量實在太大,在對這些主題遷移過程中話費了很長一段時間,不過這個過程還算順利,因為在遷移過程中也做足了各方面的調研,包括分割槽重平衡過程中對客戶端的影響,以及對整個叢集的
LVM邏輯卷-創建、擴容、縮減、遷移、快照
網絡 linux LVM邏輯卷邏輯卷管理工具,允許在多個物理設備之間重新組織文件系統,包括重新設定文件系統的大小PE 物理盤區,類似於磁盤中的block邏輯卷的基本存儲單位就是PEdm:device mapper將一個或多個底層塊設備組織成一個邏輯設備的模塊設備名:/dev/dm-# //系統自動
redis cluster 集群暢談(三) 之 水平擴容、slave自動化遷移
fig star init.d 物理 成功 其它 -i .html enabled 上一篇 http://www.cnblogs.com/qinyujie/p/9029522.html, 主要講解 實驗多master寫入、讀寫分離、實驗自動故障切換(高可用性
Kafka叢集內複製功能深入剖析
Kafka是一個分散式釋出訂閱訊息系統。由LinkedIn開發並已經在2011年7月成為apache頂級專案。kafka在LinkedIn, Twitte等許多公司都得到廣泛使用,主要用於:日誌聚合,訊息佇列,實時監控等。 0.8版本開始,kafka支援叢集內複製,從而提高可用性和系統穩定性,這篇文章主要概
後端介面遷移(從 webapi 到 openapi)前端經驗總結
此文已由作者張磊授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 前情提要 以前用的是 webapi 現在統一切成 openapi,欄位結構統統都變了 接入介面 20+,涉及模組的建立等主要流程。 頁面基本無改,僅有一個新需求,建立時新增一個欄位 其他依賴介面需要接入模組
Kafka叢集配置---Windows版
Kafka叢集配置---Windows版 Kafka是一種高吞吐量的分散式釋出訂閱的訊息佇列系統,Kafka對訊息進行儲存時是通過tipic進行分組的。今天我們僅實現Kafka叢集的配置。 前言 最近研究kafka,發現網上很多關於kafka的介紹都是基於Linux作業
centos7中kafka叢集環境搭建部署
一、前期準備 1、下載kafka安裝包 官方下載地址:http://kafka.apache.org/downloads.html kafka_2.11-2.0.0.tgz 2、準備好要安裝的叢集環境的目標機器(3檯安裝centos7系統) 3、將下載好的壓縮包
大資料學習之路94-kafka叢集安裝
解壓 Kafka 安裝包 修改配置檔案 config/server.properties vi server.properties broker.id=0 //為依次增長的:0、1、2、3、4,叢集中唯一id log.dirs=/kafkaData/logs // Kafka
kafka叢集安裝步驟
準備工作: 安裝好zookeeper叢集 一、上傳並解壓 1. cd /usr/kafka (沒有目錄的話自己建立) 2. rz 3. tar -zxvf kafka_2.12-1.1.0.tgz 二、2.修改配置檔案 /usr/kafka/kafka_2.12-1.
hadoop叢集啟動後,發現所有程序都在,唯獨沒有master節點的namenode程序
這個時候,去logs/目錄下檢視日誌 cat hadoop-had_user-namenode-master.log 得到結果: java.io.IOException: There appears to be a gap in the edit log. We expect
kafka消費者群組與分割槽再均衡
group.id指定了消費者所屬的消費群組,預設是必須指定的。 同一個群組裡的消費者訂閱的同一個主題,每個消費者接收主題的一部分分割槽的訊息。 如果群組裡的消費者數量超過主題的分割槽數量,就會有一部分消費者被閒置,不會接收到任何訊息。 同一個主題可以被多個消費者群組消費,消費者群組之間互
擴容虛擬機器分割槽大小
此方案只適用採用LVM卷組的分割槽形式,如何分辨呢,請看如下截圖 普通分割槽模式,sda1、2、3這樣形式 LVM形式如下,有/dev/mapper/XXX這種形式 下面是主要操作步驟: 一. 在虛擬機器上增加磁碟空間 如下圖。首先在vmvare管理客戶端上調整磁碟大小 二、調