4243536b19
Adds region state check on hbck2 assigns/unassigns. Returns pid of -1 if in inappropriate state with logging explaination which suggests passing override if operator wants to assign/unassign anyways. Here is an example of what happens now if hbck2 tries an unassign and Region already unassigned: 2020-08-19 11:22:06,926 INFO [RpcServer.default.FPBQ.Fifo.handler=1,queue=0,port=50086] assignment.AssignmentManager(820): Failed {ENCODED => d1112e553991e938b6852f87774c91ee, NAME => 'TestHbck,zzzzz,1597861310769.d1112e553991e938b6852f87774c91ee.', STARTKEY => 'zzzzz', ENDKEY => ''} unassign, override=false; set override to by-pass state checks. org.apache.hadoop.hbase.client.DoNotRetryRegionException: Unexpected state for state=CLOSED, location=null, table=TestHbck, region=d1112e553991e938b6852f87774c91ee at org.apache.hadoop.hbase.master.assignment.AssignmentManager.preTransitCheck(AssignmentManager.java:583) at org.apache.hadoop.hbase.master.assignment.AssignmentManager.createOneUnassignProcedure(AssignmentManager.java:812) at org.apache.hadoop.hbase.master.MasterRpcServices.unassigns(MasterRpcServices.java:2616) at org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$HbckService$2.callBlockingMethod(MasterProtos.java) at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:397) at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:133) at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:338) at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:318) Previous it would just create the unassign anyways. Now must pass override to queue the procedure regardless. Safer. hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java javadoc on assigns/unassigns. Minor refactor in assigns/unassigns to cater to case where procedure may come back null (if override not set and fails state checks). hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java checkstyle cleanups. Clarifying javadoc on how there is no state checking when bulk assigns creating/enabling tables. createOneAssignProcedure and createOneUnassignProcedure now handle exceptions which now can be thrown if no override and region state is not appropriate. Aggregation of createAssignProcedure and createUnassignProcedure instances adding in region state check invoked if override is NOT set. hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStateNode.java Change to setProcedure so it returns passed proc as result instead of void Signed-off-by: Duo Zhang <zhangduo@apache.org> |
||
---|---|---|
.idea | ||
bin | ||
conf | ||
dev-support | ||
hbase-annotations | ||
hbase-archetypes | ||
hbase-assembly | ||
hbase-asyncfs | ||
hbase-build-configuration | ||
hbase-checkstyle | ||
hbase-client | ||
hbase-common | ||
hbase-endpoint | ||
hbase-examples | ||
hbase-external-blockcache | ||
hbase-hadoop-compat | ||
hbase-hadoop2-compat | ||
hbase-hbtop | ||
hbase-http | ||
hbase-it | ||
hbase-logging | ||
hbase-mapreduce | ||
hbase-metrics | ||
hbase-metrics-api | ||
hbase-procedure | ||
hbase-protocol | ||
hbase-protocol-shaded | ||
hbase-replication | ||
hbase-resource-bundle | ||
hbase-rest | ||
hbase-rsgroup | ||
hbase-server | ||
hbase-shaded | ||
hbase-shell | ||
hbase-testing-util | ||
hbase-thrift | ||
hbase-zookeeper | ||
src | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.pylintrc | ||
.rubocop.yml | ||
CHANGES.md | ||
LICENSE.txt | ||
NOTICE.txt | ||
README.txt | ||
RELEASENOTES.md | ||
pom.xml |
README.txt
Apache HBase [1] is an open-source, distributed, versioned, column-oriented store modeled after Google' Bigtable: A Distributed Storage System for Structured Data by Chang et al.[2] Just as Bigtable leverages the distributed data storage provided by the Google File System, HBase provides Bigtable-like capabilities on top of Apache Hadoop [3]. To get started using HBase, the full documentation for this release can be found under the doc/ directory that accompanies this README. Using a browser, open the docs/index.html to view the project home page (or browse to [1]). The hbase 'book' at http://hbase.apache.org/book.html has a 'quick start' section and is where you should being your exploration of the hbase project. The latest HBase can be downloaded from an Apache Mirror [4]. The source code can be found at [5] The HBase issue tracker is at [6] Apache HBase is made available under the Apache License, version 2.0 [7] The HBase mailing lists and archives are listed here [8]. The HBase distribution includes cryptographic software. See the export control notice here [9]. 1. http://hbase.apache.org 2. http://research.google.com/archive/bigtable.html 3. http://hadoop.apache.org 4. http://www.apache.org/dyn/closer.cgi/hbase/ 5. https://hbase.apache.org/source-repository.html 6. https://hbase.apache.org/issue-tracking.html 7. http://hbase.apache.org/license.html 8. http://hbase.apache.org/mail-lists.html 9. https://hbase.apache.org/export_control.html