[
https://issues.apache.org/jira/browse/HBASE-22567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16883895#comment-16883895
]
stack commented on HBASE-22567:
-------------------------------
I defer to your support experience as to how best to progress since you know
better what is needed.
I see the main differences as:
* online vs offline repair
* total replace of meta vs targetted surgery
I went back to hbck1 classes after poking around trying to figure how we'd
implement fixHoles, fixOverlaps as well as rebuild, and general reporting. It
seemed to me that a bunch of basic infrastructure had to be built up first
before we do fixHoles, reporting, etc. Rather than try and write from scratch,
I figured I would try and exploit what already exists. hbck1 has those
datastructures that hold a bunch of state -- who has what, where the info was
gleaned from (hdfs or meta) and so on -- which seemed useful as building blocks
for fixup. hbck1 is in violation of hbase2/hbck2 principals in many regards but
at least when it comes to rebuild of meta, it was adaptable. Was going to look
at trying to make use of other facility in hbck1 in follow-on issues if
possible.
Yeah, OfflineMetaRepair from hbck1 kills the meta as far as hbase2 is
concerned. Let me say so on [~brfrn169]'s discussion thread. I'm game for
chatting offline anytime if that would help here. Meantime let me go back and
finish review of the PR.
> HBCK2 addMissingRegionsToMeta
> -----------------------------
>
> Key: HBASE-22567
> URL: https://issues.apache.org/jira/browse/HBASE-22567
> Project: HBase
> Issue Type: New Feature
> Components: hbck2
> 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.14#76016)