HBase hbck2詳解

      網(wǎng)友投稿 1867 2025-04-03

      hbck2使用

      hbase hbck -help:hbck幫助,執(zhí)行后反饋輸出hbck的幫助文檔。沒太多有效信息,主要就是說hbase2.x里面不再支持hbck1。

      使用hbase hbck -j /opt/hbase-hbck2-1.1.0.jar --help? 輸出幫助信息。

      bypass[OPTIONS]

      參數(shù)說明:

      中止指定的Procedure任務(wù)。

      當(dāng)一個Procedure任務(wù)長時間未結(jié)束需要手動停止時,可以使用該命令。執(zhí)行該操作可能會導(dǎo)致該任務(wù)對應(yīng)的表,region的狀態(tài)不一致,需要手動修復(fù)。如果命令執(zhí)行成功則返回true,否則返回false。

      參數(shù)解析:

      -o,--overide????????????????? Procedure任務(wù)執(zhí)行時會獲取一個IdLock,避免一個任務(wù)被多個線程處理。bypass任務(wù)時,如果不指定該參數(shù),并且該任務(wù)還在運行中,則會導(dǎo)致bypass失敗。指定該參數(shù),會強制將任務(wù)的bypass標(biāo)識設(shè)置為true。

      需要注意:如果bypass的Procedure沒有父Procedure,也沒有子Procedure,則可以直接bypass;如果有父Procedure,則當(dāng)前Procedure的狀態(tài)不能為RUNNABLE, WAITTING,WAITTING_TIMEOUT,否則會bypass失敗;如果有子Procedure,則參考下面一個參數(shù)的說明。

      -r, --recursive?????????????? 如果指定的Procedure還存在subProcedure,則需要指定該參數(shù),然后會把該任務(wù)是所有子任務(wù)都先bypass掉,否則指定的Procedure會bypass失敗。

      -w, --lockWait?????????????? -o參數(shù)中提到的獲取IdLock的超時時間,如果沒有指定-o的話,會等待獲取IdLock直到超過該超時長。默認(rèn)1ms。

      使用方式:

      hbase hbck -j /opt/hbase-hbck2-1.1.0.jar bypass [OPTIONS] pid

      pid獲取:

      在 Master UI 主頁的?Procedures & Locks?菜單欄下,在頁面標(biāo)題中列出了所有正在進行的?Procedure?和?Locks,以及當(dāng)前的?Master Procedure WALs

      Procedure?和?Locks?的列表也可以通過 hbase shell 獲得: list_procedures

      assigns [OPTIONS]?

      參數(shù)說明:

      將一個或多個 region 再次隨機 assign 到別的機器上,返回值是創(chuàng)建的 pid 則為成功,-1 則為失敗

      參數(shù)解析:

      -o, 指定是否強制覆蓋當(dāng)前的Procedure,不指定的話,會對region的狀態(tài)進行檢查,如果該region有關(guān)聯(lián)的Procedure任務(wù)或者region的狀態(tài)不是CLOSED或OFFLINE,該操作會執(zhí)行失敗;

      -i, 如果一次需要操作多個region,除了在命令后面指定多個encodedregionname(空格分開),還可以通過該參數(shù)指定一個或多個本地文件,文件內(nèi)容為encoded regionname(一行一個region)。

      使用方式:

      hbase hbck -j /opt/hbase-hbck2-1.1.0.jar assigns encodedRegionName1 encodedRegionName2...

      hbase hbck -j /opt/hbase-hbck2-1.1.0.jar assigns -i fileName1 fileName2...

      unassigns?

      參數(shù)說明:

      將一個或多個 region unassign,返回值是創(chuàng)建的 pid?則為成功,-1?則為失敗。該操作會為每一個region創(chuàng)建一個TRSP

      參數(shù)解析:

      -o,如果不指定該參數(shù),創(chuàng)建TRSP之前,會檢查region的狀態(tài),需要同時滿足三個條件:region狀態(tài)為OPEN,該表的狀態(tài)非DISABLED或DISABLING, 該region沒有關(guān)聯(lián)的Procedure,否則會執(zhí)行失敗。如果該region已有對應(yīng)的TRSP,新提交的TRSP任務(wù)會等待。創(chuàng)建成功則返回新建TRSP的pid,否則返回-1。該命令只能處理處于OPEN, CLOSING, MERGING, SPLITING狀態(tài)的region。

      使用方式:

      hbase hbck -j /opt/hbase-hbck2-1.1.0.jar unassigns encodedRegionName1 encodedRegionName2...

      setTableState

      參數(shù)說明:

      設(shè)置表狀態(tài),表狀態(tài)包含:ENABLED, DISABLED, DISABLING, ENABLING

      使用場景:

      例如:disable一個表失敗,部分region除以RIT并且表的狀態(tài)DISABLING。

      修復(fù)方法:

      bypass掉該表以及region相關(guān)的Procedure任務(wù),然后使用setTableState將表的狀態(tài)置為DISABLED。為了保證region的狀態(tài)一致,建議重新enable該表后再disalbe一次。

      使用方式:

      hbase hbck -j /opt/hbase-hbck2-1.1.0.jar setTableState tableName state

      setRegionState

      參數(shù)說明:

      該參數(shù)用于強制把meta表中的region狀態(tài)修改為指定的狀態(tài)。該參數(shù)一般需要配合assigns/unassigns命令使用。因為執(zhí)行assigns/unassigns命令需要region處于特定的狀態(tài),當(dāng)region狀態(tài)出現(xiàn)不一致,需要手動干預(yù)時,可能需要使用該命令強制將region修改為特定的轉(zhuǎn)改。

      狀態(tài)包含:OFFLINE, OPENING, OPEN, CLOSING, CLOSED, SPLITTING, SPLIT,FAILED_OPEN, FAILED_CLOSE, ERGING, MERGED, SPLITTING_NEW, MERGING_NEW, ABNORMALLY_CLOSED

      使用方式:

      hbase hbck -j /opt/ hbase-hbck2-1.1.0.jar setRegionState regionName STATES

      extraRegionsInMeta NAMESPACE|NAMESPACE:TABLENAME>...

      參數(shù)說明:

      找到額外的region,比如region在meta表,實際并沒有目錄,與reportMissingRegionsInMeta相反

      參數(shù)解析:

      -f 修復(fù)元數(shù)據(jù)并移除找到的所有的額外region

      使用方式:

      hbase hbck -j /opt/hbase-hbck2-1.1.0.jar extraRegionsInMeta namespace|namespace:tableName

      使用場景:

      類似hbase1中的found in META, but not in HDFS or deployed on any region server.

      reportMissingRegionsInMeta ...

      參數(shù)說明:

      檢查HDFS和meta表中的region信息,并列出meta表中確實的region信息。需要注意:如果meta表中沒有表的state信息,該檢查不會對該表進行檢查;默認(rèn)檢查所有的表,可以指定一個或者多個namespace或者表,如果是default命名空間下的表,也需要指定命名空間。

      使用方式:

      hbase hbck -j /opt/hbase-hbck2-1.1.0.jar reportMissingRegionsInMeta namespace1|default:t2

      filesystem [OPTIONS] [...]

      參數(shù)說明:

      命令主要修復(fù)與hdfs相關(guān)。主要用于修復(fù)/hbase目錄下的不一致問題,開源版本僅提供了修復(fù)損壞的HFile文件,錯誤的reference,HFileLink文件以及hbase.version文件問題;

      華為MRS集群,增加了hbase1中的一些修復(fù),比如:region目錄的空洞,重疊,殘留的splitregion目錄等問題。

      參數(shù)解析:

      開源:

      -f,--fix使用此選項可對損壞的HFile,錯誤鏈接和引用進行旁注。不修復(fù)hdfs holes、regioninfo缺失等問題。

      華為:

      -sidelineCorruptHFiles:檢查指定的表(默認(rèn)全部)是否存在損壞的HFile文件并修復(fù);

      -fixReferenceFiles:用于檢查指定的表(默認(rèn)全部)是否存在損壞的HFile文件并修復(fù);

      -fixReferenceFiles:用于檢查指定的表(默認(rèn)全部)是否存在損壞的HFile文件并修復(fù);

      -fixVersionFile:用于檢查指定的表(默認(rèn)全部)是否存在損壞的HFile文件并修復(fù);該操作不再要求HBase服務(wù)可用;

      -fix:作用等同于同時指定上面4個參數(shù),該參數(shù)為HBCK2開源版本提供的參數(shù),其余參數(shù)為MRS特有;

      -fixHdfsOrphans: 用于檢查修復(fù)缺失.regioninfo文件的問題。如果該region目錄下沒有列簇目錄或者,無法修復(fù)。修復(fù)時先從meta表獲取該region的數(shù)據(jù)并重新生成.regioninfo文件,否則從該region下的hfile解析出startkey和endkey并生成.regioninfo文件。如果沒有hfile,則刪除該region目錄,然后需要通過-fixHdfsHoles修復(fù)region空洞;

      -fixHdfsHoles:用于檢查和修復(fù)region空洞;

      -fixHdfsOverlaps:用于檢查和修復(fù)region重疊;

      -removeParents:如果parent和daughter region同時在線,強制下線parent;

      -fixSplitParents:如果parent和daugh region部分或者都不在線,需要通過該參數(shù)進行修復(fù)。如果daughter region的信息沒有更新到meta表,則重新將parent region上線,否則嘗試將daughter region上線并清理parent region。如果此時Split region的Procedure任務(wù)還未結(jié)束,默認(rèn)不執(zhí)行修復(fù)操作。如果Split Procedure任務(wù)執(zhí)行超過一定時間(默認(rèn)60s),可以使用-force強制中止該問題。用戶還可以使用-timeout修改默認(rèn)的時間,單位為ms;

      -fixTableOrphans:用于檢查修復(fù)缺少.tableinfo文件的問題,默認(rèn)從HMaster的緩存中獲取并重新生成.tableinfo文件,如果獲取失敗,則使用默認(rèn)的參數(shù)生成.tableinfo文件,這樣會導(dǎo)致用戶設(shè)置的參數(shù)丟失;

      使用方式:

      hbase hbck -j /opt/hbase-hbck2-1.1.0.jar filesystem OPTIONS tableName

      fixMeta

      參數(shù)說明:

      2.2.1/2.1.6及其以后版本才存在的參數(shù),用戶修復(fù)meta表中存在的region空洞和重疊問題。該操作依賴CatalogJanitor Consistency Issues Report,主要是針對該report中的問題進行修復(fù)操作。如果meta表和HDFS目錄同時出現(xiàn)空洞,應(yīng)該先對meta表進行修復(fù);

      使用方式:

      hbase hbck -j /opt/hbase-hbck2-1.1.0.jar fixMeta

      generateMissingTableDescriptorFile

      參數(shù)說明:

      修復(fù)表tableinfo,類似hbck1的fixTableOrphan.如果表目錄直接丟失,則不能正常修復(fù)。

      修復(fù)過程中會先檢查TableDescriptor是否緩存在hmaster中,如果是,則直接通過緩存生成,如果不在,則通過表名、列族(表目錄確定)、默認(rèn)配置和列族描述符。

      使用方式:

      hbase hbck -j /opt/hbase-hbck2-1.1.0.jar generateMissingTableDescriptorFile tableName

      scheduleRecoveries ...

      參數(shù)說明:

      創(chuàng)建一個SCP用來處理指定的ServerName。正常情況下,meta表中記錄的region所在的ServerName應(yīng)該是在線的RegionServer,但是記錄的ServerName已經(jīng)不存在,會導(dǎo)致region一致性的問題,需要通過此命令創(chuàng)建一個SCP來進行恢復(fù)。

      使用方式:

      hbase hbck -j /opt/ hbase-hbck2-1.1.0.jar replication -scheduleRecoveries sn1 sn2

      二、修復(fù)Region重疊

      1.執(zhí)行修復(fù)命令,檢查修復(fù)重疊region。

      hbase hbck -j /opt/client/HBase/hbase/tools/hbase-hbck2-*.jar filesystem -fixHdfsOverlaps 表名

      ---->重疊region被合并,舊region被下線,狀態(tài)置為offline,清空hdfs上舊region目錄

      2.執(zhí)行meta表清理命令,清除掉已經(jīng)被下線的region。

      hbase hbck -j /opt/client/HBase/hbase/tools/hbase-hbck2-*.jar?extraRegionsInMeta -f namespace名:表名

      --->meta表修復(fù),避免重新上線重疊region

      3.重啟主HMaster,查看原生界面region狀態(tài),如果前面的命令執(zhí)行過程中有發(fā)現(xiàn)存在Hfile損壞的情況,執(zhí)行下面的命令修復(fù):

      hbase hbck -j /opt/client/HBase/hbase/tools/hbase-hbck2-*.jar filesystem -fix 表名

      注意:如果同時存在region重疊以及split問題時,且需要需要強制移除父region時,執(zhí)行以下命令:

      hbase hbck -j /opt/client/HBase/hbase/tools/hbase-hbck2-*.jar filesystem -fixHdfsOverlaps?-removeParents

      三、修復(fù) region空洞

      1.執(zhí)行修復(fù)命令,檢查修復(fù)空洞region。

      hbase hbck -j /opt/client/HBase/hbase/tools/hbase-hbck2-*.jar filesystem?-fixHdfsHoles

      HBase hbck2詳解

      --->生成新的rgion目錄

      2.把生成的region添加到meta表中:

      hbase hbck -j /opt/client/HBase/hbase/tools/hbase-hbck2-*.jar?addFsRegionsMissingInMeta namespace名:表名

      3.檢查新的region目錄信息是否完整,查看是否存在regioninfo和列族等信息

      hdfs dfs -ls /hbase/data/dafault/表名/region名

      如果沒有,需要執(zhí)行命令重新生成-fixHdfsOrphans

      hbase hbck -j /opt/client/HBase/hbase/tools/hbase-hbck2-*.jar filesystem

      4.上線region,執(zhí)行

      hbase hbck -j /opt/client/HBase/hbase/tools/hbase-hbck2-*.jar?assigns?region名1?region名2

      注意:操作過程中,從web ui上看到的region信息并非最新,需要根據(jù)meta表來確定,更新信息需要HM重新初始化。

      四、 數(shù)據(jù)加載

      修復(fù)后,需要查看HDFS上 hbase/.hbck目錄下是否存在文件,以及文件內(nèi)容,如果存在非refer文件,則需要重新Load到HBase中。

      移動修復(fù)目錄下的內(nèi)容到新的目錄

      hdfs dfs -mkdir /tmp/表名

      hdfs dfs -mkdir /tmp/表名/列族名

      hdfs dfs -mv /hbase/.hbck/....../表名/*/列族名?/tmp/表名/列族名

      執(zhí)行l(wèi)oad命令

      hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles -Dhbase.mapreduce.bulkload.max.hfiles.perRegion.perFamily=3000?/tmp/表名?表名

      注意:-Dhbase.mapreduce.bulkload.max.hfiles.perRegion.perFamily表示每個region最多l(xiāng)oad的文件個數(shù),根據(jù)需要可進行調(diào)整。

      五、、離線修復(fù)meta表命令

      hbase_hbck2_path=$(find /opt/client -name hbase-hbck2-*.jar)

      export HBASE_CLASSPATH="${hbase_hbck2_path}"

      hbase org.apache.hbase.hbck1.OfflineMetaRepair

      五、修復(fù)region closing或者opening狀態(tài)

      1、移除/hbase/MasterProWAL

      2、主備倒換HMaster

      六、數(shù)據(jù)遷移修復(fù)

      hbase 1.x直接使用repair

      hbase2.x:

      開源:未找到有效方式

      華為MRS:

      1、???? 停止hbase服務(wù)

      2、???? 客戶端source環(huán)境變量后認(rèn)證

      3、???? 客戶端執(zhí)行命令:

      export HBASE_CLASSPATH="${HBASE_CLASSPATH}:/opt/hadoopclient/HBase/hbase/tools/hbase-hbck2-2.2.3-hw-ei-302022.jar";

      hbase org.apache.hbase.hbck1.OfflineMetaRepair

      4、???? 啟動hbase服務(wù)

      EI企業(yè)智能 FusionInsight HBase MapReduce MapReduce服務(wù)

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:Excel保護工作表的操作方法圖解教程(excel中如何保護工作表)
      下一篇:wps菜單欄位置怎么改
      相關(guān)文章
      亚洲国产模特在线播放| 亚洲av无码无在线观看红杏| 亚洲色欲色欲综合网站| 亚洲综合色自拍一区| 亚洲婷婷国产精品电影人久久| 日日摸日日碰夜夜爽亚洲| 亚洲精品无码不卡在线播放| 亚洲精品无码专区| 亚洲欧美日韩自偷自拍| 亚洲欧美aⅴ在线资源| 亚洲jizzjizz在线播放久| 亚洲性线免费观看视频成熟| 国产精品亚洲一区二区麻豆| 亚洲无人区码一二三码区别图片| 亚洲无人区码一二三码区别图片| 亚洲av中文无码字幕色不卡| 久久水蜜桃亚洲AV无码精品| 九九精品国产亚洲AV日韩| 亚洲成在人线在线播放无码 | 亚洲精品国产国语| 久久综合久久综合亚洲| 亚洲精品国产第一综合99久久| 亚洲精品欧美综合四区| 九九精品国产亚洲AV日韩| 亚洲国产精品国产自在在线| 亚洲综合国产精品第一页| 亚洲色欲色欲www在线丝| 国产亚洲精品国产| 亚洲电影中文字幕| 亚洲婷婷在线视频| 国产成人亚洲综合一区| 亚洲精品欧美综合四区| 亚洲男人在线无码视频| 亚洲人成网7777777国产| 亚洲国产国产综合一区首页| 亚洲性无码av在线| 亚洲中文字幕无码中文字| 老司机亚洲精品影院在线观看| 亚洲国产精品日韩| 国产亚洲人成网站观看| 91大神亚洲影视在线|
        • <fieldset id="ms0ew"></fieldset>