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/10/13 21:24:36 UTC
git commit: HBASE-12029 Use Table and RegionLocator in
HTable.getRegionLocations() (Solomon Duskis)
Repository: hbase
Updated Branches:
refs/heads/master b30d2f315 -> 9a893a9c6
HBASE-12029 Use Table and RegionLocator in HTable.getRegionLocations() (Solomon Duskis)
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/9a893a9c
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/9a893a9c
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/9a893a9c
Branch: refs/heads/master
Commit: 9a893a9c6a837e3147f365af5207562473e968a5
Parents: b30d2f3
Author: stack <st...@apache.org>
Authored: Mon Oct 13 12:24:27 2014 -0700
Committer: stack <st...@apache.org>
Committed: Mon Oct 13 12:24:27 2014 -0700
----------------------------------------------------------------------
.../hadoop/hbase/client/ConnectionManager.java | 2 +-
.../org/apache/hadoop/hbase/client/HTable.java | 22 +++-
.../apache/hadoop/hbase/client/MetaScanner.java | 26 ++++-
.../hadoop/hbase/client/RegionLocator.java | 9 ++
.../hadoop/hbase/rest/RegionsResource.java | 2 +-
.../mapreduce/MultiTableInputFormatBase.java | 5 +-
.../hbase/mapreduce/TableInputFormat.java | 2 +
.../hbase/mapreduce/TableInputFormatBase.java | 16 ++-
.../hadoop/hbase/util/RegionSizeCalculator.java | 104 ++++++++++---------
.../apache/hadoop/hbase/TestMultiVersions.java | 3 +-
.../hadoop/hbase/client/TestMetaScanner.java | 2 +-
.../TestEndToEndSplitTransaction.java | 4 +-
.../apache/hadoop/hbase/util/TestHBaseFsck.java | 4 +-
.../hbase/util/TestRegionSizeCalculator.java | 34 +++---
14 files changed, 153 insertions(+), 82 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/9a893a9c/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionManager.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionManager.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionManager.java
index 1da1320..c7270ba 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionManager.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionManager.java
@@ -1008,7 +1008,7 @@ class ConnectionManager {
public List<HRegionLocation> locateRegions(final TableName tableName,
final boolean useCache, final boolean offlined) throws IOException {
NavigableMap<HRegionInfo, ServerName> regions = MetaScanner.allTableRegions(conf, this,
- tableName, offlined);
+ tableName);
final List<HRegionLocation> locations = new ArrayList<HRegionLocation>();
for (HRegionInfo regionInfo : regions.keySet()) {
RegionLocations list = locateRegion(tableName, regionInfo.getStartKey(), useCache, true);
http://git-wip-us.apache.org/repos/asf/hbase/blob/9a893a9c/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTable.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTable.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTable.java
index 0143b7e..fafa604 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTable.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTable.java
@@ -25,6 +25,7 @@ import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.Map.Entry;
import java.util.NavigableMap;
import java.util.TreeMap;
import java.util.concurrent.Callable;
@@ -606,12 +607,29 @@ public class HTable implements HTableInterface, RegionLocator {
* This is mainly useful for the MapReduce integration.
* @return A map of HRegionInfo with it's server address
* @throws IOException if a remote or network exception occurs
- * @deprecated This is no longer a public API
+ * @deprecated This is no longer a public API. Use {@link #getAllRegionLocations()} instead.
*/
@Deprecated
public NavigableMap<HRegionInfo, ServerName> getRegionLocations() throws IOException {
// TODO: Odd that this returns a Map of HRI to SN whereas getRegionLocator, singular, returns an HRegionLocation.
- return MetaScanner.allTableRegions(getConfiguration(), this.connection, getName(), false);
+ return MetaScanner.allTableRegions(getConfiguration(), this.connection, getName());
+ }
+
+ /**
+ * Gets all the regions and their address for this table.
+ * <p>
+ * This is mainly useful for the MapReduce integration.
+ * @return A map of HRegionInfo with it's server address
+ * @throws IOException if a remote or network exception occurs
+ */
+ @Override
+ public List<HRegionLocation> getAllRegionLocations() throws IOException {
+ NavigableMap<HRegionInfo, ServerName> locations = getRegionLocations();
+ ArrayList<HRegionLocation> regions = new ArrayList<>(locations.size());
+ for (Entry<HRegionInfo, ServerName> entry : locations.entrySet()) {
+ regions.add(new HRegionLocation(entry.getKey(), entry.getValue()));
+ }
+ return regions;
}
/**
http://git-wip-us.apache.org/repos/asf/hbase/blob/9a893a9c/hbase-client/src/main/java/org/apache/hadoop/hbase/client/MetaScanner.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/MetaScanner.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/MetaScanner.java
index a488573..8013930 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/MetaScanner.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/MetaScanner.java
@@ -132,8 +132,10 @@ public class MetaScanner {
final byte[] row, final int rowLimit, final TableName metaTableName)
throws IOException {
+ boolean closeConnection = false;
if (connection == null){
- connection = ConnectionManager.getConnectionInternal(configuration);
+ connection = ConnectionFactory.createConnection(configuration);
+ closeConnection = true;
}
int rowUpperLimit = rowLimit > 0 ? rowLimit: Integer.MAX_VALUE;
@@ -217,7 +219,9 @@ public class MetaScanner {
LOG.debug("Got exception in closing meta table", t);
}
}
-
+ if (closeConnection) {
+ connection.close();
+ }
}
}
@@ -276,10 +280,24 @@ public class MetaScanner {
* leave out offlined regions from returned list.
* @return Map of all user-space regions to servers
* @throws IOException
+ * @deprecated Use {@link #allTableRegions(Configuration, Connection, TableName)} instead
*/
+ @Deprecated
public static NavigableMap<HRegionInfo, ServerName> allTableRegions(Configuration conf,
- Connection connection, final TableName tableName,
- final boolean offlined) throws IOException {
+ Connection connection, final TableName tableName, boolean offlined) throws IOException {
+ return allTableRegions(conf, connection, tableName);
+ }
+
+ /**
+ * Lists all of the table regions currently in META.
+ * @param conf
+ * @param offlined True if we are to include offlined regions, false and we'll
+ * leave out offlined regions from returned list.
+ * @return Map of all user-space regions to servers
+ * @throws IOException
+ */
+ public static NavigableMap<HRegionInfo, ServerName> allTableRegions(Configuration conf,
+ Connection connection, final TableName tableName) throws IOException {
final NavigableMap<HRegionInfo, ServerName> regions =
new TreeMap<HRegionInfo, ServerName>();
MetaScannerVisitor visitor = new TableMetaScannerVisitor(tableName) {
http://git-wip-us.apache.org/repos/asf/hbase/blob/9a893a9c/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionLocator.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionLocator.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionLocator.java
index 505e841..2d56c0e 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionLocator.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionLocator.java
@@ -26,6 +26,7 @@ import org.apache.hadoop.hbase.util.Pair;
import java.io.Closeable;
import java.io.IOException;
+import java.util.List;
/**
* Used to view region location information for a single HBase table.
@@ -55,6 +56,14 @@ public interface RegionLocator extends Closeable {
throws IOException;
/**
+ * Retrieves all of the regions associated with this table.
+ * @return a {@link List} of all regions associated with this table.
+ * @throws IOException if a remote or network exception occurs
+ */
+ public List<HRegionLocation> getAllRegionLocations()
+ throws IOException;
+
+ /**
* Gets the starting row key for every region in the currently open table.
* <p>
* This is mainly useful for the MapReduce integration.
http://git-wip-us.apache.org/repos/asf/hbase/blob/9a893a9c/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RegionsResource.java
----------------------------------------------------------------------
diff --git a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RegionsResource.java b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RegionsResource.java
index ddc2f56..1ecb7c6 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RegionsResource.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RegionsResource.java
@@ -77,7 +77,7 @@ public class RegionsResource extends ResourceBase {
TableName tableName = TableName.valueOf(tableResource.getName());
TableInfoModel model = new TableInfoModel(tableName.getNameAsString());
Map<HRegionInfo,ServerName> regions = MetaScanner.allTableRegions(
- servlet.getConfiguration(), null, tableName, false);
+ servlet.getConfiguration(), null, tableName);
for (Map.Entry<HRegionInfo,ServerName> e: regions.entrySet()) {
HRegionInfo hri = e.getKey();
ServerName addr = e.getValue();
http://git-wip-us.apache.org/repos/asf/hbase/blob/9a893a9c/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/MultiTableInputFormatBase.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/MultiTableInputFormatBase.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/MultiTableInputFormatBase.java
index 1bae235..6a66d37 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/MultiTableInputFormatBase.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/MultiTableInputFormatBase.java
@@ -157,7 +157,8 @@ public abstract class MultiTableInputFormatBase extends
byte[] startRow = scan.getStartRow();
byte[] stopRow = scan.getStopRow();
- RegionSizeCalculator sizeCalculator = new RegionSizeCalculator((HTable) table);
+ RegionSizeCalculator sizeCalculator = new RegionSizeCalculator(
+ regionLocator, conn.getAdmin());
for (int i = 0; i < keys.getFirst().length; i++) {
if (!includeRegionInSplit(keys.getFirst()[i], keys.getSecond()[i])) {
@@ -184,7 +185,7 @@ public abstract class MultiTableInputFormatBase extends
long regionSize = sizeCalculator.getRegionSize(regionInfo.getRegionName());
TableSplit split =
- new TableSplit(table.getName(),
+ new TableSplit(regionLocator.getName(),
scan, splitStart, splitStop, regionHostname, regionSize);
splits.add(split);
http://git-wip-us.apache.org/repos/asf/hbase/blob/9a893a9c/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormat.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormat.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormat.java
index 42a231b..8dac05a 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormat.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormat.java
@@ -109,6 +109,8 @@ implements Configurable {
this.conf = configuration;
TableName tableName = TableName.valueOf(conf.get(INPUT_TABLE));
try {
+ // TODO: Replace setHTable() with initializeTable() once we have
+ // a clean method of closing a connection.
setHTable(new HTable(new Configuration(conf), tableName));
} catch (Exception e) {
LOG.error(StringUtils.stringifyException(e));
http://git-wip-us.apache.org/repos/asf/hbase/blob/9a893a9c/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java
index 5dcfe00..ff41314 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java
@@ -35,6 +35,7 @@ import org.apache.hadoop.hbase.classification.InterfaceStability;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.HRegionLocation;
import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.RegionLocator;
@@ -286,15 +287,28 @@ extends InputFormat<ImmutableBytesWritable, Result> {
* Allows subclasses to set the {@link HTable}.
*
* @param table The table to get the data from.
+ * @throws IOExceptfion
* @deprecated Use {@link #initializeTable(Connection, TableName)} instead.
*/
@Deprecated
- protected void setHTable(HTable table) {
+ protected void setHTable(HTable table) throws IOException {
this.table = table;
this.regionLocator = table;
}
/**
+ * Allows subclasses to initalize the table information.
+ *
+ * @param connection The {@link Connection} to the HBase cluster.
+ * @param tableName The {@link TableName} of the table to process.
+ * @throws IOExceptfion
+ */
+ protected void initializeTable(Connection connection, TableName tableName) throws IOException {
+ this.table = connection.getTable(tableName);
+ this.regionLocator = connection.getRegionLocator(tableName);
+ }
+
+ /**
* Gets the scan defining the actual details like columns etc.
*
* @return The internal scan instance.
http://git-wip-us.apache.org/repos/asf/hbase/blob/9a893a9c/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionSizeCalculator.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionSizeCalculator.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionSizeCalculator.java
index f9c4c92..92c4410 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionSizeCalculator.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionSizeCalculator.java
@@ -17,28 +17,30 @@
*/
package org.apache.hadoop.hbase.util;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.TreeSet;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.hbase.classification.InterfaceAudience;
-import org.apache.hadoop.hbase.classification.InterfaceStability;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.ClusterStatus;
-import org.apache.hadoop.hbase.HRegionInfo;
+import org.apache.hadoop.hbase.HRegionLocation;
import org.apache.hadoop.hbase.RegionLoad;
import org.apache.hadoop.hbase.ServerLoad;
import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.classification.InterfaceAudience;
+import org.apache.hadoop.hbase.classification.InterfaceStability;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
-
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeMap;
-import java.util.TreeSet;
+import org.apache.hadoop.hbase.client.RegionLocator;
/**
* Computes size of each region for given table and given column families.
@@ -59,57 +61,65 @@ public class RegionSizeCalculator {
/**
* Computes size of each region for table and given column families.
- * */
+ *
+ * @deprecated Use {@link #RegionSizeCalculator(RegionLocator, Admin)} instead.
+ */
+ @Deprecated
public RegionSizeCalculator(HTable table) throws IOException {
- this(table, new HBaseAdmin(table.getConfiguration()));
+ HBaseAdmin admin = new HBaseAdmin(table.getConfiguration());
+ try {
+ init(table, admin);
+ } finally {
+ admin.close();
+ }
}
- /** ctor for unit testing */
- RegionSizeCalculator (HTable table, Admin admin) throws IOException {
+ /**
+ * Computes size of each region for table and given column families.
+ * */
+ public RegionSizeCalculator(RegionLocator regionLocator, Admin admin) throws IOException {
+ init(regionLocator, admin);
+ }
- try {
- if (!enabled(table.getConfiguration())) {
- LOG.info("Region size calculation disabled.");
- return;
- }
+ private void init(RegionLocator regionLocator, Admin admin)
+ throws IOException {
+ if (!enabled(admin.getConfiguration())) {
+ LOG.info("Region size calculation disabled.");
+ return;
+ }
- LOG.info("Calculating region sizes for table \"" + new String(table.getTableName()) + "\".");
+ LOG.info("Calculating region sizes for table \"" + regionLocator.getName() + "\".");
- //get regions for table
- Set<HRegionInfo> tableRegionInfos = table.getRegionLocations().keySet();
- Set<byte[]> tableRegions = new TreeSet<byte[]>(Bytes.BYTES_COMPARATOR);
- for (HRegionInfo regionInfo : tableRegionInfos) {
- tableRegions.add(regionInfo.getRegionName());
- }
+ //get regions for table
+ List<HRegionLocation> tableRegionInfos = regionLocator.getAllRegionLocations();
+ Set<byte[]> tableRegions = new TreeSet<byte[]>(Bytes.BYTES_COMPARATOR);
+ for (HRegionLocation regionInfo : tableRegionInfos) {
+ tableRegions.add(regionInfo.getRegionInfo().getRegionName());
+ }
- ClusterStatus clusterStatus = admin.getClusterStatus();
- Collection<ServerName> servers = clusterStatus.getServers();
- final long megaByte = 1024L * 1024L;
+ ClusterStatus clusterStatus = admin.getClusterStatus();
+ Collection<ServerName> servers = clusterStatus.getServers();
+ final long megaByte = 1024L * 1024L;
- //iterate all cluster regions, filter regions from our table and compute their size
- for (ServerName serverName: servers) {
- ServerLoad serverLoad = clusterStatus.getLoad(serverName);
+ //iterate all cluster regions, filter regions from our table and compute their size
+ for (ServerName serverName: servers) {
+ ServerLoad serverLoad = clusterStatus.getLoad(serverName);
- for (RegionLoad regionLoad: serverLoad.getRegionsLoad().values()) {
- byte[] regionId = regionLoad.getName();
+ for (RegionLoad regionLoad: serverLoad.getRegionsLoad().values()) {
+ byte[] regionId = regionLoad.getName();
- if (tableRegions.contains(regionId)) {
+ if (tableRegions.contains(regionId)) {
- long regionSizeBytes = regionLoad.getStorefileSizeMB() * megaByte;
- sizeMap.put(regionId, regionSizeBytes);
+ long regionSizeBytes = regionLoad.getStorefileSizeMB() * megaByte;
+ sizeMap.put(regionId, regionSizeBytes);
- if (LOG.isDebugEnabled()) {
- LOG.debug("Region " + regionLoad.getNameAsString() + " has size " + regionSizeBytes);
- }
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Region " + regionLoad.getNameAsString() + " has size " + regionSizeBytes);
}
}
}
- LOG.debug("Region sizes calculated");
-
- } finally {
- admin.close();
}
-
+ LOG.debug("Region sizes calculated");
}
boolean enabled(Configuration configuration) {
http://git-wip-us.apache.org/repos/asf/hbase/blob/9a893a9c/hbase-server/src/test/java/org/apache/hadoop/hbase/TestMultiVersions.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestMultiVersions.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestMultiVersions.java
index 2a9b953..3491d72 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestMultiVersions.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestMultiVersions.java
@@ -212,8 +212,7 @@ public class TestMultiVersions {
NavigableMap<HRegionInfo, ServerName> locations = table.getRegionLocations();
assertEquals(2, locations.size());
int index = 0;
- for (Map.Entry<HRegionInfo, ServerName> e: locations.entrySet()) {
- HRegionInfo hri = e.getKey();
+ for (HRegionInfo hri: locations.keySet()) {
if (index == 0) {
assertTrue(Bytes.equals(HConstants.EMPTY_START_ROW, hri.getStartKey()));
assertTrue(Bytes.equals(hri.getEndKey(), splitRows[0]));
http://git-wip-us.apache.org/repos/asf/hbase/blob/9a893a9c/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 f0bc1ec..91028a9 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
@@ -190,7 +190,7 @@ public class TestMetaScanner {
while(!isStopped()) {
try {
NavigableMap<HRegionInfo, ServerName> regions =
- MetaScanner.allTableRegions(TEST_UTIL.getConfiguration(), null, TABLENAME, false);
+ MetaScanner.allTableRegions(TEST_UTIL.getConfiguration(), null, TABLENAME);
LOG.info("-------");
byte[] lastEndKey = HConstants.EMPTY_START_ROW;
http://git-wip-us.apache.org/repos/asf/hbase/blob/9a893a9c/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 d2164d1..1651ab6 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
@@ -237,7 +237,7 @@ public class TestEndToEndSplitTransaction {
Random random = new Random();
for (int i= 0; i< 5; i++) {
NavigableMap<HRegionInfo, ServerName> regions = MetaScanner.allTableRegions(conf, null,
- tableName, false);
+ tableName);
if (regions.size() == 0) {
continue;
}
@@ -310,7 +310,7 @@ public class TestEndToEndSplitTransaction {
//MetaScanner.allTableRegions()
NavigableMap<HRegionInfo, ServerName> regions = MetaScanner.allTableRegions(conf, null,
- tableName, false);
+ tableName);
verifyTableRegions(regions.keySet());
//MetaScanner.listAllRegions()
http://git-wip-us.apache.org/repos/asf/hbase/blob/9a893a9c/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java
index 19b2d31..064922d 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java
@@ -1264,7 +1264,7 @@ public class TestHBaseFsck {
setupTableWithRegionReplica(table, 2);
assertEquals(ROWKEYS.length, countRows());
NavigableMap<HRegionInfo, ServerName> map = MetaScanner.allTableRegions(conf, null,
- tbl.getName(), false);
+ tbl.getName());
int i = 0;
// store the HRIs of the regions we will mess up
for (Map.Entry<HRegionInfo, ServerName> m : map.entrySet()) {
@@ -1296,7 +1296,7 @@ public class TestHBaseFsck {
i = 0;
HRegionInfo[] newHris = new HRegionInfo[2];
// get all table's regions from meta
- map = MetaScanner.allTableRegions(conf, null, tbl.getName(), false);
+ map = MetaScanner.allTableRegions(conf, null, tbl.getName());
// get the HRIs of the new regions (hbck created new regions for fixing the hdfs mess-up)
for (Map.Entry<HRegionInfo, ServerName> m : map.entrySet()) {
if (m.getKey().getStartKey().length > 0 &&
http://git-wip-us.apache.org/repos/asf/hbase/blob/9a893a9c/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestRegionSizeCalculator.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestRegionSizeCalculator.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestRegionSizeCalculator.java
index a8e0a55..8b74112 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestRegionSizeCalculator.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestRegionSizeCalculator.java
@@ -20,14 +20,15 @@ package org.apache.hadoop.hbase.util;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.ClusterStatus;
import org.apache.hadoop.hbase.HRegionInfo;
+import org.apache.hadoop.hbase.HRegionLocation;
import org.apache.hadoop.hbase.RegionLoad;
import org.apache.hadoop.hbase.ServerLoad;
import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.testclassification.MiscTests;
import org.apache.hadoop.hbase.testclassification.SmallTests;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
-import org.apache.hadoop.hbase.client.HTable;
+import org.apache.hadoop.hbase.client.RegionLocator;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.mockito.Mockito;
@@ -36,7 +37,6 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import java.util.NavigableMap;
import java.util.TreeMap;
import static org.junit.Assert.assertEquals;
@@ -52,7 +52,7 @@ public class TestRegionSizeCalculator {
@Test
public void testSimpleTestCase() throws Exception {
- HTable table = mockTable("region1", "region2", "region3");
+ RegionLocator regionLocator = mockRegionLocator("region1", "region2", "region3");
Admin admin = mockAdmin(
mockServer(
@@ -65,7 +65,7 @@ public class TestRegionSizeCalculator {
)
);
- RegionSizeCalculator calculator = new RegionSizeCalculator(table, admin);
+ RegionSizeCalculator calculator = new RegionSizeCalculator(regionLocator, admin);
assertEquals(123 * megabyte, calculator.getRegionSize("region1".getBytes()));
assertEquals(54321 * megabyte, calculator.getRegionSize("region2".getBytes()));
@@ -84,7 +84,7 @@ public class TestRegionSizeCalculator {
@Test
public void testLargeRegion() throws Exception {
- HTable table = mockTable("largeRegion");
+ RegionLocator regionLocator = mockRegionLocator("largeRegion");
Admin admin = mockAdmin(
mockServer(
@@ -92,7 +92,7 @@ public class TestRegionSizeCalculator {
)
);
- RegionSizeCalculator calculator = new RegionSizeCalculator(table, admin);
+ RegionSizeCalculator calculator = new RegionSizeCalculator(regionLocator, admin);
assertEquals(((long) Integer.MAX_VALUE) * megabyte, calculator.getRegionSize("largeRegion".getBytes()));
}
@@ -101,7 +101,7 @@ public class TestRegionSizeCalculator {
@Test
public void testDisabled() throws Exception {
String regionName = "cz.goout:/index.html";
- HTable table = mockTable(regionName);
+ RegionLocator table = mockRegionLocator(regionName);
Admin admin = mockAdmin(
mockServer(
@@ -124,29 +124,29 @@ public class TestRegionSizeCalculator {
/**
* Makes some table with given region names.
* */
- private HTable mockTable(String... regionNames) throws IOException {
- HTable mockedTable = Mockito.mock(HTable.class);
- when(mockedTable.getConfiguration()).thenReturn(configuration);
- when(mockedTable.getTableName()).thenReturn("sizeTestTable".getBytes());
- NavigableMap<HRegionInfo, ServerName> regionLocations = new TreeMap<HRegionInfo, ServerName>();
- when(mockedTable.getRegionLocations()).thenReturn(regionLocations);
+ private RegionLocator mockRegionLocator(String... regionNames) throws IOException {
+ RegionLocator mockedTable = Mockito.mock(RegionLocator.class);
+ when(mockedTable.getName()).thenReturn(TableName.valueOf("sizeTestTable"));
+ List<HRegionLocation> regionLocations = new ArrayList<>();
+ when(mockedTable.getAllRegionLocations()).thenReturn(regionLocations);
for (String regionName : regionNames) {
HRegionInfo info = Mockito.mock(HRegionInfo.class);
when(info.getRegionName()).thenReturn(regionName.getBytes());
- regionLocations.put(info, null);//we are not interested in values
+ regionLocations.add(new HRegionLocation(info, null));//we are not interested in values
}
return mockedTable;
}
/**
- * Creates mock returing ClusterStatus info about given servers.
+ * Creates mock returning ClusterStatus info about given servers.
*/
private Admin mockAdmin(ServerLoad... servers) throws Exception {
//get clusterstatus
- Admin mockAdmin = Mockito.mock(HBaseAdmin.class);
+ Admin mockAdmin = Mockito.mock(Admin.class);
ClusterStatus clusterStatus = mockCluster(servers);
+ when(mockAdmin.getConfiguration()).thenReturn(configuration);
when(mockAdmin.getClusterStatus()).thenReturn(clusterStatus);
return mockAdmin;
}