【大數據技術-聯邦集群RBF】DFSRouter日志一直打印修改Membership為EXPIRED狀態的日志分析

生產環境遇到下面報錯

2025-04-23 17:44:15,780 INFO  store.CachedRecordStore (CachedRecordStore.java:overrideExpiredRecords(192)) - Override State Store record MembershipState: router1:8888->hh-fed-sub25:nn2:nn2:8020-EXPIRED
2025-04-23 17:44:15,781 INFO  store.CachedRecordStore (CachedRecordStore.java:overrideExpiredRecords(192)) - Override State Store record MembershipState: router1:8888->hh-fed-sub25:nn1:nn1:8020-EXPIRED
2025-04-23 17:44:15,781 INFO  store.CachedRecordStore (CachedRecordStore.java:overrideExpiredRecords(192)) - Override State Store record MembershipState: router2:8888->hh-fed-sub25:nn1:nn1:8020-EXPIRED
2025-04-23 17:44:15,781 INFO  store.CachedRecordStore (CachedRecordStore.java:overrideExpiredRecords(192)) - Override State Store record MembershipState: router2:8888->hh-fed-sub25:nn2:nn2:8020-EXPIRED

報錯原因是,之前子集群配置了3個router,2個nn,然后會向StateStore中存儲6個MembershipState。

后來,將子集群的router停了兩個,只運行一個router,這樣的后果就是會在運行的router日志發現上面報錯。

因為router會周期性下載MembershipState,每次都會去檢查是否過期,而我們停了2個Router,這倆Router之前和NameNode形成Membership并上報到了StateStore,并且我們關閉了刪除過期記錄的參數dfs.federation.router.store.membership.expiration.deletion,所以,會在運行的Router中打印上面報錯。

修復做法,選擇下面之一都可以:

  1. 開啟刪除過期參數
    1. dfs.federation.router.store.membership.expiration默認未5min,若設置dfs.federation.router.store.membership.expiration.deletion=2min,則表示membership過期了(超過5min沒匯報),在等2min就刪除它。
  2. 啟動已停止的router

參考源碼

org.apache.hadoop.hdfs.server.federation.store.CachedRecordStore#overrideExpiredRecords

  public void overrideExpiredRecords(QueryResult<R> query) throws IOException {List<R> commitRecords = new ArrayList<>();List<R> deleteRecords = new ArrayList<>();List<R> newRecords = query.getRecords();long currentDriverTime = query.getTimestamp();if (newRecords == null || currentDriverTime <= 0) {LOG.error("Cannot check overrides for record");return;}for (R record : newRecords) {if (record.shouldBeDeleted(currentDriverTime)) {String recordName = StateStoreUtils.getRecordName(record.getClass());if (getDriver().remove(record)) {deleteRecords.add(record);LOG.info("Deleted State Store record {}: {}", recordName, record);} else {LOG.warn("Couldn't delete State Store record {}: {}", recordName,record);}} else if (record.checkExpired(currentDriverTime)) {String recordName = StateStoreUtils.getRecordName(record.getClass());LOG.info("Override State Store record {}: {}", recordName, record);commitRecords.add(record);}}if (commitRecords.size() > 0) {getDriver().putAll(commitRecords, true, false);}if (deleteRecords.size() > 0) {newRecords.removeAll(deleteRecords);}}

org.apache.hadoop.hdfs.server.federation.store.records.BaseRecord#checkExpired

   @Overridepublic boolean checkExpired(long currentTime) {if (super.checkExpired(currentTime)) {this.setState(EXPIRED);// Commit itreturn true;}return false;}public boolean checkExpired(long currentTime) {long expiration = getExpirationMs();long modifiedTime = getDateModified();if (modifiedTime > 0 && expiration > 0) {return (modifiedTime + expiration) < currentTime;}return false;}

org.apache.hadoop.hdfs.server.federation.store.records.BaseRecord#shouldBeDeleted

public boolean shouldBeDeleted(long currentTime) {long deletionTime = getDeletionMs();if (isExpired() && deletionTime > 0) {long elapsedTime = currentTime - (getDateModified() + getExpirationMs());return elapsedTime > deletionTime;} else {return false;}
}

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

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

相關文章

【HarmonyOS 5】鴻蒙檢測系統完整性

【HarmonyOS 5】鴻蒙檢測系統完整性 一、前言 從現實安全威脅來看&#xff0c;設備系統完整性風險已影響至移動應用的各個場景。不少用戶因使用越獄設備&#xff08;Jailbreak&#xff09;或非真實設備&#xff08;Emulator&#xff09;&#xff0c;導致應用安全防護機制失效…

學習spark-streaming收獲

1.流處理的核心概念 ?實時 vs微批處理&#xff1a;理解了 Spark Streaming 的微批處理&#xff08;Micro-Batch&#xff09;模型&#xff0c;將流數據切分為小批次&#xff08;如1秒間隔&#xff09;進行處理&#xff0c;與真正的流處理&#xff08;如Flink&#xff09;的區…

Redis一些小記錄

Redis一些小記錄 SpringData Redis&#xff1a;RedisTemplate配置與數據操作 操作String類型數據 String是Redis中最基本的數據類型&#xff0c;可以存儲字符串、整數或浮點數。RedisTemplate提供了ValueOperations接口來操作String類型的數據&#xff0c;支持設置值、獲取值、…

5G融合消息PaaS項目深度解析 - Java架構師面試實戰

5G融合消息PaaS項目深度解析 - Java架構師面試實戰 場景&#xff1a;互聯網大廠Java求職者面試&#xff0c;面試官針對5G融合消息PaaS項目進行提問。 第一輪提問 面試官&#xff1a;馬架構&#xff0c;請簡要介紹5G融合消息PaaS平臺的核心功能和應用場景。 馬架構&#xff…

【C語言極簡自學筆記】C 語言數組詳解:一維數組與二維數組

在 C 語言中&#xff0c;數組是一種非常重要的數據結構&#xff0c;它可以將多個相同類型的元素組織在一起&#xff0c;以便于我們進行批量處理和操作。本文將詳細介紹 C 語言中的一維數組和二維數組&#xff0c;包括它們的定義、初始化、元素訪問以及內存存儲等方面的內容。 …

04.通過OpenAPI-Swagger規范讓Dify玩轉Agent

dify安裝 cd dify cd docker cp .env.example .env docker compose up -d準備自定義工具 我自建的PowerDNS&#xff0c;它的swagger如下&#xff1a; https://github.com/PowerDNS/pdns/blob/master/docs/http-api/swagger/authoritative-api-swagger.yaml 但需要加上&#x…

汽車產業鏈主表及類別表設計

&#xff08;提前設計&#xff0c;備用&#xff09; 一、汽車產業鏈類別表&#xff08;industry_chain_category&#xff09; 設計要點 1、核心字段&#xff1a;定義產業鏈分類&#xff08;如零部件、整車制造、銷售服務等&#xff09; 2、主鍵約束&#xff1a;自增ID作為唯一標…

?RISC-V架構的低功耗MCU多電壓域優化設計

RISC-V核低功耗MCU的多電壓域設計是一種優化電源管理以降低功耗的技術方案。該設計通過電源域劃分、電壓轉換和時序管理等手段&#xff0c;有效降低了系統功耗并提升能效&#xff0c;適用于物聯網和嵌入式系統等場景。 多電壓域設計的基本原理是將芯片劃分為多個獨立供電區域&…

基于STM32、HAL庫的AD7616BSTZ模數轉換器ADC驅動程序設計

一、簡介: AD7616BSTZ是Analog Devices公司生產的一款16位、雙通道、同步采樣SAR型ADC芯片,主要特點包括: 16位分辨率 雙通道同步采樣 最高采樣率:1MSPS/通道 輸入范圍:10V, 5V或2.5V(軟件可編程) 串行(SPI)和并行接口選項 低功耗:典型值100mW 工作溫度范圍:-40C至+8…

CUDA Stream 回調函數示例代碼

文章目錄 CUDA Stream 回調函數示例代碼基本概念示例代碼代碼解釋回調函數的特點更復雜的示例&#xff1a;多個回調注意事項 CUDA Stream 回調函數中使用 MPI 或 NCCL示例程序注意事項 CUDA Stream 回調函數示例代碼 CUDA 中的流回調函數(stream callback)是一種在 CUDA 流中插…

全棧黑暗物質:可觀測性之外的非確定性調試

一、量子計算的測不準Bug 1. 經典 vs. 量子系統的錯誤模式 量子程序崩潰的觀測影響&#xff1a; 調試方法崩潰復現率觀測干擾度日志打印12%35%斷點調試5%78%無侵入跟蹤27%9%量子態層析成像63%2% 二、量子調試工具箱 1. 非破壞性觀測協議 # 量子程序的無干擾快照 from qiski…

ASP.NET8.0入門與實戰

1、項目初始化 創建一個ASP.NET Core Web API的項目&#xff0c;取消Https和身份驗證。 API項目實際上是一個控制臺程序&#xff0c;這點可以在項目的屬性的輸出類型中看到。 launchSettings.json&#xff0c;在這里可以配置運行項目的名稱&#xff0c;端口號&#xff0c;路…

Synopsys 邏輯綜合的整體架構概覽

目錄 一、DC Shell 邏輯綜合的整體架構概覽 ?? 邏輯綜合的主要階段&#xff08;Pipeline&#xff09; 二、核心架構模塊詳解 1. Internal Database&#xff08;設計對象數據庫&#xff09; 2. Scheduler&#xff08;調度器&#xff09; 3. Rewriting Engine&#xff08…

低壓電工常見知識點

一.工廠用電 1.工廠一般有電源380V和220V。 三相:黃綠紅 藍 雙色 助記符:王力宏 分別對應第一相(R),第二相(S)&#xff0c;第三相(T)&#xff0c;零線(N),地線(PE) 單相:紅 黑 對應火線(L) 零線(N) 左零右火 二.人體安全電壓是36V 三.變壓器的講解 變壓器的符號…

【沉浸式求職學習day27】

沉浸式求職學習 家人們誰懂啊&#xff01;明天下午又實習筆試了&#xff0c;所以今天大部分時間還是在搞一些行測之類的東西&#xff0c;所以今天沒什么分享給大家的&#xff0c;明晚會簡單的和大家分享一下關于數據庫的一些東西&#xff0c;以及和大家聊聊我筆試的感覺哈哈哈哈…

進入救援模式(物理服務器)

目錄 **?? 準備工作****?? 進入救援模式(物理服務器)****方法 1:直接修改啟動參數****適用情況****操作步驟****方法 2:通過GRUB引導菜單進入(系統未完全崩潰時)****適用情況****操作步驟****兩者的核心區別****如何選擇?****注意事項****總結**當物理服務器無法正常…

基于Pytest接口自動化的requests模塊項目實戰以及接口關聯方法詳解

&#x1f345; 點擊文末小卡片&#xff0c;免費獲取軟件測試全套資料&#xff0c;資料在手&#xff0c;漲薪更快 1、基于pytest單元測試框架的規則 1.1 模塊名&#xff08;即文件名&#xff09;必須以test_開頭或者_test結尾 1.2 類名必須以Test開頭且不能有init方法 1.3 用…

匯總 JavaScript 內置對象常用方法詳解

匯總 JavaScript 內置對象常用方法詳解 JavaScript 提供了許多強大的內置對象&#xff0c;它們帶有各種實用的方法&#xff0c;能夠幫助我們更高效地編寫代碼。本文將介紹最常用的內置對象方法&#xff0c;并通過實例展示它們的使用場景。 目錄 Array 數組String 字符串Obje…

OceanBase TPCC測試常見報錯匯總

OceanBase TPCC測試常見報錯匯總 報錯1:加載測試數據時創建tablegroup失敗報錯2:加載測試數據時執行超時報錯3:加載測試數據時funcs.sh函數找不到報錯4:加載數據時報錯超過租戶內存上限辦法一:增加租戶內存辦法二:調高轉儲線程數辦法三:調整MemStore內存占比和凍結觸發閾…

Flutter 在 Dart 3.8 開始支持 Null-Aware Elements 語法,自動識別集合里的空元素

近日&#xff0c;在 Dart 3.8 的 changelog 里正式提交了 Null-Aware Elements 語法&#xff0c;該語法糖可以用于在 List、Set、Map 等集合中處理可能為 null 的元素或鍵值對&#xff0c;簡化顯式檢查 null 的場景&#xff1a; /之前 var listWithoutNullAwareElements [if …