You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2016/12/21 00:52:44 UTC
[3/3] hbase git commit: HBASE-16008 A robust way deal with early
termination of HBCK (Stephen Yuan Jiang)
HBASE-16008 A robust way deal with early termination of HBCK (Stephen Yuan Jiang)
Amending-Author: Andrew Purtell <ap...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/f63b5a0d
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/f63b5a0d
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/f63b5a0d
Branch: refs/heads/0.98
Commit: f63b5a0db9e630af69654fca59cf7ab3f724245f
Parents: ecdcb22
Author: Stephen Yuan Jiang <sy...@gmail.com>
Authored: Sat Jul 23 20:21:32 2016 -0700
Committer: Andrew Purtell <ap...@apache.org>
Committed: Tue Dec 20 15:38:45 2016 -0800
----------------------------------------------------------------------
.../apache/hadoop/hbase/client/HBaseAdmin.java | 16 +
.../hadoop/hbase/client/HConnectionManager.java | 8 +
.../hbase/zookeeper/ZooKeeperWatcher.java | 5 +
.../hbase/protobuf/generated/MasterProtos.java | 1632 ++++++++++++++----
.../protobuf/generated/SnapshotProtos.java | 94 +-
hbase-protocol/src/main/protobuf/Master.proto | 13 +
.../hadoop/hbase/master/CatalogJanitor.java | 11 +
.../org/apache/hadoop/hbase/master/HMaster.java | 38 +-
.../hadoop/hbase/master/MasterServices.java | 7 +
.../org/apache/hadoop/hbase/util/HBaseFsck.java | 183 +-
.../zookeeper/MasterMaintenanceModeTracker.java | 81 +
.../hadoop/hbase/master/TestCatalogJanitor.java | 5 +
12 files changed, 1608 insertions(+), 485 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/f63b5a0d/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
index 745da57..09801f5 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
@@ -108,6 +108,8 @@ import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetSchemaAlterSta
import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;
import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;
import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;
+import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsInMaintenanceModeRequest;
+import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsInMaintenanceModeResponse;
import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsProcedureDoneRequest;
import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsProcedureDoneResponse;
import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsRestoreSnapshotDoneRequest;
@@ -2245,6 +2247,20 @@ public class HBaseAdmin implements Abortable, Closeable {
}
}
+ /**
+ * Check whether Master is in maintenance mode
+ *
+ * @throws IOException if a remote or network exception occurs
+ */
+ boolean isMasterInMaintenanceMode() throws IOException {
+ return executeCallable(new MasterCallable<IsInMaintenanceModeResponse>(getConnection()) {
+ @Override
+ public IsInMaintenanceModeResponse call() throws ServiceException {
+ return master.isMasterInMaintenanceMode(null,
+ IsInMaintenanceModeRequest.newBuilder().build());
+ }
+ }).getInMaintenanceMode();
+ }
/**
* @return cluster status
http://git-wip-us.apache.org/repos/asf/hbase/blob/f63b5a0d/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java
index 7e723eb..fa8e52d 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java
@@ -126,6 +126,8 @@ import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabled
import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;
import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledRequest;
import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledResponse;
+import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsInMaintenanceModeRequest;
+import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsInMaintenanceModeResponse;
import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsMasterRunningRequest;
import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsMasterRunningResponse;
import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsProcedureDoneRequest;
@@ -2086,6 +2088,12 @@ public class HConnectionManager {
}
@Override
+ public IsInMaintenanceModeResponse isMasterInMaintenanceMode(RpcController controller,
+ IsInMaintenanceModeRequest request) throws ServiceException {
+ return stub.isMasterInMaintenanceMode(controller, request);
+ }
+
+ @Override
public BalanceResponse balance(RpcController controller,
BalanceRequest request) throws ServiceException {
return stub.balance(controller, request);
http://git-wip-us.apache.org/repos/asf/hbase/blob/f63b5a0d/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java
index 57347e6..9a259c0 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java
@@ -120,6 +120,8 @@ public class ZooKeeperWatcher implements Watcher, Abortable, Closeable {
public String recoveringRegionsZNode;
// znode containing namespace descriptors
public static String namespaceZNode = "namespace";
+ // znode of indicating master maintenance mode
+ public static String masterMaintZNode = "masterMaintenance";
// Certain ZooKeeper nodes need to be world-readable
public static final ArrayList<ACL> CREATOR_ALL_AND_WORLD_READABLE =
@@ -199,6 +201,7 @@ public class ZooKeeperWatcher implements Watcher, Abortable, Closeable {
ZKUtil.createAndFailSilent(this, backupMasterAddressesZNode);
ZKUtil.createAndFailSilent(this, tableLockZNode);
ZKUtil.createAndFailSilent(this, recoveringRegionsZNode);
+ ZKUtil.createAndFailSilent(this, masterMaintZNode);
} catch (KeeperException e) {
throw new ZooKeeperConnectionException(
prefix("Unexpected KeeperException creating base node"), e);
@@ -441,6 +444,8 @@ public class ZooKeeperWatcher implements Watcher, Abortable, Closeable {
conf.get("zookeeper.znode.recovering.regions", "recovering-regions"));
namespaceZNode = ZKUtil.joinZNode(baseZNode,
conf.get("zookeeper.znode.namespace", "namespace"));
+ masterMaintZNode = ZKUtil.joinZNode(baseZNode,
+ conf.get("zookeeper.znode.masterMaintenance", "master-maintenance"));
}
/**