Kudu TabletServer服務器斷電無法啓動

Kudu TabletServer服務器斷電無法啓動

1.問題

Kudu TabletServer服務器正常大量寫入時,服務器異常重啓,會造成TabletServer的metadata的文件數據不完整功能,再次啓動TabletServer會報如下錯誤:

Check failed: _s.ok() Bad status: Corruption: Failed to load FS layout: Could not process records in container /data1/bigdata/kudu/tablet/data/data/b77918da73e342b4940f64c557ea0f61: Data length checksum does not match: Incorrect checksum in file /data1/bigdata/kudu/tablet/data/data/b77918da73e342b4940f64c557ea0f61.metadata at offset 634685: Checksum does not match. Expected: 0. Actual: 1214729159

2.解決辦法

  • 根據啓動報錯日誌獲取和報錯日誌文件一致的所有元數據文件,刪除元數據文件的最後一行記錄,然後啓動Kudu TabletServer服務,觀察是否還有此類似報錯,有再處理,直到服務啓動爲止
# 創建元數據備份目錄
mkdir /data1/backup/data1
# 根據kudu日誌進入報錯的相應元數據目錄
cd /data1/bigdata/kudu/tablet/data/data/
# 備份元數據
cp -arpf ./*.metadata /data1/backup/data1
# 一般和此文件最後一次修改時間相同的目錄都會有問題,先獲取日誌報錯文件的最後修改時間
  b77918da73e342b4940f64c557ea0f61.metadata

輸出信息

-rw------- 1 kudu kudu 7717519360 2019-07-10 13:16:07.662511306 +0800 b77918da73e342b4940f64c557ea0f61.metadata
# 刪除所有和b77918da73e342b4940f64c557ea0f61.metadata元數據文件最後一次修改時間相同的文件的最後一行記錄
for i in `ls -l --full-time |grep '2019-07-10 13:16:07.662511306 +0800'|grep '.metadata' | awk {'print $9'}`; do sed -i '$d' $i; done
  • 通過CM頁面啓動Kudu TabletServer服務

通過WebUI檢查該Kudu TabletServer表情況,有可能存在表狀態爲FAILED的情況,副本數爲3的表會從其他節點行copy過來

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章