[GitHub] [hbase-operator-tools] NihalJain commented on pull request #135: HBASE-27961 Running assigns/unassigns command with large number of files/regions throws CallTimeoutException
NihalJain commented on PR #135: URL: https://github.com/apache/hbase-operator-tools/pull/135#issuecomment-1690226389 In order to test the change build codebase locally and deployed hbck2 jar on a real cluster running 2.5x. For overall tool tested following: - Run help and ensure looks as expected Tested the following for each of the command: `assigns`, `unassigns` and `bypass` - Run existing command with no batching and ensure no changes in behavior - Run command with batching and ensure works as expected - Validate invalid data passed for batch size throws exception in following cases: - pass wrong data type - pass value <= 0 NOTE: In case of testing for `bypass` dummy process id's were passed but logs confirm proper working. Detailed test run logs for reference: ``` $ export HBCK_JAR=hbase-hbck2-1.3.0-SNAPSHOT.jar $ hbase --config conf hbck -j $HBCK_JAR usage: HBCK2 [OPTIONS] COMMAND Options: -d,--debug run with debug output -h,--helpoutput this help message -p,--hbase.zookeeper.property.clientPortport of hbase ensemble -q,--hbase.zookeeper.quorum hbase ensemble -s,--skipskip hbase version check (PleaseHoldException) -v,--version this hbck2 version -z,--zookeeper.znode.parent parent znode of hbase ensemble Command: addFsRegionsMissingInMeta [OPTIONS] [...|-i ...] Options: -i,--inputFiles take one or more files of namespace or table names -o,--outputFile name/prefix of the file(s) to dump region names -n,--numLines number of lines to be written to each output file To be used when regions missing from hbase:meta but directories are present still in HDFS. Can happen if user has run _hbck1_ 'OfflineMetaRepair' against an hbase-2.x cluster. Needs hbase:meta to be online. For each table name passed as parameter, performs diff between regions available in hbase:meta and region dirs on HDFS. Then for dirs with no hbase:meta matches, it reads the 'regioninfo' metadata file and re-creates given region in hbase:meta. Regions are re-created in 'CLOSED' state in the hbase:meta table, but not in the Masters' cache, and they are not assigned either. To get these regions online, run the HBCK2 'assigns'command printed when this command-run completes. NOTE: If using hbase releases older than 2.3.0, a rolling restart of HMasters is needed prior to executing the set of 'assigns' output. An example adding missing regions for tables 'tbl_1' in the default namespace, 'tbl_2' in namespace 'n1' and for all tables from namespace 'n2': $ HBCK2 addFsRegionsMissingInMeta default:tbl_1 n1:tbl_2 n2 Returns HBCK2 an 'assigns' command with all re-inserted regions. SEE ALSO: reportMissingRegionsInMeta SEE ALSO: fixMeta If -i or --inputFiles is specified, pass one or more input file names. Each file contains , one per line. For example: $ HBCK2 addFsRegionsMissingInMeta -i fileName1 fileName2 If -o or --outputFile is specified, the output file(s) can be passed as input to assigns command via -i or -inputFiles option. If -n or --numLines is specified, and say it is set to 100, this will create files with prefix as value passed by -o or --outputFile option. Each file will have 100 region names (max.), one per line. For example: $ HBCK2 addFsRegionsMissingInMeta -o outputFilePrefix -n 100 -i fileName1 fileName2 But if -n is not specified, but -o is specified, it will dump all region names in a single file, one per line. NOTE: -n option is applicable only if -o option is specified. assigns [OPTIONS] [...|-i ...] Options: -o,--override override ownership by another procedure -i,--inputFiles take one or more files of encoded region names -b,--batchSize number of regions to process in a batch A 'raw' assign that can be used even during Master initialization (if the -skip flag is specified). Skirts Coprocessors. Pass one or more encoded region names. 1588230740 is the hard-coded name for the hbase:meta region and de00010733901a05f5a2a3a382e27dd4 is an example of what a user-space encoded region name looks like. For example: $ HBCK2 assigns 1588230740 de00010733901a05f5a2a3a382e27dd4 Returns the pid(s) of the created AssignProcedure(s) or -1 if none. If -i or --inputFiles is specified, pass one or more input file names. Each file contains encoded region names, one per line. For example: $
[GitHub] [hbase-operator-tools] NihalJain commented on pull request #135: HBASE-27961 Running assigns/unassigns command with large number of files/regions throws CallTimeoutException
NihalJain commented on PR #135: URL: https://github.com/apache/hbase-operator-tools/pull/135#issuecomment-1690281118 Based on code, I was able to identify 3 commands: `assigns`, `unassigns` and `bypass`, which should have batching in case large list of input is passed and have made a change for same. Please let me know, in case I missed any other command, for which we could add batching. Also I find the semantics of what is print in sysout is not well defined. For few commands, say `assigns`, it prints output as a list as follows: `[425, 426, 427, 428, 429]`; while for others, like `unassigns`, `bypass` it prints as follows: `415, 416, 417, 418, 419` I feel we should keep this in sync across commands, by following either approach (I prefer `[425, 426, 427, 428, 429]`), to ease parsing of the outputs. Let me know what do you think about this; I can raise a JIRA to fix the same. CC: @wchevreuil , @petersomogyi -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [hbase-operator-tools] NihalJain commented on pull request #135: HBASE-27961 Running assigns/unassigns command with large number of files/regions throws CallTimeoutException
NihalJain commented on PR #135: URL: https://github.com/apache/hbase-operator-tools/pull/135#issuecomment-1706728002 Rebased code and removed unrelated code format changes as they have already been fixed with https://github.com/apache/hbase-operator-tools/pull/137 @petersomogyi , @wchevreuil could you please review the changes? Also, why this is needed is captured in [JIRA](https://issues.apache.org/jira/browse/HBASE-27961) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [hbase-operator-tools] NihalJain commented on pull request #135: HBASE-27961 Running assigns/unassigns command with large number of files/regions throws CallTimeoutException
NihalJain commented on PR #135: URL: https://github.com/apache/hbase-operator-tools/pull/135#issuecomment-1708419642 > Nice improvement! I only have a minor comment on the log. Fixed the review comment. Thanks for taking time to review this @petersomogyi. I will wait until EOD for any other reviews/comments by others and then merge this by EOD. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[GitHub] [hbase-operator-tools] NihalJain commented on pull request #135: HBASE-27961 Running assigns/unassigns command with large number of files/regions throws CallTimeoutException
NihalJain commented on PR #135: URL: https://github.com/apache/hbase-operator-tools/pull/135#issuecomment-1708819815 > Also, I observed that the semantics of what is printed in sysout is not well defined. For few commands, say `assigns`, it prints output as a list: `[425, 426, 427, 428, 429]`; while for others, like `unassigns`, `bypass` it prints: `415, 416, 417, 418, 419`. > > I feel we should keep this in sync across commands, by following either approach (I prefer `[425, 426, 427, 428, 429]`), to ease parsing of the outputs. Let me know what do you think about this; I can raise a JIRA to fix the same. Hello, @petersomogyi Any thoughts on this? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org