You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "stack (JIRA)" <ji...@apache.org> on 2019/07/12 23:28:00 UTC

[jira] [Commented] (HBASE-22688) [HBCK2] Add filesystem fixup to hbck2

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

stack commented on HBASE-22688:
-------------------------------

Attached a patch. Exposes hbck1 filesystem fixups in aggregate in HBCK2. Depends on hbck1 being ported to hbck2 so I have not made a PR yet (i.e. HBASE-22680 does this port but you fellows might like that patch).

> [HBCK2] Add filesystem fixup to hbck2
> -------------------------------------
>
>                 Key: HBASE-22688
>                 URL: https://issues.apache.org/jira/browse/HBASE-22688
>             Project: HBase
>          Issue Type: Sub-task
>          Components: hbck2
>            Reporter: stack
>            Priority: Major
>         Attachments: 0001-HBASE-22688-HBCK2-Add-filesystem-fixup-to-hbck2.patch
>
>
> Poking around, was going to add a 'filesystem' command to hbck2. It would take nothing or a list of one or more table names and optionally a path to a region. If nothing passed, it would review the fs for corrupt hfiles and bad links reporting the bad as it went. If --fix is passed, it will sideline corrupt files and mis-links. Would advise reopen/rolling-restart if change made. For starters would make use of the hbck1 fs tools added by HBASE-22680.
> Above would exploit the following facillty from hbck1.
>  -checkCorruptHFiles
>  -sidelineCorruptHFiles
> -fixVersionFile
> -fixReferenceFiles
> -fixHFileLinks
> This would address the following from parent issue at least:
>  * Fix hfile link problems...
>  * Enumerate store files to determine file level corruption...
> I noticed that the 'read-only' hbck1 tool HBaseFsck which is present in the hbase2 codebase actually allows fixes in the filesystem; i.e. you'd run HBaseFsck and pass say -fixVersionFile. This is mixed in w/ all the other hbck1 noise but an operator should be able to make progress with what is there regards hfile corruption, bad links, etc. In other words, could just doc this facility in the hbck2 tool point folks to the latent hbck1 HBaseFsck if they need to do fixup of the fs (Would be confusing but it exists).



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)