記一次 Kafka 磁盤被寫滿的排查經歷

開篇扯犢子

今天踏進辦公聽到不是同事的早安,而是“有一個好消息,一個壞消息,你想聽哪個?” 我一愣,心想“大早上,就要玩刺激的嗎?” 但是還是淡定的回復說“無所謂,哥什么場面沒見過,直說吧,別繞彎子了” 但是心里已經開始慌了,哈哈,就是這么脆弱。。。

他說 “我們的 Kafka 集群掛了,磁盤被打滿了”,我瞬間心跳飆升,然后他補充說 “好消息是測試環境”,我 ”你在跟我玩過山車嗎,以后先說好消息“

雖說這是測試環境,但是還有好多甲方爸爸在用的,我得趕緊在他們開工之前先把環境恢復了呀。

迅速打開電腦,登錄環境。。。這個過程中我回憶了一下,我貌似沒有處理過這種問題,因為我們的生產環境是有告警的,是不可能讓 Kafka 被寫滿的。

遇事不要慌,更何況是測試環境,。

先看一下監控指標,哦不對,Kafka 集群已經掛了,收集不到指標了。。。看🧶

算了直接登錄環境,直截了當,找到數據最多的topic,刪數據吧。哦,對了,這里提醒大家,Kafka 中 topic 是一個邏輯概念,真正放數據的地方是 topic 中的 partition。

清理數據

查看數據量較大的 partition

cd /data/kafka
du -h --max-depth=1 | sort -hr | head -10
# 然后根據情況清空 partition
rm -f <partition>/*
# 查看磁盤使用
df -Th

啟動 Kafka

sudo systemctl start kafka

查看 Kafka 狀態

tail -f /var/log/kafka/server.log

這時候發現了一個 broker 一直打印錯誤日志,而且無法執行 Kafka 命令行。

[2025-06-24 10:24:43,351] INFO [Admin Manager on Broker 89]: Error processing create topic request CreatableTopic(name='__consumer_offsets', numPartitions=30, replicationFactor=3, assignments=[], configs=[CreatableTopicConfig(name='compression.type', value='producer'), CreatableTopicConfig(name='cleanup.policy', value='compact'), CreatableTopicConfig(name='segment.bytes', value='41943040')]) (kafka.server.ZkAdminManager)
org.apache.kafka.common.errors.InvalidReplicationFactorException: Replication factor: 3 larger than available brokers: 0.

這是一個三節點的 kafka 集群,為什么會有一個啟動失敗,看日志的信息是這個 broker 認為集群中只有它自己一個broker。那么大概率是與元數據有關系,元數據是存儲在 zookeeper 中,那么看一下 zookeeper的狀態吧。

排查解決問題

使用如下命令查看每個 zookeeper 集群中每個實例的狀態,果然有一個實例的 Zxid 與其他兩個是不同的,說明這個 zookeeper 集群發生了腦裂。當時解決問題太匆忙,沒有截圖。。。

echo stat|nc localhost 2181

解決辦法是刪除出問題的 zookeeper 的 epoch 文件,然后重啟 zookeeper,讓它重新加入集群并創建 epoch 文件。

cd /var/lib/zookeeper/version-2/
ls -l|grep Epoch
rm -f acceptedEpoch currentEpoch

重啟 zookeeper 后,問題解決,再次查看 zookeeper 集群,已經正常,同時 kafka 集群也恢復正常。
zookeeper 集群狀態

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/86741.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/86741.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/86741.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python多線程:各線程的輸出在控制臺中同一行原因分析

代碼例子 import threading import timedef error_worker():print("子線程開始")time.sleep(1)raise Exception("子線程出錯了&#xff01;")t threading.Thread(targeterror_worker) t.start()print("主線程繼續執行&#xff0c;不受子線程異常影響…

Promptify與ReActAgent

一、Promptify 定位&#xff1a;NLP 任務的「自動化流水線」 1. 解決什么問題&#xff1f; 傳統 LLM 應用開發痛點&#xff1a; 反復調試&#xff1a;需手工編寫/調整 prompt 格式&#xff08;如調整分隔符、示例數量&#xff09;兼容性差&#xff1a;不同模型需重寫適配代碼…

如何將視頻從 iPhone 發送到 Android 設備

如果您想將視頻從 iPhone 發送到 Android 設備&#xff0c;尤其是視頻尺寸較大時&#xff0c;您需要一種高效的傳輸方法。本文將為您提供 7 種實用方法&#xff0c;讓您輕松發送大型視頻文件或短視頻片段&#xff0c;并且不會損失視頻質量。 第 1 部分&#xff1a;如何通過 iRe…

Stable Diffusion入門-ControlNet 深入理解 第四課:風格遷移與重繪控制模型——讓AI也有“藝術天賦”!

大家好&#xff0c;歡迎回到 Stable Diffusion入門-ControlNet 深入理解 系列的第四課&#xff01; 如果你還沒有看過上一課&#xff0c;趕緊補課哦&#xff1a;Stable Diffusion入門-ControlNet 深入理解 第三課。 上一課我們講解了 ControlNet 結構類模型&#xff0c;今天我…

國產鴻蒙系統開放應用側載,能威脅到Windows地位嗎?

上個月華為正式發布了 HarmonyOS PC 操作系統&#xff0c;關于生態方面大家其實一直蠻擔心。 例如不兼容Windows應用、不支持應用側載等。 不過&#xff0c;在最近舉行的華為開發者大會 2025 電腦分論壇上&#xff0c;華為終端 BG 平板與 PC 產品線總裁&#xff08;朱懂東&am…

Linux登錄檢查腳本

登錄檢查腳本 提高兼容性&#xff08;適應不同Linux發行版&#xff09;增強可視化效果和可讀性增加關鍵資源警戒提示優化表格對齊和顏色使用添加系統安全狀態檢查 #!/bin/bash# 改進版系統登錄提示腳本 # 優化點&#xff1a;兼容性增強、資源警戒提示、表格美化、安全狀態檢查…

jenkinsfile調用groovy

先決條件 gitlab存放jenkinsfile以及groovy代碼,jenkins我個人使用的是2.486具體的部署方法自己搞定,一堆文檔. gitlab創建一個devops8項目組以及my-jenkins-demo2項目用于演示過程 創建群組 這里已經創建好相關群組. 進入群組創建新項目 創建一個空白項目 配置項目選項 說明…

Ubuntu20.04離線安裝Realtek b852無線網卡驅動

最近有個項目&#xff0c;需要在 Ubuntu20.04 LTS 下開發&#xff0c;首先是安裝 Linux&#xff0c;我們可以從下面的網址下載&#xff1a; https://releases.ubuntu.com/20.04/ 本以為一切順利&#xff0c;結果剛開始就給我整不會了。我的電腦是聯想設計師GeekPro7&#xff…

1 Studying《Computer Architecture A Quantitative Approach》5-7

目錄 5 Thread-Level Parallelism 5.1 Introduction 5.2 Centralized Shared-Memory Architectures 5.3 Performance of Symmetric Shared-Memory Multiprocessors 5.4 Distributed Shared-Memory and Directory-Based Coherence 5.5 Synchronization: The Basics 5.6 M…

融智興科技: RFID超高頻柔性抗金屬標簽解析

在當今科技飛速發展的時代&#xff0c; RFID技術憑借其獨特的優勢&#xff0c;在眾多領域得到了廣泛應用。然而&#xff0c;在金屬環境中&#xff0c;傳統RFID標簽往往面臨著諸多挑戰&#xff0c;如信號干擾、識別距離短等問題。融智興科技推出的RFID 超高頻柔性抗金屬標簽&…

PHP Error: 深入解析與解決策略

PHP Error: 深入解析與解決策略 引言 PHP作為世界上最流行的服務器端腳本語言之一,在全球范圍內被廣泛使用。然而,在PHP的開發過程中,錯誤處理是一個非常重要的環節。本文將深入探討PHP錯誤處理的相關知識,包括錯誤類型、錯誤配置、錯誤日志以及常見的錯誤解決策略。 PH…

零基礎langchain實戰二:大模型輸出格式化成json

零基礎langchain實戰一&#xff1a;模型、提示詞和解析器-CSDN博客 書接上文 大模型輸出格式化 在下面例子中&#xff1a;我們需要將大模型的輸出格式化成json。 import os from dotenv import load_dotenvload_dotenv() # 加載 .env 文件 api_key os.getenv("DEEPS…

高通手機跑AI系列之——人臉變化算法

環境準備 手機 測試手機型號&#xff1a;Redmi K60 Pro 處理器&#xff1a;第二代驍龍8移動--8gen2 運行內存&#xff1a;8.0GB &#xff0c;LPDDR5X-8400&#xff0c;67.0 GB/s 攝像頭&#xff1a;前置16MP后置50MP8MP2MP AI算力&#xff1a;NPU 48Tops INT8 &&…

TortoiseSVN 安裝教程

前言 TortoiseSVN 是一款流行的 免費開源 的 Subversion (SVN) 客戶端&#xff0c;專門為 Windows 操作系統 設計。它通過 Windows 資源管理器集成 提供直觀的圖形化界面&#xff0c;使用戶可以輕松管理版本控制的文件和目錄&#xff0c;無需使用命令行。 主要特點 資源管理器…

多張圖片生成PDF每張圖片生成pdf的一頁

需要的庫 <!-- 生成pdf--><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.10</version></dependency><!-- https://mvnrepository.com/artifact/commons-net/commons-n…

Java基礎 Map集合框架 LinkedHashMap

LinkedHashMap LinkedHashMap類架構與繼承關系核心特性繼承自 HashMap有序性插入順序訪問順序 雙向鏈表結構非線程安全1.并發修改導致數據丟失2.并發迭代導致 ConcurrentModificationException3.并發修改導致鏈表結構破壞解決方案1. 使用 Collections.synchronizedMap&#xff…

MySQL 離線安裝MariaDB

描述 離線環境下安裝MySQL數據庫&#xff0c;也就是MariaDB 操作 1、找到自帶的mysql rpm -qa | grep -i ^mysql-rpm -qa | grep -i ^maria-2、卸載對應的包 rpm --nodeps -ev mysql-libs-5.1.73-8.el6_8.x86_64安裝 MariaDb 離線安裝包官網下載&#xff1a;地址 這個文…

JSON簡介及其應用

JSON簡介及其應用 A Brief Introduction and Applications of JSON By JacksonML 1. JSON的概念 JSON&#xff08;JavaScript Object Notation&#xff09; 是一種輕量級的數據交換格式&#xff0c;采用鍵值對&#xff08;key-value&#xff09;的方式組織數據&#xff0c;…

RNN(循環神經網絡)與LSTM(長短期記憶網絡)輸出的詳細對比分析

今天在與同事探討RNN時&#xff0c;引出了一個主題&#xff0c;RNN和LSTM的輸出有什么區別。 以下是關于傳統RNN&#xff08;循環神經網絡&#xff09;與LSTM&#xff08;長短期記憶網絡&#xff09;隱藏層內容、輸出結果及模型區別的詳細對比分析&#xff0c;結合結構原理、數…

【閑談】技術債:軟件開發的隱形殺手

編程中的“技術債”&#xff1a;隱形殺手與化解之道 在軟件開發的世界里&#xff0c;我們常談性能、安全、架構設計、用戶體驗等話題&#xff0c;但有一個常被忽視的概念卻如影隨形、悄然吞噬著項目的健康——技術債&#xff08;Technical Debt&#xff09;。 本文將帶你深入…