[ 
https://issues.apache.org/jira/browse/HBASE-22567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16878644#comment-16878644
 ] 

Wellington Chevreuil commented on HBASE-22567:
----------------------------------------------

{quote}HMaster adds a given missing table's row, whereas presenting in HDFS, to 
META upon restart.
{quote}
Thanks for pointing it, [~daisuke.kobayashi]! While this would help indeed, I 
think it's still worth kind of re-implement table state recovery logic in 
HBCK2. My concern here is that this depends on ZK state 
([_queryForTableStates_|https://github.com/apache/hbase/blob/ac4e52880b2da6d0a2c2a9e949aa55d1dd4e7371/hbase-server/src/main/java/org/apache/hadoop/hbase/master/TableStateManager.java#L329]
 here iterates through table znodes in ZK), but we may face scenarios where ZK 
state is invalid (specially these days when a widespread workaround among 
operators for trying to recover hbase involves wipe out of "/hbase" znode in 
ZK).

> HBCK2 addMissingRegionsToMeta
> -----------------------------
>
>                 Key: HBASE-22567
>                 URL: https://issues.apache.org/jira/browse/HBASE-22567
>             Project: HBase
>          Issue Type: New Feature
>            Reporter: Wellington Chevreuil
>            Assignee: Wellington Chevreuil
>            Priority: Major
>
> Following latest discussion on HBASE-21745, this proposes an hbck2 command 
> that allows for inserting back regions missing in META that still have 
> *regioninfo* available in HDFS. Although this is still an interactive and 
> simpler version than the old _OfflineMetaRepair_, it still relies on hdfs 
> state as the source of truth, and performs META updates mostly independently 
> from Master (apart from requiring Meta table been online).
> For a more detailed explanation on this command behaviour, pasting _command 
> usage_ text:
> {noformat}
> To be used for scenarios where some regions may be missing in META,
> but there's still a valid 'regioninfo' metadata file on HDFS.
> This is a lighter version of 'OfflineMetaRepair' tool commonly used for
> similar issues on 1.x release line.
> This command needs META to be online. For each table name passed as
> parameter, it performs a diff between regions available in META,
> against existing regions dirs on HDFS. Then, for region dirs with
> no matches in META, it reads regioninfo metadata file and
> re-creates given region in META. Regions are re-created in 'CLOSED'
> state at META table only, but not in Masters' cache, and are not
> assigned either. A rolling Masters restart, followed by a
> hbck2 'assigns' command with all re-inserted regions is required.
> This hbck2 'assigns' command is printed for user convenience.
> WARNING: To avoid potential region overlapping problems due to ongoing
> splits, this command disables given tables while re-inserting regions.
> An example adding missing regions for tables 'table_1' and 'table_2':
> $ HBCK2 addMissingRegionsInMeta table_1 table_2
> Returns hbck2 'assigns' command with all re-inserted regions.{noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to