自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

hadoop hbase集群斷電數(shù)據(jù)塊被破壞無法啟動

大數(shù)據(jù) Hadoop
集群機器意外斷電重啟,導(dǎo)致hbase 無法正常啟動,拋出reflect invocation異常,可能是正在執(zhí)行的插入或合并等操作進行到一半時中斷,導(dǎo)致部分數(shù)據(jù)文件不完整格式不正確或在hdfs上block塊不完整。

[[195722]]

集群機器意外斷電重啟,導(dǎo)致hbase 無法正常啟動,拋出reflect invocation異常,可能是正在執(zhí)行的插入或合并等操作進行到一半時中斷,導(dǎo)致部分數(shù)據(jù)文件不完整格式不正確或在hdfs上block塊不完整。

在網(wǎng)上查了一下相關(guān)資料,懷疑有可能是關(guān)閉前一些未提交的修改所存放的log文件數(shù)據(jù)寫入一半文件不完整,故把hbase.hlog.split.skip.errors改成true進行嘗試。

關(guān)于這個參數(shù)作用的解釋:

當(dāng)服務(wù)器奔潰,重啟的時候,會有個回放的過程,把/hbase/WAL/下面記錄的log都回放一遍,合并到每個region中,回放過程中如果有error發(fā)生,這個參數(shù)又是false,那么exception就會向外層輸出,回放失敗。

但是很遺憾,將此參數(shù)修改后hbase集群仍然無法正常啟動。

然后就琢磨其他原因,先觀察hbase啟動時的60010監(jiān)控頁面,

發(fā)現(xiàn)部分region FAILED_OPEN錯誤,its007-meta表一共200個region,只啟動成功199個。

似乎想到了什么,對了,很可能是這個region的數(shù)據(jù)文件格式不正確,那就先檢查一下其在hdfs上的文件是否正常。

果不其然,觀察hadoop的50070頁面,會提示hadoop文件系統(tǒng)的具體路徑上有兩個數(shù)據(jù)塊出錯。

(關(guān)于hbase在hdfs上的目錄相關(guān)文章鏈接:HBase在HDFS上的目錄樹)

解決方法:

1. 運行hadoop fsck / -files檢查hdfs文件

2. 發(fā)現(xiàn)/hbase/oldWALs目錄下有一個文件損壞,

運行hadoop fsck / -delete清除損壞的文件

3. 運行hbase hbck -details查看hbase概況,發(fā)現(xiàn)Table its007-meta有一個region加載失敗

4. 運行hbase hbck -fixMeta嘗試修復(fù)系統(tǒng)元數(shù)據(jù)表

5. 運行hbase hbck -fix嘗試修復(fù)region數(shù)據(jù)不一致問題。

6. 再次運行hbase hbck -details發(fā)現(xiàn)問題仍然未修復(fù),那個region仍然加載失敗。

故直接將該region下出錯的文件移走,暫時移至hdfs根目錄

hadoop fs -move /hbase/data/default/its007-meta/fe6463cba743a87e99f9d8577276bada/meta/9a853fdbe13046fca194051cb9f69f9b /

fe6463cba743a87e99f9d8577276bada是region的名字

9a853fdbe13046fca194051cb9f69f9b是region下出錯的HFile,有800k大小(注:一個region下可以有多HFile)

7. 運行hbase hbck -fix重新加載之前失敗的region,至此完成修復(fù),丟棄了出錯的HFile

總結(jié):

hbase在hdfs上一共兩個文件損壞。(關(guān)于hdfs文件寫入相關(guān)文章:hdfs文件寫入相關(guān)概念)

一個是oldWALs下的,這個是存放一些沒用的HLog文件的,這里有文件損壞,說明從WALs中轉(zhuǎn)移沒用的HLog寫到oldWALs下時,寫了一半斷電導(dǎo)致hdfs上文件數(shù)據(jù)塊出錯;

另一個是region下一個HFile文件損壞,這個文件800k比較小,應(yīng)該是從Memstore flush到HFile時,寫了一半沒寫完導(dǎo)致其在hdfs上的文件數(shù)據(jù)塊出錯。

hbase region數(shù)據(jù)塊出現(xiàn)問題可以先修復(fù)

查看hbasemeta情況

hbase hbck

1.重新修復(fù)hbase meta表

hbase hbck -fixMeta

2.重新將hbase meta表分給regionserver

hbase hbck -fixAssignments

如果修復(fù)失敗,我們可以刪除hdfs上的異常數(shù)據(jù),刪除META表中對應(yīng)的region信息。

責(zé)任編輯:武曉燕 來源: oschina博客
相關(guān)推薦

2010-10-13 11:02:52

MySQL數(shù)據(jù)文件

2013-05-14 17:32:37

2013-11-22 09:57:03

hadoop1.2.1zookeeper-3hbase-0.94.

2016-11-09 14:16:39

HBase集群管理

2010-06-03 13:08:51

2021-04-13 08:24:28

網(wǎng)絡(luò)攻擊惡意軟件網(wǎng)絡(luò)安全

2012-01-05 10:03:23

2014-11-27 13:59:34

OptimBluemixIBM

2010-06-03 19:38:26

Hadoop

2014-05-20 10:24:44

2010-05-24 14:59:29

Hadoop集群

2016-10-27 09:37:10

Hadoop集群配置

2011-12-07 16:11:50

Hadoop集群搭建

2010-06-03 14:08:56

Hadoop創(chuàng)建Hba

2011-08-29 10:15:13

FacebookHadoopHBase

2012-09-10 15:18:11

云梯淘寶大數(shù)據(jù)

2013-06-14 14:17:36

分布式Hbase管理和監(jiān)控

2010-05-13 17:33:24

MySQL索引

2020-11-19 10:30:28

Linux

2011-10-19 09:35:36

Hadoop數(shù)據(jù)集群
點贊
收藏

51CTO技術(shù)棧公眾號