kafka之真香腳本(一)

寫在前面

假如有一天,你單位業(yè)務(wù)不斷增長(zhǎng)發(fā)財(cái)了。有天老板說(shuō)我們需要增加kafka集群節(jié)點(diǎn),這是怎莫辦?那就新增加一臺(tái)機(jī)器唄!很簡(jiǎn)單我們只需要從已經(jīng)部署好的Kafka節(jié)點(diǎn)中復(fù)制相應(yīng)的配置文件,然后把里面的broker id修改成全局唯一的,最后啟動(dòng)這個(gè)節(jié)點(diǎn)即可將它加入到現(xiàn)有Kafka集群中。
那問(wèn)題也就來(lái)了,我們發(fā)現(xiàn)新的節(jié)點(diǎn)并不能負(fù)載之前的舊數(shù)據(jù),只能對(duì)新增加的Topic進(jìn)行負(fù)載,不能對(duì)舊數(shù)據(jù)進(jìn)行負(fù)載很是浪費(fèi)資源。
這里介紹個(gè)kafka對(duì)分區(qū)重新分配的神器腳本:
kafka-reassign-partitions.sh

一. 分區(qū)重新分配

1.1 指定需要分區(qū)的Topic

  • 這里配制成json文件形式
    cat topic-partition.json
{
 "topics": [
 {
   "topic":"your topic's name"
 }
],
 "version":1
}

1.2 生成執(zhí)行計(jì)劃

  • 執(zhí)行腳本
    kafka-reassign-partitions.sh --zookeeper 你的zookeeperIP:PORT --topics-to-move-json-file topic-partition.json --broker-list "0,1" --generate
  • 參數(shù)說(shuō)明
    --broker-list "0,1" 0,1代表kafka節(jié)點(diǎn)的broker.id 包含新舊節(jié)點(diǎn)啊
  • 保存結(jié)果
    cat result.json
    內(nèi)容(示例)
{
    "version": 1,
    "partitions": [{
        "topic": "your topic's name",
        "partition": 4,
        "replicas": [0],
        "log_dirs": ["any"]
    }, {
        "topic": "your topic's name",
        "partition": 1,
        "replicas": [1],
        "log_dirs": ["any"]
    }, {
        "topic": "your topic's name",
        "partition": 2,
        "replicas": [0],
        "log_dirs": ["any"]
    }, {
        "topic": "your topic's name",
        "partition": 3,
        "replicas": [1],
        "log_dirs": ["any"]
    }, {
        "topic": "your topic's name",
        "partition": 0,
        "replicas": [0],
        "log_dirs": ["any"]
    }]
}

1.3 執(zhí)行執(zhí)行計(jì)劃

  • 執(zhí)行腳本
    kafka-reassign-partitions.sh --zookeeper 你的zookeeperIP:PORT --reassignment-json-file result.json --execute

1.4 驗(yàn)證

  • 執(zhí)行腳本
    kafka-reassign-partitions.sh --zookeeper 你的zookeeperIP:PORT --reassignment-json-file result.json --verify
  • 結(jié)果示例
Status of partition reassignment:
Reassignment of partition topic-1 completed successfully
Reassignment of partition topic-4 completed successfully
Reassignment of partition topic-2 completed successfully
Reassignment of partition topic-3 completed successfully
Reassignment of partition topic-0 completed successfully

1.5 簡(jiǎn)化操作
我們可以仿照1.2結(jié)果示例自己編輯一份執(zhí)行計(jì)劃,然后按照1.3操作就行,前提是你要熟悉分區(qū),并分配均勻。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過(guò)簡(jiǎn)信或評(píng)論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

  • 寫在前面 上篇文章我們介紹了新增節(jié)點(diǎn)后分區(qū)怎么重新負(fù)載,但這種情況很少發(fā)生。因?yàn)閗afka單機(jī)負(fù)載能力很是強(qiáng)悍,一...
    瘋狂的羊閱讀 541評(píng)論 0 1
  • 問(wèn)題的起因 最近做一次Kafka的副本數(shù)調(diào)整,從雙副本調(diào)整為三副本時(shí)出現(xiàn)了一次副本不同步的問(wèn)題,我們使用的kafk...
    何約什閱讀 1,651評(píng)論 0 1
  • kafka的基本管理命令都在安裝目錄下面的bin文件夾。跳轉(zhuǎn)到安裝目錄,可以執(zhí)行一下基本的管理命令,比如創(chuàng)建...
    liwsh閱讀 537評(píng)論 0 2
  • 在軟件項(xiàng)目的生命周期中,開(kāi)發(fā)只占開(kāi)始的一小部分,大部分時(shí)間我們要對(duì)項(xiàng)目進(jìn)行運(yùn)行維護(hù),Kafka相關(guān)的項(xiàng)目也不例外。...
    柴詩(shī)雨閱讀 8,274評(píng)論 0 7
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月,有人笑有人哭,有人歡樂(lè)有人憂愁,有人驚喜有人失落,有的覺(jué)得收獲滿滿有...
    陌忘宇閱讀 8,832評(píng)論 28 54

友情鏈接更多精彩內(nèi)容