<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-314  評論-209  文章-0  trackbacks-0

    meta表修復一

    Java代碼  收藏代碼
    1. 查看hbasemeta情況  
    2. hbase hbck  
    3. 1.重新修復hbase meta表(根據hdfs上的regioninfo文件,生成meta表)  
    4. hbase hbck -fixMeta  
    5. 2.重新將hbase meta表分給regionserver(根據meta表,將meta表上的region分給regionservere)  
    6. hbase hbck -fixAssignments  

     

    meta表修復二

     

    Java代碼  收藏代碼
    1. 當出現漏洞  
    2. hbase hbck -fixHdfsHoles  (新建一個region文件夾)  
    3. hbase hbck <span style="font-size: 13.63636302948px; line-height: 19.0909080505371px;">-fixMeta        (根據regioninfo生成meta表)  
    4. hbase hbck </span><span style="font-size: 13.63636302948px; line-height: 19.0909080505371px;">-fixAssignments  (分配region到regionserver上)</span>  
    meta表修復三
    Java代碼  收藏代碼
    1. 缺少regioninfo  
    2. hbase hbck -fixHdfsOrphans  

     

    重復region問題:

    Java代碼  收藏代碼
    1. 查看meta中的region  
    2. scan 'hbase:meta' , {LIMIT=>10,FILTER=>"PrefixFilter('INDEX_11')"}  
    3.   
    4. 在數據遷移的時候碰到兩個重復的region  
    5. b0c8f08ffd7a96219f748ef14d7ad4f8,73ab00eaa7bab7bc83f440549b9749a3  
    6.   
    7. 刪除兩個重復的region  
    8.   
    9. delete 'hbase:meta','INDEX_11,4380_2431,1429757926776.b0c8f08ffd7a96219f748ef14d7ad4f8.','info:regioninfo'  
    10.   
    11. delete 'hbase:meta','INDEX_11,5479_0041431700000000040100004815E9,1429757926776.73ab00eaa7bab7bc83f440549b9749a3.','info:regioninfo'  
    12.   
    13. 刪除兩個重復的hdfs  
    14.   
    15. /hbase/data/default/INDEX_11/b0c8f08ffd7a96219f748ef14d7ad4f8  
    16. /hbase/data/default/INDEX_11/73ab00eaa7bab7bc83f440549b9749a3  
    17.   
    18. 對應的重啟regionserver(只是為了刷新hmaster上匯報的RIS的狀態)  
    19.   
    20. 肯定會丟數據,把沒有上線的重復region上的數據丟失  

     

    新hbase hbck

    Java代碼  收藏代碼
    1. 新版的hbck  
    2.    
    3. 新版本的 hbck 可以修復各種錯誤,修復選項是:   
    4. 1)-fix,向下兼容用,被-fixAssignments替代   
    5. 2)-fixAssignments,用于修復region assignments錯誤   
    6. 3)-fixMeta,用于修復meta表的問題,前提是HDFS上面的region info信息有并且正確。   
    7. 4)-fixHdfsHoles,修復region holes(空洞,某個區間沒有region)問題   
    8. 5)-fixHdfsOrphans,修復Orphan region(hdfs上面沒有.regioninfo的region)   
    9. 6)-fixHdfsOverlaps,修復region overlaps(區間重疊)問題   
    10. 7)-fixVersionFile,修復缺失hbase.version文件的問題   
    11. 8)-maxMerge <n> (n默認是5),當region有重疊是,需要合并region,一次合并的region數最大不超過這個值。   
    12. 9)-sidelineBigOverlaps ,當修復region overlaps問題時,允許跟其他region重疊次數最多的一些region不參與(修復后,可以把沒有參與的數據通過bulk load加載到相應的region)   
    13. 10)-maxOverlapsToSideline <n> (n默認是2),當修復region overlaps問題時,一組里最多允許多少個region不參與   
    14. 由于選項較多,所以有兩個簡寫的選項   
    15. 11) -repair,相當于-fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans -fixHdfsOverlaps -fixVersionFile -sidelineBigOverlaps   
    16. 12)-repairHoles,相當于-fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans   
    17.    
    18.    
    19.    
    20. 新版本的 hbck   
    21. 1)缺失hbase.version文件   
    22.  加上選項 -fixVersionFile 解決   
    23. 2)如果一個region即不在META表中,又不在hdfs上面,但是在regionserver的online region集合中   
    24.  加上選項 -fixAssignments 解決   
    25. 3)如果一個region在META表中,并且在regionserver的online region集合中,但是在hdfs上面沒有   
    26.  加上選項 -fixAssignments -fixMeta 解決,( -fixAssignments告訴regionserver close region),( -fixMeta刪除META表中region的記錄)   
    27. 4)如果一個region在META表中沒有記錄,沒有被regionserver服務,但是在hdfs上面有   
    28. 加上選項 -fixMeta -fixAssignments 解決,( -fixAssignments 用于assign region),( -fixMeta用于在META表中添加region的記錄)   
    29. 5)如果一個region在META表中沒有記錄,在hdfs上面有,被regionserver服務了   
    30. 加上選項 -fixMeta 解決,在META表中添加這個region的記錄,先undeploy region,后assign   
    31. 6)如果一個region在META表中有記錄,但是在hdfs上面沒有,并且沒有被regionserver服務   
    32. 加上選項 -fixMeta 解決,刪除META表中的記錄   
    33. 7)如果一個region在META表中有記錄,在hdfs上面也有,table不是disabled的,但是這個region沒有被服務   
    34. 加上選項 -fixAssignments 解決,assign這個region   
    35. 8)如果一個region在META表中有記錄,在hdfs上面也有,table是disabled的,但是這個region被某個regionserver服務了   
    36. 加上選項 -fixAssignments 解決,undeploy這個region   
    37. 9)如果一個region在META表中有記錄,在hdfs上面也有,table不是disabled的,但是這個region被多個regionserver服務了   
    38. 加上選項 -fixAssignments 解決,通知所有regionserver close region,然后assign region   
    39. 10)如果一個region在META表中,在hdfs上面也有,也應該被服務,但是META表中記錄的regionserver和實際所在的regionserver不相符   
    40. 加上選項 -fixAssignments 解決   
    41.    
    42. 11)region holes   
    43. 需要加上 -fixHdfsHoles ,創建一個新的空region,填補空洞,但是不assign 這個 region,也不在META表中添加這個region的相關信息   
    44. 12)region在hdfs上面沒有.regioninfo文件   
    45. -fixHdfsOrphans 解決   
    46. 13)region overlaps   
    47. 需要加上 -fixHdfsOverlaps   
    48.    
    49.    
    50. 說明:   
    51. 1)修復region holes時,-fixHdfsHoles 選項只是創建了一個新的空region,填補上了這個區間,還需要加上-fixAssignments -fixMeta 來解決問題,( -fixAssignments 用于assign region),( -fixMeta用于在META表中添加region的記錄),所以有了組合拳 -repairHoles 修復region holes,相當于-fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans   
    52. 2) -fixAssignments,用于修復region沒有assign、不應該assign、assign了多次的問題   
    53. 3)-fixMeta,如果hdfs上面沒有,那么從META表中刪除相應的記錄,如果hdfs上面有,在META表中添加上相應的記錄信息   
    54. 4)-repair 打開所有的修復選項,相當于-fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans -fixHdfsOverlaps -fixVersionFile -sidelineBigOverlaps   
    55.    
    56. 新版本的hbck從(1)hdfs目錄(2)META(3)RegionServer這三處獲得region的Table和Region的相關信息,根據這些信息判斷并repair  

     

     

    轉meta,表手動刪除表

    Java代碼  收藏代碼
    1. 因為集群硬盤緊俏,絕對對原來的表加上COMPRESSION=>LZO屬性。但是創建表,長時間沒有反饋。決定drop掉這張表,但是始終drop失敗。重啟集群,hbase 60010界面顯示有region transaction。為創建失敗的表region,在PENDING_OPEN和CLOSED之間跳。describe 表失敗, enable表失敗,disable表失敗,從60010界面查看表失敗。很蛋疼。  
    2. 后決定強制刪除當前表。google了一下,找到這篇文章,文章大部分都是對的,但是最后一步存在問題.原文中命令為:  
    3. delete 'TrojanInfo','TrojanInfo,,1361433390076.2636b5a2b3d3d08f23d2af9582f29bd8.','info:server'    
    4. 當時就覺得有有問題,沒有涉及.META.表,如何更新META信息?  
    5. 嘗試兩次刪除后是始終報錯,確定應該是有問題,為了以防萬一,google一下更新META信息的操作,將命令改為  
    6. delete '.META.','TrojanInfo,,1361433390076.2636b5a2b3d3d08f23d2af9582f29bd8.','info:server'  
    7. 命令成功執行。  
    8. 重啟集群后,transction仍然存在,分析應該是meta表沒有更新的問題,對meta表做一次major_compact,重啟集群,成功。不再有報錯。  
    9.   
    10. 下面是對原文的拷貝:  
    11. 強制刪除表:  
    12.     1、強制刪除該表在hdfs上的所有文件(路徑根據實際情況而定):  
    13. [sql] view plaincopy  
    14.   
    15. ./hadoop fs -rmr /hbase/TrojanInfo    
    16.     2、刪除該表在HBase系統表.META.中的記錄:  
    17.         A、首先從.META.中查詢出表 TrojanInfo在.META.中的rowkey,這可以通過scan '.META.',然后手動篩選;  
    18.      B、然后刪除該rowkey下的3個字段(假設查詢出的rowkey為TrojanInfo,,1361433390076.2636b5a2b3d3d08f23d2af9582f29bd8.)                    
    19. [plain] view plaincopy  
    20.   
    21. delete 'TrojanInfo','TrojanInfo,,1361433390076.2636b5a2b3d3d08f23d2af9582f29bd8.','info:server'    
    22. delete 'TrojanInfo','TrojanInfo,,1361433390076.2636b5a2b3d3d08f23d2af9582f29bd8.','info:serverstartcode'    
    23. delete 'TrojanInfo','TrojanInfo,,1361433390076.2636b5a2b3d3d08f23d2af9582f29bd8.','info:reg  
    24.    

     

     

     

    轉meta表修復三

    Java代碼  收藏代碼
    1. 一、故障原因  
    2. IP為10.191.135.3的服務器在201381日出現服務器重新啟動的情況,導致此臺服務器上的所有服務均停止。從而造成NTP服務停止。當NTP服務停止后,導致HBase集群中大部分機器時鐘和主機時間不一致,造成regionserver服務中止。并在重新啟動后,出現region的hole。需要對數據進行重新修復,以正常提供插入數據的服務。  
    3.   
    4. 二、恢復方式  
    5. 1、集群50個regionserver,宕掉服務41個,namenode所在機器10.191.135.3不明重啟(原因查找中)導致本機上的namenode、zookeeper、時間同步服務器服務掛掉。  
    6. 2、重啟hbase服務時,沒能成功stop剩余的9個regionserver服務,進行了人為kill進程,  
    7. 3、在hdfs上移走了hlog(避免啟動時split log花費過多時間影響服務),然后重啟hbase。發現10.191.135.30機器上的時間與時間同步服務器10.191.135.3不同步。手工同步后重啟成功。hbase可以正常提供查詢服務。  
    8. 4、運行mapreduce put數據。拋出異常,數據無法正常插入;  
    9. 5、執行/opt/hbase/bin/hbase hbck -fixAssignments,嘗試重新分配region。結果顯示hbase有空洞,即region之間數據不連續了;  
    10. 6、通過上述操作可以定位是在regionserver服務宕掉的后重啟的過程中丟了數據。需要進行空洞修復。然而hbase hbck命令總是只顯示三條空洞。  
    11. 7、通過編寫的regionTest.jar工具進行進一步檢測出空洞所在的regionname然后停掉hbase,進而進行region合并修復空洞;  
    12. 8、合并的merge 操作需要先去.META.表里讀取該region的信息,由于.META.表也在regionserver宕機過程中受到損壞,所以部分region的.META.信息沒有,merge操作時就拋出空指針異常。因此只能將hdfs這些region進行移除,然后通過regionTest.jar 檢測新的空洞所在的regionname,進行合并操作修復空洞;  
    13. 9、關于region重疊,即regionname存在.META.表內,但是在hdfs上被錯誤的移出,并進行了region合并。這種情況下需要通過regionTest.jar檢測重疊的regionname然后手動去.META.表刪除,.META.表修改之后需要flush;  
    14. 10、最后再次執行 hbase hbck 命令,hbase 所有表status ok。  
    15.   
    16. 三、相關命令及頁面報錯信息  
    17. 1.手工同步時間命令
service ntpd stop
ntpdate -d 192.168.1.20
service ntpd start  
    18.   
    19.   
    20. 2.org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException: Failed 2 actions: WrongRegionException: 2 times, servers with issues: datanode10:60020, 
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processBatchCallback(HConnectionManager.java:1641)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processBatch(HConnectionManager.java:1409)
at org.apache.hadoop.hbase.client.HTable.flushCommits(HTable.java:949)
at org.apache.hadoop.hbase.client.HTable.doPut(HTable.java:826)
at org.apache.hadoop.hbase.client.HTable.put(HTable.java:801)
at org.apache.hadoop.hbase.mapreduce.TableOutputFormat$TableRecordWriter.write(TableOutputFormat.java:123)
at org.apache.hadoop.hbase.mapreduce.TableOutputFormat$TableRecordWriter.write(TableOutputFormat.java:84)
at org.apache.hadoop.mapred.MapTask$NewDirectOutputCollector.write(MapTask.java:533)
at org.apache.hadoop.mapreduce.task.TaskInputOutputContextImpl.write(TaskInputOutputContextImpl.java:88)
at o  
    21.   
    22. 3.13/08/01 18:30:02 DEBUG util.HBaseFsck: There are 22093 region info entries
ERROR: There is a hole in the region chain between +8615923208069cmnet201303072132166264580 and +861592321.  You need to create a new .regioninfo and region dir in hdfs to plug the hole.
ERROR: There is a hole in the region chain between +8618375993383cmwap20130512235639430 and +8618375998629cmnet201305040821436779670.  You need to create a new .regioninfo and region dir in hdfs to plug the hole.
ERROR: There is a hole in the region chain between +8618725888080cmnet201212271719506311400 and +8618725889786cmnet201302131646431671140.  You need to create a new .regioninfo and region dir in hdfs to plug the hole.
ERROR: Found inconsistency in table cqgprs
Summary:
  -ROOT- is okay.
    Number of regions: 1
    Deployed on:  datanode14,60020,1375330955915
  .META. is okay.
    Number of regions: 1
    Deployed on:  datanode21,60020,1375330955825
  cqgprs is okay.
    Number of regions: 22057
    Deployed on:  datanode1,60020,1375330955761 datanode10,60020,1375330955748 datanode11,60020,1375330955736 datanode12,60020,1375330955993 datanode13,60020,1375330955951 datanode14,60020,1375330955915 datanode15,60020,1375330955882 datanode16,60020,1375330955892 datanode17,60020,1375330955864 datanode18,60020,1375330955703 datanode19,60020,1375330955910 datanode2,60020,1375330955751 datanode20,60020,1375330955849 datanode21,60020,1375330955825 datanode22,60020,1375334479752 datanode23,60020,1375330955835 datanode24,60020,1375330955932 datanode25,60020,1375330955856 datanode26,60020,1375330955807 datanode27,60020,1375330955882 datanode28,60020,1375330955785 datanode29,60020,1375330955799 datanode3,60020,1375330955778 datanode30,60020,1375330955748 datanode31,60020,1375330955877 datanode32,60020,1375330955763 datanode33,60020,1375330955755 datanode34,60020,1375330955713 datanode35,60020,1375330955768 datanode36,60020,1375330955896 datanode37,60020,1375330955884 datanode38,60020,1375330955918 datanode39,60020,1375330955881 datanode4,60020,1375330955826 datanode40,60020,1375330955770 datanode41,60020,1375330955824 datanode42,60020,1375449245386 datanode43,60020,1375330955880 datanode44,60020,1375330955902 datanode45,60020,1375330955881 datanode46,60020,1375330955841 datanode47,60020,1375330955790 datanode48,60020,1375330955848 datanode49,60020,1375330955849 datanode5,60020,1375330955880 datanode50,60020,1375330955802 datanode6,60020,1375330955753 datanode7,60020,1375330955890 datanode8,60020,1375330955967 datanode9,60020,1375330955948
  test1 is okay.
    Number of regions: 1
    Deployed on:  datanode43,60020,1375330955880
  test2 is okay.
    Number of regions: 1
    Deployed on:  datanode21,60020,137533095582535 inconsistencies detected.
Status: INCONSISTENT  
    23.   
    24. 4.hadoop jar regionTest.jar com.region.RegionReaderMain /hbase/cqgprs 檢測cqgprs表里的空洞所在的regionname。  
    25.   
    26. 5.==================================
first endKey = +8615808059207cmnet201307102326567966800
second startKey = +8615808058578cmnet201212251545557984830

first regionNmae = cqgprs,+8615808058578cmnet201212251545557984830,1375241186209.0f8266ad7ac45be1fa7233e8ea7aeef9.
second regionNmae = cqgprs,+8615808058578cmnet201212251545557984830,1362778571889.3552d3db8166f421047525d6be39c22e.
==================================
first endKey = +8615808060140cmnet201303051801355846850
second startKey = +8615808059207cmnet201307102326567966800

first regionNmae = cqgprs,+8615808058578cmnet201212251545557984830,1362778571889.3552d3db8166f421047525d6be39c22e.
second regionNmae = cqgprs,+8615808059207cmnet201307102326567966800,1375241186209.09d489d3df513bc79bab09cec36d2bb4.
==================================  
    27.   
    28. 6.Usage: bin/hbase org.apache.hadoop.hbase.util.Merge [-Dfs.default.name=hdfs://nn:port] <table-name> <region-1> <region-2>

./hbase org.apache.hadoop.hbase.util.Merge -Dfs.defaultFS=hdfs://bdpha cqgprs cqgprs,+8615213741567cmnet201305251243290802280,1369877465524.3c13b460fae388b1b1a70650b66c5039. cqgprs,+8615213745577cmnet201302141725552206710,1369534940433.5de80f59071555029ac42287033a4863. &  
    29.   
    30. 7.13/08/01 22:24:02 WARN util.HBaseFsck: Naming new problem group: +8618225125357cmnet201212290358070667800
ERROR: (regions cqgprs,+8618225123516cmnet201304131404096748520,1375363774655.b3cf5cc752f4427a4e699270dff9839e. and cqgprs,+8618225125357cmnet201212290358070667800,1364421610707.7f7038bfbe2c0df0998a529686a3e1aa.) There is an overlap in the region chain.
13/08/01 22:24:02 WARN util.HBaseFsck: reached end of problem group: +8618225127504cmnet201302182135452100210
13/08/01 22:24:02 WARN util.HBaseFsck: Naming new problem group: +8618285642723cmnet201302031921019768070
ERROR: (regions cqgprs,+8618285277826cmnet201306170027424674330,1375363962312.9d1e93b22cec90fd75361fa65b1d20d2. and cqgprs,+8618285642723cmnet201302031921019768070,1360873307626.f631cd8c6acc5e711e651d13536abe94.) There is an overlap in the region chain.
13/08/01 22:24:02 WARN util.HBaseFsck: reached end of problem group: +8618286275556cmnet201212270713444340110
13/08/01 22:24:02 WARN util.HBaseFsck: Naming new problem group: +8618323968833cmnet201306010239025175240
ERROR: (regions cqgprs,+8618323967956cmnet201306091923411365860,1375364143678.665dba6a14ebc9971422b39e079b00ae. and cqgprs,+8618323968833cmnet201306010239025175240,1372821719159.6d2fecc1b3f9049bbca83d84231eb365.) There is an overlap in the region chain.
13/08/01 22:24:02 WARN util.HBaseFsck: reached end of problem group: +8618323992353cmnet201306012336364819810
ERROR: There is a hole in the region chain between +8618375993383cmwap20130512235639430 and +8618375998629cmnet201305040821436779670.  You need to create a new .regioninfo and region dir in hdfs to plug the hole.
13/08/01 22:24:02 WARN util.HBaseFsck: Naming new problem group: +8618723686187cmnet201301191433522129820
ERROR: (regions cqgprs,+8618723683087cmnet201301300708363045080,1375364411992.4ee5787217c1da4895d95b3b92b8e3a2. and cqgprs,+8618723686187cmnet201301191433522129820,1362003066106.70b48899cc753a0036f11bb27d2194f9.) There is an overlap in the region chain.
13/08/01 22:24:02 WARN util.HBaseFsck: reached end of problem group: +8618723689138cmnet201301051742388948390
13/08/01 22:24:02 WARN util.HBaseFsck: Naming new problem group: +8618723711808cmnet201301031139206225900
ERROR: (regions cqgprs,+8618723710003cmnet201301250809235976320,1375364586329.40eed10648c9a43e3d5ce64e9d63fe00. and cqgprs,+8618723711808cmnet201301031139206225900,1361216401798.ebc442e02f5e784bce373538e06dd232.) There is an overlap in the region chain.
13/08/01 22:24:02 WARN util.HBaseFsck: reached end of problem group: +8618723714626cmnet201302122009459491970
ERROR: There is a hole in the region chain between +8618725888080cmnet201212271719506311400 and +8618725889786cmnet201302131646431671140.  You need to create a new .regioninfo and region dir in hdfs to plug the hole.  
    31.   
    32. 8.  delete '.META.','regionname','info:serverstartcode'  
    33. delete '.META.','regionname','info:regionserver'  
    34. delete '.META.','regionname','info:regioninfo'  
    35.    
    36. 9. flush '.META.'
major_compact '.META.'  
    posted on 2015-11-19 18:08 xzc 閱讀(1395) 評論(0)  編輯  收藏 所屬分類: hadoop
    主站蜘蛛池模板: 亚洲av区一区二区三| 亚洲国产精品无码AAA片| 免费播放国产性色生活片| 亚洲国产精品不卡毛片a在线| 精品亚洲成a人在线观看| 亚洲国产精品成人一区| 最近免费mv在线观看动漫| 亚洲精品在线播放视频| 成年女人毛片免费播放视频m| 国产成人高清亚洲一区91| 国产亚洲精久久久久久无码AV| 另类免费视频一区二区在线观看| 亚洲香蕉免费有线视频| 午夜免费福利影院| 国产VA免费精品高清在线| 亚洲精品永久www忘忧草| 国产青草视频在线观看免费影院| 免费一级全黄少妇性色生活片 | 亚洲男女内射在线播放| 国偷自产一区二区免费视频| 亚洲一区二区三区四区视频 | 亚洲三级在线免费观看| avtt亚洲天堂| 五月亭亭免费高清在线| 四虎影视永久在线精品免费| 亚洲综合男人的天堂色婷婷| 四虎影视永久免费视频观看| 久久久99精品免费观看| 青青青亚洲精品国产| 久久久无码精品亚洲日韩按摩| 国产色爽免费视频| 中文字幕亚洲免费无线观看日本 | 两个人日本WWW免费版| 久久久久se色偷偷亚洲精品av | 亚洲精品无码你懂的| 亚洲AV无码国产丝袜在线观看| 免费黄色网址入口| 最近2018中文字幕免费视频 | 国产又大又粗又硬又长免费| 无码国产精品一区二区免费模式| 亚洲A∨精品一区二区三区下载|