You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2014/07/03 04:03:07 UTC
[2/6] HBASE-4495 CatalogTracker has an identity crisis;
needs to be cut-back in scope (Mikhail Antonov)
http://git-wip-us.apache.org/repos/asf/hbase/blob/24a0a2a2/hbase-server/src/test/java/org/apache/hadoop/hbase/catalog/TestMetaReaderEditorNoCluster.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/catalog/TestMetaReaderEditorNoCluster.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/catalog/TestMetaReaderEditorNoCluster.java
deleted file mode 100644
index ea2324c..0000000
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/catalog/TestMetaReaderEditorNoCluster.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hbase.catalog;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.NavigableMap;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.hbase.Abortable;
-import org.apache.hadoop.hbase.Cell;
-import org.apache.hadoop.hbase.CellScannable;
-import org.apache.hadoop.hbase.CellUtil;
-import org.apache.hadoop.hbase.RegionLocations;
-import org.apache.hadoop.hbase.TableName;
-import org.apache.hadoop.hbase.HBaseTestingUtility;
-import org.apache.hadoop.hbase.HConstants;
-import org.apache.hadoop.hbase.HRegionInfo;
-import org.apache.hadoop.hbase.HRegionLocation;
-import org.apache.hadoop.hbase.KeyValue;
-import org.apache.hadoop.hbase.MediumTests;
-import org.apache.hadoop.hbase.ServerName;
-import org.apache.hadoop.hbase.client.ClusterConnection;
-import org.apache.hadoop.hbase.client.HConnection;
-import org.apache.hadoop.hbase.client.HConnectionManager;
-import org.apache.hadoop.hbase.client.HConnectionTestingUtility;
-import org.apache.hadoop.hbase.client.Result;
-import org.apache.hadoop.hbase.ipc.PayloadCarryingRpcController;
-import org.apache.hadoop.hbase.protobuf.generated.ClientProtos;
-import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ScanRequest;
-import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ScanResponse;
-import org.apache.hadoop.hbase.util.Bytes;
-import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.mockito.Mockito;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
-
-import com.google.protobuf.RpcController;
-import com.google.protobuf.ServiceException;
-
-/**
- * Test MetaReader/Editor but without spinning up a cluster.
- * We mock regionserver back and forth (we do spin up a zk cluster).
- */
-@Category(MediumTests.class)
-public class TestMetaReaderEditorNoCluster {
- private static final Log LOG = LogFactory.getLog(TestMetaReaderEditorNoCluster.class);
- private static final HBaseTestingUtility UTIL = new HBaseTestingUtility();
- private static final Abortable ABORTABLE = new Abortable() {
- boolean aborted = false;
- @Override
- public void abort(String why, Throwable e) {
- LOG.info(why, e);
- this.aborted = true;
- throw new RuntimeException(e);
- }
- @Override
- public boolean isAborted() {
- return this.aborted;
- }
- };
-
- @Before
- public void before() throws Exception {
- UTIL.startMiniZKCluster();
- }
-
- @After
- public void after() throws IOException {
- UTIL.shutdownMiniZKCluster();
- }
-
- @Test
- public void testGetHRegionInfo() throws IOException {
- assertNull(HRegionInfo.getHRegionInfo(new Result()));
-
- List<Cell> kvs = new ArrayList<Cell>();
- Result r = Result.create(kvs);
- assertNull(HRegionInfo.getHRegionInfo(r));
-
- byte [] f = HConstants.CATALOG_FAMILY;
- // Make a key value that doesn't have the expected qualifier.
- kvs.add(new KeyValue(HConstants.EMPTY_BYTE_ARRAY, f,
- HConstants.SERVER_QUALIFIER, f));
- r = Result.create(kvs);
- assertNull(HRegionInfo.getHRegionInfo(r));
- // Make a key that does not have a regioninfo value.
- kvs.add(new KeyValue(HConstants.EMPTY_BYTE_ARRAY, f,
- HConstants.REGIONINFO_QUALIFIER, f));
- HRegionInfo hri = HRegionInfo.getHRegionInfo(Result.create(kvs));
- assertTrue(hri == null);
- // OK, give it what it expects
- kvs.clear();
- kvs.add(new KeyValue(HConstants.EMPTY_BYTE_ARRAY, f,
- HConstants.REGIONINFO_QUALIFIER,
- HRegionInfo.FIRST_META_REGIONINFO.toByteArray()));
- hri = HRegionInfo.getHRegionInfo(Result.create(kvs));
- assertNotNull(hri);
- assertTrue(hri.equals(HRegionInfo.FIRST_META_REGIONINFO));
- }
-
- /**
- * Test that MetaReader will ride over server throwing
- * "Server not running" IOEs.
- * @see @link {https://issues.apache.org/jira/browse/HBASE-3446}
- * @throws IOException
- * @throws InterruptedException
- */
- @Test
- public void testRideOverServerNotRunning()
- throws IOException, InterruptedException, ServiceException {
- // Need a zk watcher.
- ZooKeeperWatcher zkw = new ZooKeeperWatcher(UTIL.getConfiguration(),
- this.getClass().getSimpleName(), ABORTABLE, true);
- // This is a servername we use in a few places below.
- ServerName sn = ServerName.valueOf("example.com", 1234, System.currentTimeMillis());
-
- HConnection connection;
- CatalogTracker ct = null;
- try {
- // Mock an ClientProtocol. Our mock implementation will fail a few
- // times when we go to open a scanner.
- final ClientProtos.ClientService.BlockingInterface implementation =
- Mockito.mock(ClientProtos.ClientService.BlockingInterface.class);
- // When scan called throw IOE 'Server not running' a few times
- // before we return a scanner id. Whats WEIRD is that these
- // exceptions do not show in the log because they are caught and only
- // printed if we FAIL. We eventually succeed after retry so these don't
- // show. We will know if they happened or not because we will ask
- // mockito at the end of this test to verify that scan was indeed
- // called the wanted number of times.
- List<Cell> kvs = new ArrayList<Cell>();
- final byte [] rowToVerify = Bytes.toBytes("rowToVerify");
- kvs.add(new KeyValue(rowToVerify,
- HConstants.CATALOG_FAMILY, HConstants.REGIONINFO_QUALIFIER,
- HRegionInfo.FIRST_META_REGIONINFO.toByteArray()));
- kvs.add(new KeyValue(rowToVerify,
- HConstants.CATALOG_FAMILY, HConstants.SERVER_QUALIFIER,
- Bytes.toBytes(sn.getHostAndPort())));
- kvs.add(new KeyValue(rowToVerify,
- HConstants.CATALOG_FAMILY, HConstants.STARTCODE_QUALIFIER,
- Bytes.toBytes(sn.getStartcode())));
- final List<CellScannable> cellScannables = new ArrayList<CellScannable>(1);
- cellScannables.add(Result.create(kvs));
- final ScanResponse.Builder builder = ScanResponse.newBuilder();
- for (CellScannable result : cellScannables) {
- builder.addCellsPerResult(((Result)result).size());
- }
- Mockito.when(implementation.scan((RpcController) Mockito.any(), (ScanRequest) Mockito.any()))
- .thenThrow(new ServiceException("Server not running (1 of 3)"))
- .thenThrow(new ServiceException("Server not running (2 of 3)"))
- .thenThrow(new ServiceException("Server not running (3 of 3)"))
- .thenReturn(ScanResponse.newBuilder().setScannerId(1234567890L).build())
- .thenAnswer(new Answer<ScanResponse>() {
- public ScanResponse answer(InvocationOnMock invocation) throws Throwable {
- ((PayloadCarryingRpcController) invocation.getArguments()[0]).setCellScanner(CellUtil
- .createCellScanner(cellScannables));
- return builder.build();
- }
- }).thenReturn(ScanResponse.newBuilder().setMoreResults(false).build());
- // Associate a spied-upon HConnection with UTIL.getConfiguration. Need
- // to shove this in here first so it gets picked up all over; e.g. by
- // HTable.
- connection = HConnectionTestingUtility.getSpiedConnection(UTIL.getConfiguration());
-
- // Fix the location lookup so it 'works' though no network. First
- // make an 'any location' object.
- final HRegionLocation anyLocation =
- new HRegionLocation(HRegionInfo.FIRST_META_REGIONINFO, sn);
- final RegionLocations rl = new RegionLocations(anyLocation);
- // Return the RegionLocations object when locateRegion
- // The ugly format below comes of 'Important gotcha on spying real objects!' from
- // http://mockito.googlecode.com/svn/branches/1.6/javadoc/org/mockito/Mockito.html
- ClusterConnection cConnection =
- HConnectionTestingUtility.getSpiedClusterConnection(UTIL.getConfiguration());
- Mockito.doReturn(rl).when
- (cConnection).locateRegion((TableName)Mockito.any(), (byte[])Mockito.any(),
- Mockito.anyBoolean(), Mockito.anyBoolean(), Mockito.anyInt());
-
- // Now shove our HRI implementation into the spied-upon connection.
- Mockito.doReturn(implementation).
- when(connection).getClient(Mockito.any(ServerName.class));
-
- // Now start up the catalogtracker with our doctored Connection.
- ct = new CatalogTracker(zkw, null, connection, ABORTABLE);
- ct.start();
- // Scan meta for user tables and verify we got back expected answer.
- NavigableMap<HRegionInfo, Result> hris = MetaReader.getServerUserRegions(ct, sn);
- assertEquals(1, hris.size());
- assertTrue(hris.firstEntry().getKey().equals(HRegionInfo.FIRST_META_REGIONINFO));
- assertTrue(Bytes.equals(rowToVerify, hris.firstEntry().getValue().getRow()));
- // Finally verify that scan was called four times -- three times
- // with exception and then on 4th, 5th and 6th attempt we succeed
- Mockito.verify(implementation, Mockito.times(6)).
- scan((RpcController)Mockito.any(), (ScanRequest)Mockito.any());
- } finally {
- if (ct != null) ct.stop();
- HConnectionManager.deleteConnection(UTIL.getConfiguration());
- zkw.close();
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/hbase/blob/24a0a2a2/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java
index 54b751d..caf3c61 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java
@@ -54,7 +54,6 @@ import org.apache.hadoop.hbase.TableNotDisabledException;
import org.apache.hadoop.hbase.TableNotEnabledException;
import org.apache.hadoop.hbase.TableNotFoundException;
import org.apache.hadoop.hbase.ZooKeeperConnectionException;
-import org.apache.hadoop.hbase.catalog.CatalogTracker;
import org.apache.hadoop.hbase.constraint.ConstraintException;
import org.apache.hadoop.hbase.executor.EventHandler;
import org.apache.hadoop.hbase.master.AssignmentManager;
@@ -1764,18 +1763,13 @@ public class TestAdmin {
final byte [] nameBytes = Bytes.toBytes(name);
HTable t = TEST_UTIL.createTable(nameBytes, HConstants.CATALOG_FAMILY);
TEST_UTIL.createMultiRegions(t, HConstants.CATALOG_FAMILY);
- CatalogTracker ct = new CatalogTracker(TEST_UTIL.getConfiguration());
- ct.start();
- try {
- HRegionLocation regionLocation = t.getRegionLocation("mmm");
- HRegionInfo region = regionLocation.getRegionInfo();
- byte[] regionName = region.getRegionName();
- Pair<HRegionInfo, ServerName> pair = admin.getRegion(regionName, ct);
- assertTrue(Bytes.equals(regionName, pair.getFirst().getRegionName()));
- pair = admin.getRegion(region.getEncodedNameAsBytes(), ct);
- assertTrue(Bytes.equals(regionName, pair.getFirst().getRegionName()));
- } finally {
- ct.stop();
- }
+
+ HRegionLocation regionLocation = t.getRegionLocation("mmm");
+ HRegionInfo region = regionLocation.getRegionInfo();
+ byte[] regionName = region.getRegionName();
+ Pair<HRegionInfo, ServerName> pair = admin.getRegion(regionName);
+ assertTrue(Bytes.equals(regionName, pair.getFirst().getRegionName()));
+ pair = admin.getRegion(region.getEncodedNameAsBytes());
+ assertTrue(Bytes.equals(regionName, pair.getFirst().getRegionName()));
}
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/24a0a2a2/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaScanner.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaScanner.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaScanner.java
index 4e5a656..77c1cbc 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaScanner.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaScanner.java
@@ -24,7 +24,6 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
import java.math.BigDecimal;
import java.util.List;
@@ -34,14 +33,13 @@ import java.util.Random;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hbase.MetaTableAccessor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.HRegionInfo;
import org.apache.hadoop.hbase.MediumTests;
import org.apache.hadoop.hbase.ServerName;
-import org.apache.hadoop.hbase.catalog.CatalogTracker;
-import org.apache.hadoop.hbase.catalog.MetaEditor;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.util.StoppableImplementation;
import org.apache.hadoop.hbase.util.Threads;
@@ -50,6 +48,7 @@ import org.junit.After;
import org.junit.Assert;
import org.junit.Test;
import org.junit.experimental.categories.Category;
+
@Category(MediumTests.class)
public class TestMetaScanner {
final Log LOG = LogFactory.getLog(getClass());
@@ -127,8 +126,6 @@ public class TestMetaScanner {
TableName.valueOf("testConcurrentMetaScannerAndCatalogJanitor");
final byte[] FAMILY = Bytes.toBytes("family");
TEST_UTIL.createTable(TABLENAME, FAMILY);
- final CatalogTracker catalogTracker = mock(CatalogTracker.class);
- when(catalogTracker.getConnection()).thenReturn(TEST_UTIL.getHBaseAdmin().getConnection());
class RegionMetaSplitter extends StoppableImplementation implements Runnable {
Random random = new Random();
@@ -169,7 +166,8 @@ public class TestMetaScanner {
Bytes.toBytes(midKey),
end);
- MetaEditor.splitRegion(catalogTracker, parent, splita, splitb, ServerName.valueOf("fooserver", 1, 0));
+ MetaTableAccessor.splitRegion(TEST_UTIL.getHBaseAdmin().getConnection(),
+ parent, splita, splitb, ServerName.valueOf("fooserver", 1, 0));
Threads.sleep(random.nextInt(200));
} catch (Throwable e) {
http://git-wip-us.apache.org/repos/asf/hbase/blob/24a0a2a2/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestScannerTimeout.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestScannerTimeout.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestScannerTimeout.java
index e971e4f..65fb0d6 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestScannerTimeout.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestScannerTimeout.java
@@ -27,7 +27,7 @@ import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.LargeTests;
-import org.apache.hadoop.hbase.catalog.MetaReader;
+import org.apache.hadoop.hbase.MetaTableAccessor;
import org.apache.hadoop.hbase.regionserver.HRegionServer;
import org.apache.hadoop.hbase.util.Bytes;
import org.junit.AfterClass;
@@ -165,7 +165,7 @@ public class TestScannerTimeout {
Scan scan = new Scan();
scan.setCaching(SCANNER_CACHING);
LOG.info("************ TEST3686A");
- MetaReader.fullScanMetaAndPrint(TEST_UTIL.getHBaseCluster().getMaster().getCatalogTracker());
+ MetaTableAccessor.fullScanMetaAndPrint(TEST_UTIL.getHBaseAdmin().getConnection());
// Set a very high timeout, we want to test what happens when a RS
// fails but the region is recovered before the lease times out.
// Since the RS is already created, this conf is client-side only for
http://git-wip-us.apache.org/repos/asf/hbase/blob/24a0a2a2/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionServerObserver.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionServerObserver.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionServerObserver.java
index ada3e6f..5920bb5 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionServerObserver.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionServerObserver.java
@@ -35,7 +35,7 @@ import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.MediumTests;
import org.apache.hadoop.hbase.MiniHBaseCluster;
import org.apache.hadoop.hbase.TableName;
-import org.apache.hadoop.hbase.catalog.MetaEditor;
+import org.apache.hadoop.hbase.MetaTableAccessor;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.Mutation;
import org.apache.hadoop.hbase.regionserver.HRegion;
@@ -152,7 +152,7 @@ public class TestRegionServerObserver {
mergedRegion = rmt.stepsBeforePONR(rs, rs, false);
rmt.prepareMutationsForMerge(mergedRegion.getRegionInfo(), regionA.getRegionInfo(),
regionB.getRegionInfo(), rs.getServerName(), metaEntries);
- MetaEditor.mutateMetaTable(rs.getCatalogTracker(), metaEntries);
+ MetaTableAccessor.mutateMetaTable(rs.getShortCircuitConnection(), metaEntries);
}
@Override
http://git-wip-us.apache.org/repos/asf/hbase/blob/24a0a2a2/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.java
index f302f10..491c2c6 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.java
@@ -45,10 +45,9 @@ import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.LargeTests;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.TableExistsException;
-import org.apache.hadoop.hbase.catalog.CatalogTracker;
-import org.apache.hadoop.hbase.catalog.MetaEditor;
-import org.apache.hadoop.hbase.catalog.MetaReader;
+import org.apache.hadoop.hbase.MetaTableAccessor;
import org.apache.hadoop.hbase.client.HConnection;
+import org.apache.hadoop.hbase.client.HConnectionManager;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
@@ -474,11 +473,12 @@ public class TestLoadIncrementalHFilesSplitRecovery {
dir = buildBulkFiles(tableName, 3);
// Mess it up by leaving a hole in the hbase:meta
- CatalogTracker ct = new CatalogTracker(util.getConfiguration());
- List<HRegionInfo> regionInfos = MetaReader.getTableRegions(ct, TableName.valueOf(tableName));
+ HConnection hConnection = HConnectionManager.getConnection(util.getConfiguration());
+ List<HRegionInfo> regionInfos = MetaTableAccessor.getTableRegions(
+ util.getZooKeeperWatcher(), hConnection, TableName.valueOf(tableName));
for (HRegionInfo regionInfo : regionInfos) {
if (Bytes.equals(regionInfo.getStartKey(), HConstants.EMPTY_BYTE_ARRAY)) {
- MetaEditor.deleteRegion(ct, regionInfo);
+ MetaTableAccessor.deleteRegion(hConnection, regionInfo);
break;
}
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/24a0a2a2/hbase-server/src/test/java/org/apache/hadoop/hbase/master/MockRegionServer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/MockRegionServer.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/MockRegionServer.java
index af58a84..9971c4c 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/MockRegionServer.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/MockRegionServer.java
@@ -36,8 +36,8 @@ import org.apache.hadoop.hbase.HRegionInfo;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.ZooKeeperConnectionException;
-import org.apache.hadoop.hbase.catalog.CatalogTracker;
import org.apache.hadoop.hbase.client.Get;
+import org.apache.hadoop.hbase.client.HConnection;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.executor.ExecutorService;
@@ -94,6 +94,7 @@ import org.apache.hadoop.hbase.regionserver.RegionServerServices;
import org.apache.hadoop.hbase.regionserver.ServerNonceManager;
import org.apache.hadoop.hbase.regionserver.wal.HLog;
import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;
import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;
import org.apache.zookeeper.KeeperException;
@@ -275,8 +276,12 @@ ClientProtos.ClientService.BlockingInterface, RegionServerServices {
}
@Override
- public CatalogTracker getCatalogTracker() {
- // TODO Auto-generated method stub
+ public HConnection getShortCircuitConnection() {
+ return null;
+ }
+
+ @Override
+ public MetaTableLocator getMetaTableLocator() {
return null;
}
@@ -313,7 +318,7 @@ ClientProtos.ClientService.BlockingInterface, RegionServerServices {
}
@Override
- public void postOpenDeployTasks(HRegion r, CatalogTracker ct)
+ public void postOpenDeployTasks(HRegion r)
throws KeeperException, IOException {
// TODO Auto-generated method stub
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/24a0a2a2/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestActiveMasterManager.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestActiveMasterManager.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestActiveMasterManager.java
index 1c010b2..5596cb3 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestActiveMasterManager.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestActiveMasterManager.java
@@ -33,10 +33,11 @@ import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.MediumTests;
import org.apache.hadoop.hbase.Server;
import org.apache.hadoop.hbase.ServerName;
-import org.apache.hadoop.hbase.catalog.CatalogTracker;
+import org.apache.hadoop.hbase.client.HConnection;
import org.apache.hadoop.hbase.monitoring.MonitoredTask;
import org.apache.hadoop.hbase.zookeeper.ClusterStatusTracker;
import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;
+import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;
import org.apache.hadoop.hbase.zookeeper.ZKUtil;
import org.apache.hadoop.hbase.zookeeper.ZooKeeperListener;
import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;
@@ -302,7 +303,12 @@ public class TestActiveMasterManager {
}
@Override
- public CatalogTracker getCatalogTracker() {
+ public HConnection getShortCircuitConnection() {
+ return null;
+ }
+
+ @Override
+ public MetaTableLocator getMetaTableLocator() {
return null;
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/24a0a2a2/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestAssignmentManager.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestAssignmentManager.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestAssignmentManager.java
index 0d0b789..4a3d4f2 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestAssignmentManager.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestAssignmentManager.java
@@ -48,8 +48,7 @@ import org.apache.hadoop.hbase.ServerLoad;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.ZooKeeperConnectionException;
-import org.apache.hadoop.hbase.catalog.CatalogTracker;
-import org.apache.hadoop.hbase.catalog.MetaMockingUtil;
+import org.apache.hadoop.hbase.MetaMockingUtil;
import org.apache.hadoop.hbase.client.HConnection;
import org.apache.hadoop.hbase.client.HConnectionTestingUtility;
import org.apache.hadoop.hbase.client.Result;
@@ -80,6 +79,7 @@ import org.apache.hadoop.hbase.regionserver.RegionOpeningState;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
import org.apache.hadoop.hbase.util.Threads;
+import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;
import org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper;
import org.apache.hadoop.hbase.zookeeper.ZKAssign;
import org.apache.hadoop.hbase.zookeeper.ZKUtil;
@@ -123,6 +123,7 @@ public class TestAssignmentManager {
private ServerManager serverManager;
private ZooKeeperWatcher watcher;
private CoordinatedStateManager cp;
+ private MetaTableLocator mtl;
private LoadBalancer balancer;
private HMaster master;
@@ -148,7 +149,6 @@ public class TestAssignmentManager {
this.server = Mockito.mock(Server.class);
Mockito.when(server.getServerName()).thenReturn(ServerName.valueOf("master,1,1"));
Mockito.when(server.getConfiguration()).thenReturn(HTU.getConfiguration());
- Mockito.when(server.getCatalogTracker()).thenReturn(null);
this.watcher =
new ZooKeeperWatcher(HTU.getConfiguration(), "mockedServer", this.server, true);
Mockito.when(server.getZooKeeper()).thenReturn(this.watcher);
@@ -159,7 +159,18 @@ public class TestAssignmentManager {
cp.initialize(this.server);
cp.start();
+ mtl = Mockito.mock(MetaTableLocator.class);
+
Mockito.when(server.getCoordinatedStateManager()).thenReturn(cp);
+ Mockito.when(server.getMetaTableLocator()).thenReturn(mtl);
+
+ // Get a connection w/ mocked up common methods.
+ HConnection connection =
+ HConnectionTestingUtility.getMockedConnection(HTU.getConfiguration());
+
+ // Make it so we can get a catalogtracker from servermanager.. .needed
+ // down in guts of server shutdown handler.
+ Mockito.when(server.getShortCircuitConnection()).thenReturn(connection);
// Mock a ServerManager. Say server SERVERNAME_{A,B} are online. Also
// make it so if close or open, we return 'success'.
@@ -385,12 +396,11 @@ public class TestAssignmentManager {
ExecutorService executor = startupMasterExecutor("testBalanceExecutor");
// We need a mocked catalog tracker.
- CatalogTracker ct = Mockito.mock(CatalogTracker.class);
LoadBalancer balancer = LoadBalancerFactory.getLoadBalancer(server
.getConfiguration());
// Create an AM.
AssignmentManager am = new AssignmentManager(this.server,
- this.serverManager, ct, balancer, executor, null, master.getTableLockManager());
+ this.serverManager, balancer, executor, null, master.getTableLockManager());
am.failoverCleanupDone.set(true);
try {
// Make sure our new AM gets callbacks; once registered, can't unregister.
@@ -459,13 +469,11 @@ public class TestAssignmentManager {
// handling zk callbacks.
ExecutorService executor = startupMasterExecutor("testShutdownHandler");
- // We need a mocked catalog tracker.
- CatalogTracker ct = Mockito.mock(CatalogTracker.class);
// Create an AM.
AssignmentManagerWithExtrasForTesting am = setUpMockedAssignmentManager(
this.server, this.serverManager);
try {
- processServerShutdownHandler(ct, am, false);
+ processServerShutdownHandler(am, false);
} finally {
executor.shutdown();
am.shutdown();
@@ -513,7 +521,6 @@ public class TestAssignmentManager {
// handling zk callbacks.
ExecutorService executor = startupMasterExecutor("testSSHWhenSplitRegionInProgress");
// We need a mocked catalog tracker.
- CatalogTracker ct = Mockito.mock(CatalogTracker.class);
ZKAssign.deleteAllNodes(this.watcher);
// Create an AM.
@@ -533,7 +540,7 @@ public class TestAssignmentManager {
ZKUtil.createAndWatch(this.watcher, node, data.toByteArray());
try {
- processServerShutdownHandler(ct, am, regionSplitDone);
+ processServerShutdownHandler(am, regionSplitDone);
// check znode deleted or not.
// In both cases the znode should be deleted.
@@ -561,14 +568,12 @@ public class TestAssignmentManager {
// Create and startup an executor. This is used by AssignmentManager
// handling zk callbacks.
ExecutorService executor = startupMasterExecutor("testSSHWhenDisableTableInProgress");
- // We need a mocked catalog tracker.
- CatalogTracker ct = Mockito.mock(CatalogTracker.class);
LoadBalancer balancer = LoadBalancerFactory.getLoadBalancer(server.getConfiguration());
ZKAssign.deleteAllNodes(this.watcher);
// Create an AM.
AssignmentManager am = new AssignmentManager(this.server,
- this.serverManager, ct, balancer, executor, null, master.getTableLockManager());
+ this.serverManager, balancer, executor, null, master.getTableLockManager());
// adding region to regions and servers maps.
am.regionOnline(REGIONINFO, SERVERNAME_A);
// adding region in pending close.
@@ -590,7 +595,7 @@ public class TestAssignmentManager {
ZKUtil.createAndWatch(this.watcher, node, data.toByteArray());
try {
- processServerShutdownHandler(ct, am, false);
+ processServerShutdownHandler(am, false);
// check znode deleted or not.
// In both cases the znode should be deleted.
assertTrue("The znode should be deleted.", ZKUtil.checkExists(this.watcher, node) == -1);
@@ -610,7 +615,7 @@ public class TestAssignmentManager {
}
}
- private void processServerShutdownHandler(CatalogTracker ct, AssignmentManager am, boolean splitRegion)
+ private void processServerShutdownHandler(AssignmentManager am, boolean splitRegion)
throws IOException, ServiceException {
// Make sure our new AM gets callbacks; once registered, can't unregister.
// Thats ok because we make a new zk watcher for each test.
@@ -655,8 +660,7 @@ public class TestAssignmentManager {
// Make it so we can get a catalogtracker from servermanager.. .needed
// down in guts of server shutdown handler.
- Mockito.when(ct.getConnection()).thenReturn(connection);
- Mockito.when(this.server.getCatalogTracker()).thenReturn(ct);
+ Mockito.when(this.server.getShortCircuitConnection()).thenReturn(connection);
// Now make a server shutdown handler instance and invoke process.
// Have it that SERVERNAME_A died.
@@ -704,12 +708,11 @@ public class TestAssignmentManager {
// default null.
Mockito.when(this.serverManager.sendRegionClose(SERVERNAME_A, hri, -1)).thenReturn(true);
// Need a mocked catalog tracker.
- CatalogTracker ct = Mockito.mock(CatalogTracker.class);
LoadBalancer balancer = LoadBalancerFactory.getLoadBalancer(server
.getConfiguration());
// Create an AM.
AssignmentManager am = new AssignmentManager(this.server,
- this.serverManager, ct, balancer, null, null, master.getTableLockManager());
+ this.serverManager, balancer, null, null, master.getTableLockManager());
try {
// First make sure my mock up basically works. Unassign a region.
unassign(am, SERVERNAME_A, hri);
@@ -885,7 +888,6 @@ public class TestAssignmentManager {
am.getRegionStates().logSplit(SERVERNAME_A); // Assume log splitting is done
am.getRegionStates().createRegionState(REGIONINFO);
am.gate.set(false);
- CatalogTracker ct = Mockito.mock(CatalogTracker.class);
BaseCoordinatedStateManager cp = new ZkCoordinatedStateManager();
cp.initialize(server);
@@ -899,7 +901,7 @@ public class TestAssignmentManager {
assertFalse(am.processRegionsInTransition(rt, REGIONINFO, orc, zkOrd));
am.getTableStateManager().setTableState(REGIONINFO.getTable(), Table.State.ENABLED);
- processServerShutdownHandler(ct, am, false);
+ processServerShutdownHandler(am, false);
// Waiting for the assignment to get completed.
while (!am.gate.get()) {
Thread.sleep(10);
@@ -934,6 +936,13 @@ public class TestAssignmentManager {
Server server = new HMaster(HTU.getConfiguration(), csm);
AssignmentManagerWithExtrasForTesting am = setUpMockedAssignmentManager(server,
this.serverManager);
+
+ Whitebox.setInternalState(server, "metaTableLocator", Mockito.mock(MetaTableLocator.class));
+
+ // Make it so we can get a catalogtracker from servermanager.. .needed
+ // down in guts of server shutdown handler.
+ Whitebox.setInternalState(server, "shortCircuitConnection", am.getConnection());
+
AtomicBoolean gate = new AtomicBoolean(false);
if (balancer instanceof MockedLoadBalancer) {
((MockedLoadBalancer) balancer).setGateVariable(gate);
@@ -982,12 +991,19 @@ public class TestAssignmentManager {
Whitebox.setInternalState(server, "serverManager", this.serverManager);
AssignmentManagerWithExtrasForTesting am = setUpMockedAssignmentManager(server,
this.serverManager);
+
+ Whitebox.setInternalState(server, "metaTableLocator", Mockito.mock(MetaTableLocator.class));
+
+ // Make it so we can get a catalogtracker from servermanager.. .needed
+ // down in guts of server shutdown handler.
+ Whitebox.setInternalState(server, "shortCircuitConnection", am.getConnection());
+
try {
// set table in enabling state.
am.getTableStateManager().setTableState(REGIONINFO.getTable(),
Table.State.ENABLING);
new EnableTableHandler(server, REGIONINFO.getTable(),
- am.getCatalogTracker(), am, new NullTableLockManager(), true).prepare()
+ am, new NullTableLockManager(), true).prepare()
.process();
assertEquals("Number of assignments should be 1.", 1, assignmentCount);
assertTrue("Table should be enabled.",
@@ -1024,6 +1040,13 @@ public class TestAssignmentManager {
Whitebox.setInternalState(server, "serverManager", this.serverManager);
AssignmentManagerWithExtrasForTesting am = setUpMockedAssignmentManager(server,
this.serverManager);
+
+ Whitebox.setInternalState(server, "metaTableLocator", Mockito.mock(MetaTableLocator.class));
+
+ // Make it so we can get a catalogtracker from servermanager.. .needed
+ // down in guts of server shutdown handler.
+ Whitebox.setInternalState(server, "shortCircuitConnection", am.getConnection());
+
try {
TableName tableName = TableName.valueOf("dummyTable");
// set table in enabling state.
@@ -1043,8 +1066,6 @@ public class TestAssignmentManager {
@Test
public void testSSHTimesOutOpeningRegionTransition()
throws KeeperException, IOException, CoordinatedStateException, ServiceException {
- // We need a mocked catalog tracker.
- CatalogTracker ct = Mockito.mock(CatalogTracker.class);
// Create an AM.
AssignmentManagerWithExtrasForTesting am =
setUpMockedAssignmentManager(this.server, this.serverManager);
@@ -1061,7 +1082,7 @@ public class TestAssignmentManager {
try {
am.assignInvoked = false;
- processServerShutdownHandler(ct, am, false);
+ processServerShutdownHandler(am, false);
assertTrue(am.assignInvoked);
} finally {
am.getRegionStates().regionsInTransition.remove(REGIONINFO.getEncodedName());
@@ -1155,8 +1176,6 @@ public class TestAssignmentManager {
private AssignmentManagerWithExtrasForTesting setUpMockedAssignmentManager(final Server server,
final ServerManager manager) throws IOException, KeeperException,
ServiceException, CoordinatedStateException {
- // We need a mocked catalog tracker. Its used by our AM instance.
- CatalogTracker ct = Mockito.mock(CatalogTracker.class);
// Make an RS Interface implementation. Make it so a scanner can go against
// it and a get to return the single region, REGIONINFO, this test is
// messing with. Needed when "new master" joins cluster. AM will try and
@@ -1200,12 +1219,11 @@ public class TestAssignmentManager {
getMockedConnectionAndDecorate(HTU.getConfiguration(), null,
ri, SERVERNAME_B, REGIONINFO);
// Make it so we can get the connection from our mocked catalogtracker
- Mockito.when(ct.getConnection()).thenReturn(connection);
// Create and startup an executor. Used by AM handling zk callbacks.
ExecutorService executor = startupMasterExecutor("mockedAMExecutor");
this.balancer = LoadBalancerFactory.getLoadBalancer(server.getConfiguration());
AssignmentManagerWithExtrasForTesting am = new AssignmentManagerWithExtrasForTesting(
- server, manager, ct, this.balancer, executor, new NullTableLockManager());
+ server, connection, manager, this.balancer, executor, new NullTableLockManager());
return am;
}
@@ -1215,20 +1233,19 @@ public class TestAssignmentManager {
class AssignmentManagerWithExtrasForTesting extends AssignmentManager {
// Keep a reference so can give it out below in {@link #getExecutorService}
private final ExecutorService es;
- // Ditto for ct
- private final CatalogTracker ct;
boolean processRITInvoked = false;
boolean assignInvoked = false;
AtomicBoolean gate = new AtomicBoolean(true);
+ private HConnection connection;
public AssignmentManagerWithExtrasForTesting(
- final Server master, final ServerManager serverManager,
- final CatalogTracker catalogTracker, final LoadBalancer balancer,
+ final Server master, HConnection connection, final ServerManager serverManager,
+ final LoadBalancer balancer,
final ExecutorService service, final TableLockManager tableLockManager)
throws KeeperException, IOException, CoordinatedStateException {
- super(master, serverManager, catalogTracker, balancer, service, null, tableLockManager);
+ super(master, serverManager, balancer, service, null, tableLockManager);
this.es = service;
- this.ct = catalogTracker;
+ this.connection = connection;
}
@Override
@@ -1282,11 +1299,11 @@ public class TestAssignmentManager {
return this.es;
}
- /**
- * @return CatalogTracker used by this AM (Its a mock).
+ /*
+ * Convenient method to retrieve mocked up connection
*/
- CatalogTracker getCatalogTracker() {
- return this.ct;
+ HConnection getConnection() {
+ return this.connection;
}
}
@@ -1333,12 +1350,11 @@ public class TestAssignmentManager {
// Region to use in test.
final HRegionInfo hri = HRegionInfo.FIRST_META_REGIONINFO;
// Need a mocked catalog tracker.
- CatalogTracker ct = Mockito.mock(CatalogTracker.class);
LoadBalancer balancer = LoadBalancerFactory.getLoadBalancer(
server.getConfiguration());
// Create an AM.
AssignmentManager am = new AssignmentManager(this.server,
- this.serverManager, ct, balancer, null, null, master.getTableLockManager());
+ this.serverManager, balancer, null, null, master.getTableLockManager());
RegionStates regionStates = am.getRegionStates();
try {
// First set the state of the region to merging
@@ -1367,14 +1383,12 @@ public class TestAssignmentManager {
CoordinatedStateException {
// Region to use in test.
final HRegionInfo hri = HRegionInfo.FIRST_META_REGIONINFO;
- // Need a mocked catalog tracker.
- CatalogTracker ct = Mockito.mock(CatalogTracker.class);
LoadBalancer balancer = LoadBalancerFactory.getLoadBalancer(
server.getConfiguration());
final AtomicBoolean zkEventProcessed = new AtomicBoolean(false);
// Create an AM.
AssignmentManager am = new AssignmentManager(this.server,
- this.serverManager, ct, balancer, null, null, master.getTableLockManager()) {
+ this.serverManager, balancer, null, null, master.getTableLockManager()) {
@Override
void handleRegion(final RegionTransition rt, OpenRegionCoordination coordination,
@@ -1415,9 +1429,8 @@ public class TestAssignmentManager {
*/
@Test
public void testBalanceRegionOfDeletedTable() throws Exception {
- CatalogTracker ct = Mockito.mock(CatalogTracker.class);
AssignmentManager am = new AssignmentManager(this.server, this.serverManager,
- ct, balancer, null, null, master.getTableLockManager());
+ balancer, null, null, master.getTableLockManager());
RegionStates regionStates = am.getRegionStates();
HRegionInfo hri = REGIONINFO;
regionStates.createRegionState(hri);
@@ -1443,12 +1456,11 @@ public class TestAssignmentManager {
this.server.getConfiguration().setInt("hbase.assignment.maximum.attempts", 100);
HRegionInfo hri = REGIONINFO;
- CatalogTracker ct = Mockito.mock(CatalogTracker.class);
LoadBalancer balancer = LoadBalancerFactory.getLoadBalancer(
server.getConfiguration());
// Create an AM.
AssignmentManager am = new AssignmentManager(this.server,
- this.serverManager, ct, balancer, null, null, master.getTableLockManager());
+ this.serverManager, balancer, null, null, master.getTableLockManager());
RegionStates regionStates = am.getRegionStates();
try {
am.regionPlans.put(REGIONINFO.getEncodedName(),
http://git-wip-us.apache.org/repos/asf/hbase/blob/24a0a2a2/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestAssignmentManagerOnCluster.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestAssignmentManagerOnCluster.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestAssignmentManagerOnCluster.java
index de192dc..409e01f 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestAssignmentManagerOnCluster.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestAssignmentManagerOnCluster.java
@@ -46,7 +46,7 @@ import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.UnknownRegionException;
import org.apache.hadoop.hbase.Waiter;
-import org.apache.hadoop.hbase.catalog.MetaEditor;
+import org.apache.hadoop.hbase.MetaTableAccessor;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.coprocessor.BaseRegionObserver;
@@ -122,7 +122,7 @@ public class TestAssignmentManagerOnCluster {
HTable meta = new HTable(conf, TableName.META_TABLE_NAME);
HRegionInfo hri = new HRegionInfo(
desc.getTableName(), Bytes.toBytes("A"), Bytes.toBytes("Z"));
- MetaEditor.addRegionToMeta(meta, hri);
+ MetaTableAccessor.addRegionToMeta(meta, hri);
HMaster master = TEST_UTIL.getHBaseCluster().getMaster();
master.assignRegion(hri);
@@ -166,7 +166,7 @@ public class TestAssignmentManagerOnCluster {
HTable meta = new HTable(conf, TableName.META_TABLE_NAME);
final HRegionInfo hri = new HRegionInfo(
desc.getTableName(), Bytes.toBytes("A"), Bytes.toBytes("Z"));
- MetaEditor.addRegionToMeta(meta, hri);
+ MetaTableAccessor.addRegionToMeta(meta, hri);
master = TEST_UTIL.getHBaseCluster().getMaster();
Set<ServerName> onlineServers = master.serverManager.getOnlineServers().keySet();
@@ -380,7 +380,7 @@ public class TestAssignmentManagerOnCluster {
HTable meta = new HTable(conf, TableName.META_TABLE_NAME);
HRegionInfo hri = new HRegionInfo(
desc.getTableName(), Bytes.toBytes("A"), Bytes.toBytes("Z"));
- MetaEditor.addRegionToMeta(meta, hri);
+ MetaTableAccessor.addRegionToMeta(meta, hri);
HMaster master = TEST_UTIL.getHBaseCluster().getMaster();
master.assignRegion(hri);
@@ -427,7 +427,7 @@ public class TestAssignmentManagerOnCluster {
HTable meta = new HTable(conf, TableName.META_TABLE_NAME);
HRegionInfo hri = new HRegionInfo(
desc.getTableName(), Bytes.toBytes("A"), Bytes.toBytes("Z"));
- MetaEditor.addRegionToMeta(meta, hri);
+ MetaTableAccessor.addRegionToMeta(meta, hri);
HMaster master = TEST_UTIL.getHBaseCluster().getMaster();
master.assignRegion(hri);
@@ -471,7 +471,7 @@ public class TestAssignmentManagerOnCluster {
HTable meta = new HTable(conf, TableName.META_TABLE_NAME);
HRegionInfo hri = new HRegionInfo(
desc.getTableName(), Bytes.toBytes("A"), Bytes.toBytes("Z"));
- MetaEditor.addRegionToMeta(meta, hri);
+ MetaTableAccessor.addRegionToMeta(meta, hri);
MyLoadBalancer.controledRegion = hri.getEncodedName();
@@ -513,7 +513,7 @@ public class TestAssignmentManagerOnCluster {
HTable meta = new HTable(conf, TableName.META_TABLE_NAME);
HRegionInfo hri = new HRegionInfo(
desc.getTableName(), Bytes.toBytes("A"), Bytes.toBytes("Z"));
- MetaEditor.addRegionToMeta(meta, hri);
+ MetaTableAccessor.addRegionToMeta(meta, hri);
FileSystem fs = FileSystem.get(conf);
Path tableDir= FSUtils.getTableDir(FSUtils.getRootDir(conf), table);
@@ -611,7 +611,7 @@ public class TestAssignmentManagerOnCluster {
HTable meta = new HTable(conf, TableName.META_TABLE_NAME);
HRegionInfo hri = new HRegionInfo(
desc.getTableName(), Bytes.toBytes("A"), Bytes.toBytes("Z"));
- MetaEditor.addRegionToMeta(meta, hri);
+ MetaTableAccessor.addRegionToMeta(meta, hri);
HMaster master = TEST_UTIL.getHBaseCluster().getMaster();
master.assignRegion(hri);
@@ -667,7 +667,7 @@ public class TestAssignmentManagerOnCluster {
HTable meta = new HTable(conf, TableName.META_TABLE_NAME);
HRegionInfo hri = new HRegionInfo(
desc.getTableName(), Bytes.toBytes("A"), Bytes.toBytes("Z"));
- MetaEditor.addRegionToMeta(meta, hri);
+ MetaTableAccessor.addRegionToMeta(meta, hri);
meta.close();
MyRegionObserver.postOpenEnabled.set(true);
@@ -740,7 +740,7 @@ public class TestAssignmentManagerOnCluster {
HTable meta = new HTable(conf, TableName.META_TABLE_NAME);
HRegionInfo hri = new HRegionInfo(
desc.getTableName(), Bytes.toBytes("A"), Bytes.toBytes("Z"));
- MetaEditor.addRegionToMeta(meta, hri);
+ MetaTableAccessor.addRegionToMeta(meta, hri);
// Assign the region
master = (MyMaster)cluster.getMaster();
@@ -814,7 +814,7 @@ public class TestAssignmentManagerOnCluster {
HTable meta = new HTable(conf, TableName.META_TABLE_NAME);
HRegionInfo hri = new HRegionInfo(
desc.getTableName(), Bytes.toBytes("A"), Bytes.toBytes("Z"));
- MetaEditor.addRegionToMeta(meta, hri);
+ MetaTableAccessor.addRegionToMeta(meta, hri);
// Assign the region
master = (MyMaster)cluster.getMaster();
http://git-wip-us.apache.org/repos/asf/hbase/blob/24a0a2a2/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestCatalogJanitor.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestCatalogJanitor.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestCatalogJanitor.java
index 3b69c16..288d115 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestCatalogJanitor.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestCatalogJanitor.java
@@ -50,8 +50,7 @@ import org.apache.hadoop.hbase.Server;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.SmallTests;
import org.apache.hadoop.hbase.TableDescriptors;
-import org.apache.hadoop.hbase.catalog.CatalogTracker;
-import org.apache.hadoop.hbase.catalog.MetaMockingUtil;
+import org.apache.hadoop.hbase.MetaMockingUtil;
import org.apache.hadoop.hbase.client.HConnection;
import org.apache.hadoop.hbase.client.HConnectionManager;
import org.apache.hadoop.hbase.client.HConnectionTestingUtility;
@@ -75,6 +74,7 @@ import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.util.FSUtils;
import org.apache.hadoop.hbase.util.HFileArchiveUtil;
import org.apache.hadoop.hbase.util.Triple;
+import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;
import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;
import org.junit.Test;
import org.junit.experimental.categories.Category;
@@ -97,7 +97,6 @@ public class TestCatalogJanitor {
class MockServer implements Server {
private final HConnection connection;
private final Configuration c;
- private final CatalogTracker ct;
MockServer(final HBaseTestingUtility htu)
throws NotAllMetaRegionsOnlineException, IOException, InterruptedException {
@@ -137,16 +136,18 @@ public class TestCatalogJanitor {
FileSystem fs = FileSystem.get(this.c);
Path rootdir = FSUtils.getRootDir(this.c);
FSUtils.setRootDir(this.c, rootdir);
- this.ct = Mockito.mock(CatalogTracker.class);
AdminProtos.AdminService.BlockingInterface hri =
Mockito.mock(AdminProtos.AdminService.BlockingInterface.class);
- Mockito.when(this.ct.getConnection()).thenReturn(this.connection);
- Mockito.when(ct.waitForMetaServerConnection(Mockito.anyLong())).thenReturn(hri);
}
@Override
- public CatalogTracker getCatalogTracker() {
- return this.ct;
+ public HConnection getShortCircuitConnection() {
+ return this.connection;
+ }
+
+ @Override
+ public MetaTableLocator getMetaTableLocator() {
+ return null;
}
@Override
@@ -186,9 +187,6 @@ public class TestCatalogJanitor {
@Override
public void stop(String why) {
- if (this.ct != null) {
- this.ct.stop();
- }
if (this.connection != null) {
HConnectionManager.deleteConnection(this.connection.getConfiguration());
}
@@ -254,7 +252,12 @@ public class TestCatalogJanitor {
}
@Override
- public CatalogTracker getCatalogTracker() {
+ public MetaTableLocator getMetaTableLocator() {
+ return null;
+ }
+
+ @Override
+ public HConnection getShortCircuitConnection() {
return null;
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/24a0a2a2/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestClockSkewDetection.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestClockSkewDetection.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestClockSkewDetection.java
index 687012c..5791380 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestClockSkewDetection.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestClockSkewDetection.java
@@ -26,8 +26,9 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
-import org.apache.hadoop.hbase.catalog.CatalogTracker;
import org.apache.hadoop.hbase.CoordinatedStateManager;
+import org.apache.hadoop.hbase.client.HConnection;
+import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;
import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;
import org.junit.Test;
import org.junit.experimental.categories.Category;
@@ -42,7 +43,12 @@ public class TestClockSkewDetection {
final Configuration conf = HBaseConfiguration.create();
ServerManager sm = new ServerManager(new Server() {
@Override
- public CatalogTracker getCatalogTracker() {
+ public HConnection getShortCircuitConnection() {
+ return null;
+ }
+
+ @Override
+ public MetaTableLocator getMetaTableLocator() {
return null;
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/24a0a2a2/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMaster.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMaster.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMaster.java
index d0ddc96..b600f4d 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMaster.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMaster.java
@@ -21,7 +21,7 @@ package org.apache.hadoop.hbase.master;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hbase.*;
-import org.apache.hadoop.hbase.catalog.MetaReader;
+import org.apache.hadoop.hbase.MetaTableAccessor;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.protobuf.generated.ZooKeeperProtos;
@@ -74,7 +74,8 @@ public class TestMaster {
ht.close();
List<Pair<HRegionInfo, ServerName>> tableRegions =
- MetaReader.getTableRegionsAndLocations(m.getCatalogTracker(), TABLENAME);
+ MetaTableAccessor.getTableRegionsAndLocations(m.getZooKeeper(),
+ m.getShortCircuitConnection(), TABLENAME);
LOG.info("Regions after load: " + Joiner.on(',').join(tableRegions));
assertEquals(1, tableRegions.size());
assertArrayEquals(HConstants.EMPTY_START_ROW,
@@ -91,8 +92,8 @@ public class TestMaster {
Thread.sleep(100);
}
LOG.info("Making sure we can call getTableRegions while opening");
- tableRegions = MetaReader.getTableRegionsAndLocations(m.getCatalogTracker(),
- TABLENAME, false);
+ tableRegions = MetaTableAccessor.getTableRegionsAndLocations(m.getZooKeeper(),
+ m.getShortCircuitConnection(), TABLENAME, false);
LOG.info("Regions: " + Joiner.on(',').join(tableRegions));
// We have three regions because one is split-in-progress
@@ -102,8 +103,8 @@ public class TestMaster {
m.getTableRegionForRow(TABLENAME, Bytes.toBytes("cde"));
LOG.info("Result is: " + pair);
Pair<HRegionInfo, ServerName> tableRegionFromName =
- MetaReader.getRegion(m.getCatalogTracker(),
- pair.getFirst().getRegionName());
+ MetaTableAccessor.getRegion(m.getShortCircuitConnection(),
+ pair.getFirst().getRegionName());
assertEquals(tableRegionFromName.getFirst(), pair.getFirst());
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/24a0a2a2/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterFailover.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterFailover.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterFailover.java
index a8fbf54..5f1159a 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterFailover.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterFailover.java
@@ -49,7 +49,7 @@ import org.apache.hadoop.hbase.RegionTransition;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.TableStateManager;
-import org.apache.hadoop.hbase.catalog.MetaEditor;
+import org.apache.hadoop.hbase.MetaTableAccessor;
import org.apache.hadoop.hbase.coordination.BaseCoordinatedStateManager;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.executor.EventType;
@@ -67,7 +67,7 @@ import org.apache.hadoop.hbase.util.JVMClusterUtil;
import org.apache.hadoop.hbase.util.JVMClusterUtil.MasterThread;
import org.apache.hadoop.hbase.util.JVMClusterUtil.RegionServerThread;
import org.apache.hadoop.hbase.util.Threads;
-import org.apache.hadoop.hbase.zookeeper.MetaRegionTracker;
+import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;
import org.apache.hadoop.hbase.zookeeper.ZKAssign;
import org.apache.hadoop.hbase.zookeeper.ZKTableStateManager;
import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;
@@ -298,8 +298,10 @@ public class TestMasterFailover {
zkw, HRegionInfo.FIRST_META_REGIONINFO, hrs.getServerName());
ProtobufUtil.openRegion(hrs.getRSRpcServices(),
hrs.getServerName(), HRegionInfo.FIRST_META_REGIONINFO);
+
+ MetaTableLocator mtl = new MetaTableLocator();
while (true) {
- ServerName sn = MetaRegionTracker.getMetaRegionLocation(zkw);
+ ServerName sn = mtl.getMetaRegionLocation(zkw);
if (sn != null && sn.equals(hrs.getServerName())) {
break;
}
@@ -689,8 +691,10 @@ public class TestMasterFailover {
zkw, HRegionInfo.FIRST_META_REGIONINFO, hrs.getServerName());
ProtobufUtil.openRegion(hrs.getRSRpcServices(),
hrs.getServerName(), HRegionInfo.FIRST_META_REGIONINFO);
+
+ MetaTableLocator mtl = new MetaTableLocator();
while (true) {
- ServerName sn = MetaRegionTracker.getMetaRegionLocation(zkw);
+ ServerName sn = mtl.getMetaRegionLocation(zkw);
if (sn != null && sn.equals(hrs.getServerName())) {
break;
}
@@ -1234,7 +1238,7 @@ public class TestMasterFailover {
HRegionInfo hriOffline = new HRegionInfo(offlineTable.getTableName(), null, null);
createRegion(hriOffline, rootdir, conf, offlineTable);
- MetaEditor.addRegionToMeta(master.getCatalogTracker(), hriOffline);
+ MetaTableAccessor.addRegionToMeta(master.getShortCircuitConnection(), hriOffline);
log("Regions in hbase:meta and namespace have been created");
http://git-wip-us.apache.org/repos/asf/hbase/blob/24a0a2a2/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterNoCluster.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterNoCluster.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterNoCluster.java
index d7cdc73..00982b0 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterNoCluster.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterNoCluster.java
@@ -44,8 +44,7 @@ import org.apache.hadoop.hbase.ServerLoad;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.ZooKeeperConnectionException;
-import org.apache.hadoop.hbase.catalog.CatalogTracker;
-import org.apache.hadoop.hbase.catalog.MetaMockingUtil;
+import org.apache.hadoop.hbase.MetaMockingUtil;
import org.apache.hadoop.hbase.client.HConnection;
import org.apache.hadoop.hbase.client.HConnectionTestingUtility;
import org.apache.hadoop.hbase.client.Result;
@@ -54,7 +53,7 @@ import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
import org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos.RegionServerReportRequest;
import org.apache.hadoop.hbase.util.FSUtils;
import org.apache.hadoop.hbase.util.Threads;
-import org.apache.hadoop.hbase.zookeeper.MetaRegionTracker;
+import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;
import org.apache.hadoop.hbase.zookeeper.ZKAssign;
import org.apache.hadoop.hbase.zookeeper.ZKUtil;
import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;
@@ -159,7 +158,7 @@ public class TestMasterNoCluster {
final MockRegionServer rs2 = new MockRegionServer(conf, sn2);
// Put some data into the servers. Make it look like sn0 has the metaH
// Put data into sn2 so it looks like it has a few regions for a table named 't'.
- MetaRegionTracker.setMetaLocation(rs0.getZooKeeper(), rs0.getServerName());
+ MetaTableLocator.setMetaLocation(rs0.getZooKeeper(), rs0.getServerName());
final TableName tableName = TableName.valueOf("t");
Result [] results = new Result [] {
MetaMockingUtil.getMetaTableRowResult(
@@ -206,15 +205,17 @@ public class TestMasterNoCluster {
}
@Override
- protected CatalogTracker createCatalogTracker() throws IOException {
- // Insert a mock for the connection used by the CatalogTracker. Any
- // regionserver should do. Use TESTUTIL.getConfiguration rather than
+ public HConnection getShortCircuitConnection() {
+ // Insert a mock for the connection, use TESTUTIL.getConfiguration rather than
// the conf from the master; the conf will already have an HConnection
// associate so the below mocking of a connection will fail.
- HConnection connection =
- HConnectionTestingUtility.getMockedConnectionAndDecorate(TESTUTIL.getConfiguration(),
- rs0, rs0, rs0.getServerName(), HRegionInfo.FIRST_META_REGIONINFO);
- return new CatalogTracker(getZooKeeper(), getConfiguration(), connection, this);
+ try {
+ return HConnectionTestingUtility.getMockedConnectionAndDecorate(
+ TESTUTIL.getConfiguration(), rs0, rs0, rs0.getServerName(),
+ HRegionInfo.FIRST_META_REGIONINFO);
+ } catch (IOException e) {
+ return null;
+ }
}
@Override
@@ -285,15 +286,17 @@ public class TestMasterNoCluster {
}
@Override
- protected CatalogTracker createCatalogTracker() throws IOException {
- // Insert a mock for the connection used by the CatalogTracker. Any
- // regionserver should do. Use TESTUTIL.getConfiguration rather than
+ public HConnection getShortCircuitConnection() {
+ // Insert a mock for the connection, use TESTUTIL.getConfiguration rather than
// the conf from the master; the conf will already have an HConnection
// associate so the below mocking of a connection will fail.
- HConnection connection =
- HConnectionTestingUtility.getMockedConnectionAndDecorate(TESTUTIL.getConfiguration(),
- rs0, rs0, rs0.getServerName(), HRegionInfo.FIRST_META_REGIONINFO);
- return new CatalogTracker(getZooKeeper(), getConfiguration(), connection, this);
+ try {
+ return HConnectionTestingUtility.getMockedConnectionAndDecorate(
+ TESTUTIL.getConfiguration(), rs0, rs0, rs0.getServerName(),
+ HRegionInfo.FIRST_META_REGIONINFO);
+ } catch (IOException e) {
+ return null;
+ }
}
@Override
http://git-wip-us.apache.org/repos/asf/hbase/blob/24a0a2a2/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterOperationsForRegionReplicas.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterOperationsForRegionReplicas.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterOperationsForRegionReplicas.java
index 05de958..117c515 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterOperationsForRegionReplicas.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterOperationsForRegionReplicas.java
@@ -42,11 +42,11 @@ import org.apache.hadoop.hbase.MediumTests;
import org.apache.hadoop.hbase.RegionLocations;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.TableName;
-import org.apache.hadoop.hbase.catalog.CatalogTracker;
-import org.apache.hadoop.hbase.catalog.MetaReader;
-import org.apache.hadoop.hbase.catalog.MetaReader.Visitor;
+import org.apache.hadoop.hbase.MetaTableAccessor;
+import org.apache.hadoop.hbase.MetaTableAccessor.Visitor;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.hbase.client.HConnection;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.RegionReplicaUtil;
import org.apache.hadoop.hbase.client.Result;
@@ -62,10 +62,11 @@ public class TestMasterOperationsForRegionReplicas {
private final static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();
private static HBaseAdmin admin;
private static int numSlaves = 2;
+ private static Configuration conf;
@BeforeClass
public static void setupBeforeClass() throws Exception {
- Configuration conf = TEST_UTIL.getConfiguration();
+ conf = TEST_UTIL.getConfiguration();
conf.setBoolean("hbase.tests.use.shortcircuit.reads", false);
TEST_UTIL.startMiniCluster(numSlaves);
admin = new HBaseAdmin(conf);
@@ -90,9 +91,9 @@ public class TestMasterOperationsForRegionReplicas {
desc.addFamily(new HColumnDescriptor("family"));
admin.createTable(desc, Bytes.toBytes("A"), Bytes.toBytes("Z"), numRegions);
- CatalogTracker ct = new CatalogTracker(TEST_UTIL.getConfiguration());
- validateNumberOfRowsInMeta(table, numRegions, ct);
- List<HRegionInfo> hris = MetaReader.getTableRegions(ct, table);
+ validateNumberOfRowsInMeta(table, numRegions, admin.getConnection());
+ List<HRegionInfo> hris = MetaTableAccessor.getTableRegions(TEST_UTIL.getZooKeeperWatcher(),
+ admin.getConnection(), table);
assert(hris.size() == numRegions * numReplica);
} finally {
admin.disableTable(table);
@@ -111,10 +112,10 @@ public class TestMasterOperationsForRegionReplicas {
desc.addFamily(new HColumnDescriptor("family"));
admin.createTable(desc, Bytes.toBytes("A"), Bytes.toBytes("Z"), numRegions);
TEST_UTIL.waitTableEnabled(table.getName());
- CatalogTracker ct = new CatalogTracker(TEST_UTIL.getConfiguration());
- validateNumberOfRowsInMeta(table, numRegions, ct);
+ validateNumberOfRowsInMeta(table, numRegions, admin.getConnection());
- List<HRegionInfo> hris = MetaReader.getTableRegions(ct, table);
+ List<HRegionInfo> hris = MetaTableAccessor.getTableRegions(TEST_UTIL.getZooKeeperWatcher(),
+ admin.getConnection(), table);
assert(hris.size() == numRegions * numReplica);
// check that the master created expected number of RegionState objects
for (int i = 0; i < numRegions; i++) {
@@ -126,10 +127,10 @@ public class TestMasterOperationsForRegionReplicas {
}
}
- List<Result> metaRows = MetaReader.fullScan(ct);
+ List<Result> metaRows = MetaTableAccessor.fullScanOfMeta(admin.getConnection());
int numRows = 0;
for (Result result : metaRows) {
- RegionLocations locations = MetaReader.getRegionLocations(result);
+ RegionLocations locations = MetaTableAccessor.getRegionLocations(result);
HRegionInfo hri = locations.getRegionLocation().getRegionInfo();
if (!hri.getTable().equals(table)) continue;
numRows += 1;
@@ -142,7 +143,8 @@ public class TestMasterOperationsForRegionReplicas {
// The same verification of the meta as above but with the SnapshotOfRegionAssignmentFromMeta
// class
- validateFromSnapshotFromMeta(TEST_UTIL, table, numRegions, numReplica, ct);
+ validateFromSnapshotFromMeta(TEST_UTIL, table, numRegions, numReplica,
+ admin.getConnection());
// Now kill the master, restart it and see if the assignments are kept
ServerName master = TEST_UTIL.getHBaseClusterInterface().getClusterStatus().getMaster();
@@ -158,7 +160,8 @@ public class TestMasterOperationsForRegionReplicas {
assert (state != null);
}
}
- validateFromSnapshotFromMeta(TEST_UTIL, table, numRegions, numReplica, ct);
+ validateFromSnapshotFromMeta(TEST_UTIL, table, numRegions, numReplica,
+ admin.getConnection());
// Now shut the whole cluster down, and verify the assignments are kept so that the
// availability constraints are met.
@@ -166,16 +169,19 @@ public class TestMasterOperationsForRegionReplicas {
TEST_UTIL.shutdownMiniHBaseCluster();
TEST_UTIL.startMiniHBaseCluster(1, numSlaves);
TEST_UTIL.waitTableEnabled(table.getName());
- ct = new CatalogTracker(TEST_UTIL.getConfiguration());
- validateFromSnapshotFromMeta(TEST_UTIL, table, numRegions, numReplica, ct);
+ admin.close();
+ admin = new HBaseAdmin(conf);
+ validateFromSnapshotFromMeta(TEST_UTIL, table, numRegions, numReplica,
+ admin.getConnection());
// Now shut the whole cluster down, and verify regions are assigned even if there is only
// one server running
TEST_UTIL.shutdownMiniHBaseCluster();
TEST_UTIL.startMiniHBaseCluster(1, 1);
TEST_UTIL.waitTableEnabled(table.getName());
- ct = new CatalogTracker(TEST_UTIL.getConfiguration());
- validateSingleRegionServerAssignment(ct, numRegions, numReplica);
+ admin.close();
+ admin = new HBaseAdmin(conf);
+ validateSingleRegionServerAssignment(admin.getConnection(), numRegions, numReplica);
for (int i = 1; i < numSlaves; i++) { //restore the cluster
TEST_UTIL.getMiniHBaseCluster().startRegionServer();
}
@@ -202,7 +208,8 @@ public class TestMasterOperationsForRegionReplicas {
.getAssignmentManager().getRegionStates().getRegionsOfTable(table);
assert(regions.size() == numRegions * numReplica);
//also make sure the meta table has the replica locations removed
- hris = MetaReader.getTableRegions(ct, table);
+ hris = MetaTableAccessor.getTableRegions(TEST_UTIL.getZooKeeperWatcher(),
+ admin.getConnection(), table);
assert(hris.size() == numRegions * numReplica);
//just check that the number of default replica regions in the meta table are the same
//as the number of regions the table was created with, and the count of the
@@ -236,21 +243,24 @@ public class TestMasterOperationsForRegionReplicas {
desc.addFamily(new HColumnDescriptor("family"));
admin.createTable(desc, Bytes.toBytes("A"), Bytes.toBytes("Z"), numRegions);
TEST_UTIL.waitTableEnabled(table.getName());
- CatalogTracker ct = new CatalogTracker(TEST_UTIL.getConfiguration());
Set<byte[]> tableRows = new HashSet<byte[]>();
- List<HRegionInfo> hris = MetaReader.getTableRegions(ct, table);
+ List<HRegionInfo> hris = MetaTableAccessor.getTableRegions(TEST_UTIL.getZooKeeperWatcher(),
+ admin.getConnection(), table);
for (HRegionInfo hri : hris) {
tableRows.add(hri.getRegionName());
}
admin.disableTable(table);
// now delete one replica info from all the rows
// this is to make the meta appear to be only partially updated
- HTable metaTable = new HTable(TableName.META_TABLE_NAME, ct.getConnection());
+ HTable metaTable = new HTable(TableName.META_TABLE_NAME, admin.getConnection());
for (byte[] row : tableRows) {
Delete deleteOneReplicaLocation = new Delete(row);
- deleteOneReplicaLocation.deleteColumns(HConstants.CATALOG_FAMILY, MetaReader.getServerColumn(1));
- deleteOneReplicaLocation.deleteColumns(HConstants.CATALOG_FAMILY, MetaReader.getSeqNumColumn(1));
- deleteOneReplicaLocation.deleteColumns(HConstants.CATALOG_FAMILY, MetaReader.getStartCodeColumn(1));
+ deleteOneReplicaLocation.deleteColumns(HConstants.CATALOG_FAMILY,
+ MetaTableAccessor.getServerColumn(1));
+ deleteOneReplicaLocation.deleteColumns(HConstants.CATALOG_FAMILY,
+ MetaTableAccessor.getSeqNumColumn(1));
+ deleteOneReplicaLocation.deleteColumns(HConstants.CATALOG_FAMILY,
+ MetaTableAccessor.getStartCodeColumn(1));
metaTable.delete(deleteOneReplicaLocation);
}
metaTable.close();
@@ -275,8 +285,8 @@ public class TestMasterOperationsForRegionReplicas {
return strBuf.toString();
}
- private void validateNumberOfRowsInMeta(final TableName table, int numRegions, CatalogTracker ct)
- throws IOException {
+ private void validateNumberOfRowsInMeta(final TableName table, int numRegions,
+ HConnection hConnection) throws IOException {
assert(admin.tableExists(table));
final AtomicInteger count = new AtomicInteger();
Visitor visitor = new Visitor() {
@@ -286,13 +296,14 @@ public class TestMasterOperationsForRegionReplicas {
return true;
}
};
- MetaReader.fullScan(ct, visitor);
+ MetaTableAccessor.fullScan(hConnection, visitor);
assert(count.get() == numRegions);
}
- private void validateFromSnapshotFromMeta(HBaseTestingUtility util, TableName table, int numRegions,
- int numReplica, CatalogTracker ct) throws IOException {
- SnapshotOfRegionAssignmentFromMeta snapshot = new SnapshotOfRegionAssignmentFromMeta(ct);
+ private void validateFromSnapshotFromMeta(HBaseTestingUtility util, TableName table,
+ int numRegions, int numReplica, HConnection hConnection) throws IOException {
+ SnapshotOfRegionAssignmentFromMeta snapshot = new SnapshotOfRegionAssignmentFromMeta(
+ hConnection);
snapshot.initialize();
Map<HRegionInfo, ServerName> regionToServerMap = snapshot.getRegionToRegionServerMap();
assert(regionToServerMap.size() == numRegions * numReplica + 1); //'1' for the namespace
@@ -316,9 +327,10 @@ public class TestMasterOperationsForRegionReplicas {
}
}
- private void validateSingleRegionServerAssignment(CatalogTracker ct, int numRegions,
+ private void validateSingleRegionServerAssignment(HConnection hConnection, int numRegions,
int numReplica) throws IOException {
- SnapshotOfRegionAssignmentFromMeta snapshot = new SnapshotOfRegionAssignmentFromMeta(ct);
+ SnapshotOfRegionAssignmentFromMeta snapshot = new SnapshotOfRegionAssignmentFromMeta(
+ hConnection);
snapshot.initialize();
Map<HRegionInfo, ServerName> regionToServerMap = snapshot.getRegionToRegionServerMap();
assertEquals(regionToServerMap.size(), numRegions * numReplica + 1); //'1' for the namespace
http://git-wip-us.apache.org/repos/asf/hbase/blob/24a0a2a2/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestRestartCluster.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestRestartCluster.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestRestartCluster.java
index 7fe1d23..c5ed9e9 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestRestartCluster.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestRestartCluster.java
@@ -29,7 +29,6 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
-import org.apache.hadoop.hbase.catalog.CatalogTracker;
import org.apache.hadoop.hbase.client.MetaScanner;
import org.apache.hadoop.hbase.executor.EventType;
import org.apache.hadoop.hbase.util.Bytes;
@@ -159,8 +158,8 @@ public class TestRestartCluster {
// We don't have to use SnapshotOfRegionAssignmentFromMeta.
// We use it here because AM used to use it to load all user region placements
- CatalogTracker ct = new CatalogTracker(UTIL.getConfiguration());
- SnapshotOfRegionAssignmentFromMeta snapshot = new SnapshotOfRegionAssignmentFromMeta(ct);
+ SnapshotOfRegionAssignmentFromMeta snapshot = new SnapshotOfRegionAssignmentFromMeta(
+ master.getShortCircuitConnection());
snapshot.initialize();
Map<HRegionInfo, ServerName> regionToRegionServerMap
= snapshot.getRegionToRegionServerMap();
@@ -226,8 +225,7 @@ public class TestRestartCluster {
Threads.sleep(100);
}
- ct = new CatalogTracker(UTIL.getConfiguration());
- snapshot =new SnapshotOfRegionAssignmentFromMeta(ct);
+ snapshot =new SnapshotOfRegionAssignmentFromMeta(master.getShortCircuitConnection());
snapshot.initialize();
Map<HRegionInfo, ServerName> newRegionToRegionServerMap =
snapshot.getRegionToRegionServerMap();
http://git-wip-us.apache.org/repos/asf/hbase/blob/24a0a2a2/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.java
index 8f62ec0..000734c 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.java
@@ -35,9 +35,10 @@ import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.MediumTests;
import org.apache.hadoop.hbase.Server;
import org.apache.hadoop.hbase.ServerName;
-import org.apache.hadoop.hbase.catalog.CatalogTracker;
+import org.apache.hadoop.hbase.client.HConnection;
import org.apache.hadoop.hbase.util.EnvironmentEdge;
import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
+import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;
import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;
import org.junit.AfterClass;
import org.junit.BeforeClass;
@@ -215,7 +216,12 @@ public class TestHFileCleaner {
}
@Override
- public CatalogTracker getCatalogTracker() {
+ public HConnection getShortCircuitConnection() {
+ return null;
+ }
+
+ @Override
+ public MetaTableLocator getMetaTableLocator() {
return null;
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/24a0a2a2/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestHFileLinkCleaner.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestHFileLinkCleaner.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestHFileLinkCleaner.java
index e4a26f0..dc63528 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestHFileLinkCleaner.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestHFileLinkCleaner.java
@@ -32,12 +32,13 @@ import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.Server;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.SmallTests;
-import org.apache.hadoop.hbase.catalog.CatalogTracker;
import org.apache.hadoop.hbase.HRegionInfo;
import org.apache.hadoop.hbase.CoordinatedStateManager;
+import org.apache.hadoop.hbase.client.HConnection;
import org.apache.hadoop.hbase.io.HFileLink;
import org.apache.hadoop.hbase.util.FSUtils;
import org.apache.hadoop.hbase.util.HFileArchiveUtil;
+import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;
import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;
import org.junit.Test;
import org.junit.experimental.categories.Category;
@@ -151,7 +152,12 @@ public class TestHFileLinkCleaner {
}
@Override
- public CatalogTracker getCatalogTracker() {
+ public HConnection getShortCircuitConnection() {
+ return null;
+ }
+
+ @Override
+ public MetaTableLocator getMetaTableLocator() {
return null;
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/24a0a2a2/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.java
index d26d354..c460518 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.java
@@ -27,11 +27,12 @@ import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.*;
-import org.apache.hadoop.hbase.catalog.CatalogTracker;
import org.apache.hadoop.hbase.CoordinatedStateManager;
+import org.apache.hadoop.hbase.client.HConnection;
import org.apache.hadoop.hbase.replication.ReplicationFactory;
import org.apache.hadoop.hbase.replication.ReplicationQueues;
import org.apache.hadoop.hbase.replication.regionserver.Replication;
+import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;
import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;
import org.junit.AfterClass;
import org.junit.BeforeClass;
@@ -157,7 +158,12 @@ public class TestLogsCleaner {
}
@Override
- public CatalogTracker getCatalogTracker() {
+ public HConnection getShortCircuitConnection() {
+ return null;
+ }
+
+ @Override
+ public MetaTableLocator getMetaTableLocator() {
return null;
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/24a0a2a2/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestEndToEndSplitTransaction.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestEndToEndSplitTransaction.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestEndToEndSplitTransaction.java
index afab1e0..e77b129 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestEndToEndSplitTransaction.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestEndToEndSplitTransaction.java
@@ -125,7 +125,7 @@ public class TestEndToEndSplitTransaction {
// 3. finish phase II
// note that this replicates some code from SplitTransaction
// 2nd daughter first
- server.postOpenDeployTasks(regions.getSecond(), server.getCatalogTracker());
+ server.postOpenDeployTasks(regions.getSecond());
// Add to online regions
server.addToOnlineRegions(regions.getSecond());
// THIS is the crucial point:
@@ -135,7 +135,7 @@ public class TestEndToEndSplitTransaction {
assertTrue(test(con, tableName, lastRow, server));
// first daughter second
- server.postOpenDeployTasks(regions.getFirst(), server.getCatalogTracker());
+ server.postOpenDeployTasks(regions.getFirst());
// Add to online regions
server.addToOnlineRegions(regions.getFirst());
assertTrue(test(con, tableName, firstRow, server));
@@ -293,7 +293,7 @@ public class TestEndToEndSplitTransaction {
}
/**
- * Checks regions using MetaScanner, MetaReader and HTable methods
+ * Checks regions using MetaScanner, MetaTableAccessor and HTable methods
*/
static class RegionChecker extends Chore {
Configuration conf;
http://git-wip-us.apache.org/repos/asf/hbase/blob/24a0a2a2/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestGetClosestAtOrBefore.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestGetClosestAtOrBefore.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestGetClosestAtOrBefore.java
index 8a5fbfe..cd97f6b 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestGetClosestAtOrBefore.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestGetClosestAtOrBefore.java
@@ -35,7 +35,7 @@ import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.MediumTests;
import org.apache.hadoop.hbase.TableName;
-import org.apache.hadoop.hbase.catalog.MetaEditor;
+import org.apache.hadoop.hbase.MetaTableAccessor;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Durability;
import org.apache.hadoop.hbase.client.Put;
@@ -83,7 +83,7 @@ public class TestGetClosestAtOrBefore extends HBaseTestCase {
i == 0? HConstants.EMPTY_BYTE_ARRAY: Bytes.toBytes((byte)i),
i == last? HConstants.EMPTY_BYTE_ARRAY: Bytes.toBytes((byte)i + interval));
- Put put = MetaEditor.makePutFromRegionInfo(hri);
+ Put put = MetaTableAccessor.makePutFromRegionInfo(hri);
put.setDurability(Durability.SKIP_WAL);
mr.put(put);
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/24a0a2a2/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHeapMemoryManager.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHeapMemoryManager.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHeapMemoryManager.java
index 9f9d9b7..1d06a0e 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHeapMemoryManager.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHeapMemoryManager.java
@@ -32,8 +32,8 @@ import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.Server;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.SmallTests;
-import org.apache.hadoop.hbase.catalog.CatalogTracker;
import org.apache.hadoop.hbase.io.hfile.BlockCache;
+import org.apache.hadoop.hbase.client.HConnection;
import org.apache.hadoop.hbase.io.hfile.BlockCacheKey;
import org.apache.hadoop.hbase.io.hfile.CacheStats;
import org.apache.hadoop.hbase.io.hfile.Cacheable;
@@ -41,6 +41,7 @@ import org.apache.hadoop.hbase.io.hfile.CachedBlock;
import org.apache.hadoop.hbase.io.hfile.ResizableBlockCache;
import org.apache.hadoop.hbase.regionserver.HeapMemoryManager.TunerContext;
import org.apache.hadoop.hbase.regionserver.HeapMemoryManager.TunerResult;
+import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;
import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;
import org.junit.Test;
import org.junit.experimental.categories.Category;
@@ -425,7 +426,12 @@ public class TestHeapMemoryManager {
}
@Override
- public CatalogTracker getCatalogTracker() {
+ public HConnection getShortCircuitConnection() {
+ return null;
+ }
+
+ @Override
+ public MetaTableLocator getMetaTableLocator() {
return null;
}