You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by jm...@apache.org on 2013/02/13 19:55:12 UTC
svn commit: r1445846 - in /hbase/branches/hbase-7290/hbase-server/src:
main/java/org/apache/hadoop/hbase/io/
main/java/org/apache/hadoop/hbase/master/handler/
main/java/org/apache/hadoop/hbase/master/snapshot/
main/java/org/apache/hadoop/hbase/snapshot...
Author: jmhsieh
Date: Wed Feb 13 18:55:11 2013
New Revision: 1445846
URL: http://svn.apache.org/r1445846
Log:
HBASE-7389 HBASE-7365 Snapshot clone/restore followup (Matteo Bertozzi)
Modified:
hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/io/HFileLink.java
hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/CreateTableHandler.java
hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/CloneSnapshotHandler.java
hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/RestoreSnapshotHandler.java
hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/RestoreSnapshotHelper.java
hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ModifyRegionUtils.java
hbase/branches/hbase-7290/hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/TestRestoreSnapshotHelper.java
Modified: hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/io/HFileLink.java
URL: http://svn.apache.org/viewvc/hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/io/HFileLink.java?rev=1445846&r1=1445845&r2=1445846&view=diff
==============================================================================
--- hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/io/HFileLink.java (original)
+++ hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/io/HFileLink.java Wed Feb 13 18:55:11 2013
@@ -28,6 +28,7 @@ import org.apache.hadoop.classification.
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.HRegionInfo;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.regionserver.HRegion;
@@ -83,6 +84,7 @@ public class HFileLink extends FileLink
private final Path archivePath;
private final Path originPath;
+ private final Path tempPath;
/**
* @param conf {@link Configuration} from which to extract specific archive locations
@@ -100,19 +102,10 @@ public class HFileLink extends FileLink
*/
public HFileLink(final Path rootDir, final Path archiveDir, final Path path) {
Path hfilePath = getRelativeTablePath(path);
+ this.tempPath = new Path(new Path(rootDir, HConstants.HBASE_TEMP_DIRECTORY), hfilePath);
this.originPath = new Path(rootDir, hfilePath);
this.archivePath = new Path(archiveDir, hfilePath);
- setLocations(originPath, archivePath);
- }
-
- /**
- * @param originPath Path to the hfile in the table directory
- * @param archivePath Path to the hfile in the archive directory
- */
- public HFileLink(final Path originPath, final Path archivePath) {
- this.originPath = originPath;
- this.archivePath = archivePath;
- setLocations(originPath, archivePath);
+ setLocations(originPath, archivePath, this.tempPath);
}
/**
@@ -185,7 +178,12 @@ public class HFileLink extends FileLink
return originPath;
}
- return new Path(archiveDir, hfilePath);
+ Path archivePath = new Path(archiveDir, hfilePath);
+ if (fs.exists(archivePath)) {
+ return archivePath;
+ }
+
+ return new Path(new Path(rootDir, HConstants.HBASE_TEMP_DIRECTORY), hfilePath);
}
/**
Modified: hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/CreateTableHandler.java
URL: http://svn.apache.org/viewvc/hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/CreateTableHandler.java?rev=1445846&r1=1445845&r2=1445846&view=diff
==============================================================================
--- hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/CreateTableHandler.java (original)
+++ hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/CreateTableHandler.java Wed Feb 13 18:55:11 2013
@@ -61,9 +61,9 @@ import org.apache.zookeeper.KeeperExcept
@InterfaceAudience.Private
public class CreateTableHandler extends EventHandler {
private static final Log LOG = LogFactory.getLog(CreateTableHandler.class);
- private MasterFileSystem fileSystemManager;
- private final HTableDescriptor hTableDescriptor;
- private Configuration conf;
+ protected final MasterFileSystem fileSystemManager;
+ protected final HTableDescriptor hTableDescriptor;
+ protected final Configuration conf;
private final AssignmentManager assignmentManager;
private final CatalogTracker catalogTracker;
private final HRegionInfo [] newRegions;
@@ -205,11 +205,11 @@ public class CreateTableHandler extends
/**
* Create the on-disk structure for the table, and returns the regions info.
- * @param rootdir directory where the table is being created
+ * @param tableRootDir directory where the table is being created
* @param tableName name of the table under construction
* @return the list of regions created
*/
- protected List<HRegionInfo> handleCreateHdfsRegions(final Path rootdir, final String tableName)
+ protected List<HRegionInfo> handleCreateHdfsRegions(final Path tableRootDir, final String tableName)
throws IOException {
int regionNumber = newRegions.length;
ThreadPoolExecutor regionOpenAndInitThreadPool = getRegionOpenAndInitThreadPool(
@@ -224,7 +224,7 @@ public class CreateTableHandler extends
// 1. Create HRegion
HRegion region = HRegion.createHRegion(newRegion,
- rootdir, conf, hTableDescriptor, null,
+ tableRootDir, conf, hTableDescriptor, null,
false, true);
// 2. Close the new region to flush to disk. Close log file too.
region.close();
Modified: hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/CloneSnapshotHandler.java
URL: http://svn.apache.org/viewvc/hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/CloneSnapshotHandler.java?rev=1445846&r1=1445845&r2=1445846&view=diff
==============================================================================
--- hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/CloneSnapshotHandler.java (original)
+++ hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/CloneSnapshotHandler.java Wed Feb 13 18:55:11 2013
@@ -44,6 +44,8 @@ import org.apache.hadoop.hbase.snapshot.
import org.apache.hadoop.hbase.snapshot.SnapshotDescriptionUtils;
import org.apache.hadoop.hbase.util.Bytes;
+import com.google.common.base.Preconditions;
+
/**
* Handler to Clone a snapshot.
*
@@ -76,23 +78,36 @@ public class CloneSnapshotHandler extend
this.monitor = new ForeignExceptionDispatcher();
}
+ /**
+ * Create the on-disk regions, using the tableRootDir provided by the CreateTableHandler.
+ * The cloned table will be created in a temp directory, and then the CreateTableHandler
+ * will be responsible to add the regions returned by this method to META and do the assignment.
+ */
@Override
- protected List<HRegionInfo> handleCreateRegions(String tableName) throws IOException {
+ protected List<HRegionInfo> handleCreateHdfsRegions(final Path tableRootDir, final String tableName)
+ throws IOException {
FileSystem fs = fileSystemManager.getFileSystem();
Path rootDir = fileSystemManager.getRootDir();
- Path tableDir = HTableDescriptor.getTableDir(rootDir, Bytes.toBytes(tableName));
+ Path tableDir = new Path(tableRootDir, tableName);
try {
- // Execute the Clone
+ // 1. Execute the on-disk Clone
Path snapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(snapshot, rootDir);
RestoreSnapshotHelper restoreHelper = new RestoreSnapshotHelper(conf, fs,
- catalogTracker, snapshot, snapshotDir, hTableDescriptor, tableDir, monitor);
- restoreHelper.restore();
+ snapshot, snapshotDir, hTableDescriptor, tableDir, monitor);
+ RestoreSnapshotHelper.RestoreMetaChanges metaChanges = restoreHelper.restoreHdfsRegions();
+
+ // Clone operation should not have stuff to restore or remove
+ Preconditions.checkArgument(metaChanges.getRegionsToRestore() == null,
+ "A clone should not have regions to restore");
+ Preconditions.checkArgument(metaChanges.getRegionsToRemove() == null,
+ "A clone should not have regions to remove");
// At this point the clone is complete. Next step is enabling the table.
LOG.info("Clone snapshot=" + snapshot.getName() + " on table=" + tableName + " completed!");
- return MetaReader.getTableRegions(catalogTracker, Bytes.toBytes(tableName));
+ // 2. let the CreateTableHandler add the regions to meta
+ return metaChanges.getRegionsToAdd();
} catch (Exception e) {
String msg = "clone snapshot=" + snapshot + " failed";
LOG.error(msg, e);
Modified: hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/RestoreSnapshotHandler.java
URL: http://svn.apache.org/viewvc/hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/RestoreSnapshotHandler.java?rev=1445846&r1=1445845&r2=1445846&view=diff
==============================================================================
--- hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/RestoreSnapshotHandler.java (original)
+++ hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/RestoreSnapshotHandler.java Wed Feb 13 18:55:11 2013
@@ -31,6 +31,7 @@ import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.HRegionInfo;
import org.apache.hadoop.hbase.HTableDescriptor;
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.errorhandling.ForeignException;
import org.apache.hadoop.hbase.errorhandling.ForeignExceptionDispatcher;
@@ -78,6 +79,13 @@ public class RestoreSnapshotHandler exte
this.hTableDescriptor = htd;
}
+ /**
+ * The restore table is executed in place.
+ * - The on-disk data will be restored
+ * - [if something fail here: you need to delete the table and re-run the restore]
+ * - META will be updated
+ * - [if something fail here: you need to run hbck to fix META entries]
+ */
@Override
protected void handleTableOperation(List<HRegionInfo> hris) throws IOException {
MasterFileSystem fileSystemManager = masterServices.getMasterFileSystem();
@@ -88,25 +96,29 @@ public class RestoreSnapshotHandler exte
Path tableDir = HTableDescriptor.getTableDir(rootDir, tableName);
try {
- // Update descriptor
+ // 1. Update descriptor
this.masterServices.getTableDescriptors().add(hTableDescriptor);
- // Execute the Restore
+ // 2. Execute the on-disk Restore
LOG.debug("Starting restore snapshot=" + snapshot);
Path snapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(snapshot, rootDir);
RestoreSnapshotHelper restoreHelper = new RestoreSnapshotHelper(
- masterServices.getConfiguration(), fs, catalogTracker,
+ masterServices.getConfiguration(), fs,
snapshot, snapshotDir, hTableDescriptor, tableDir, monitor);
- restoreHelper.restore();
+ RestoreSnapshotHelper.RestoreMetaChanges metaChanges = restoreHelper.restoreHdfsRegions();
+
+ // 3. Applies changes to .META.
+ hris.clear();
+ hris.addAll(metaChanges.getRegionsToAdd());
+ hris.addAll(metaChanges.getRegionsToRestore());
+ List<HRegionInfo> hrisToRemove = metaChanges.getRegionsToRemove();
+ MetaEditor.mutateRegions(catalogTracker, hrisToRemove, hris);
// At this point the restore is complete. Next step is enabling the table.
LOG.info("Restore snapshot=" + snapshot.getName() + " on table=" +
Bytes.toString(tableName) + " completed!");
-
- hris.clear();
- hris.addAll(MetaReader.getTableRegions(catalogTracker, tableName));
} catch (IOException e) {
- String msg = "restore snapshot=" + snapshot + " failed";
+ String msg = "restore snapshot=" + snapshot + " failed. re-run the restore command.";
LOG.error(msg, e);
monitor.receive(new ForeignException(masterServices.getServerName().toString(), e));
throw new RestoreSnapshotException(msg, e);
Modified: hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/RestoreSnapshotHelper.java
URL: http://svn.apache.org/viewvc/hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/RestoreSnapshotHelper.java?rev=1445846&r1=1445845&r2=1445846&view=diff
==============================================================================
--- hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/RestoreSnapshotHelper.java (original)
+++ hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/RestoreSnapshotHelper.java Wed Feb 13 18:55:11 2013
@@ -21,6 +21,7 @@ package org.apache.hadoop.hbase.snapshot
import java.io.InputStream;
import java.io.IOException;
import java.io.OutputStream;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
@@ -40,7 +41,6 @@ import org.apache.hadoop.hbase.HColumnDe
import org.apache.hadoop.hbase.HRegionInfo;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.backup.HFileArchiver;
-import org.apache.hadoop.hbase.catalog.CatalogTracker;
import org.apache.hadoop.hbase.catalog.MetaEditor;
import org.apache.hadoop.hbase.errorhandling.ForeignExceptionDispatcher;
import org.apache.hadoop.hbase.io.HFileLink;
@@ -110,19 +110,16 @@ public class RestoreSnapshotHelper {
private final HTableDescriptor tableDesc;
private final Path tableDir;
- private final CatalogTracker catalogTracker;
private final Configuration conf;
private final FileSystem fs;
public RestoreSnapshotHelper(final Configuration conf, final FileSystem fs,
- final CatalogTracker catalogTracker,
final SnapshotDescription snapshotDescription, final Path snapshotDir,
final HTableDescriptor tableDescriptor, final Path tableDir,
final ForeignExceptionDispatcher monitor)
{
this.fs = fs;
this.conf = conf;
- this.catalogTracker = catalogTracker;
this.snapshotDesc = snapshotDescription;
this.snapshotDir = snapshotDir;
this.tableDesc = tableDescriptor;
@@ -131,45 +128,45 @@ public class RestoreSnapshotHelper {
}
/**
- * Restore table to a specified snapshot state.
+ * Restore the on-disk table to a specified snapshot state.
+ * @return the set of regions touched by the restore operation
*/
- public void restore() throws IOException {
+ public RestoreMetaChanges restoreHdfsRegions() throws IOException {
long startTime = EnvironmentEdgeManager.currentTimeMillis();
LOG.debug("starting restore");
Set<String> snapshotRegionNames = SnapshotReferenceUtil.getSnapshotRegionNames(fs, snapshotDir);
if (snapshotRegionNames == null) {
LOG.warn("Nothing to restore. Snapshot " + snapshotDesc + " looks empty");
- return;
+ return null;
}
+ RestoreMetaChanges metaChanges = new RestoreMetaChanges();
+
// Identify which region are still available and which not.
// NOTE: we rely upon the region name as: "table name, start key, end key"
List<HRegionInfo> tableRegions = getTableRegions();
if (tableRegions != null) {
monitor.rethrowException();
- List<HRegionInfo> regionsToRestore = new LinkedList<HRegionInfo>();
- List<HRegionInfo> regionsToRemove = new LinkedList<HRegionInfo>();
-
for (HRegionInfo regionInfo: tableRegions) {
String regionName = regionInfo.getEncodedName();
if (snapshotRegionNames.contains(regionName)) {
LOG.info("region to restore: " + regionName);
snapshotRegionNames.remove(regionInfo);
- regionsToRestore.add(regionInfo);
+ metaChanges.addRegionToRestore(regionInfo);
} else {
LOG.info("region to remove: " + regionName);
- regionsToRemove.add(regionInfo);
+ metaChanges.addRegionToRemove(regionInfo);
}
}
// Restore regions using the snapshot data
monitor.rethrowException();
- restoreRegions(regionsToRestore);
+ restoreHdfsRegions(metaChanges.getRegionsToRestore());
// Remove regions from the current table
monitor.rethrowException();
- ModifyRegionUtils.deleteRegions(conf, fs, catalogTracker, regionsToRemove);
+ removeHdfsRegions(metaChanges.getRegionsToRemove());
}
// Regions to Add: present in the snapshot but not in the current table
@@ -185,18 +182,92 @@ public class RestoreSnapshotHelper {
// Create new regions cloning from the snapshot
monitor.rethrowException();
- cloneRegions(regionsToAdd);
+ HRegionInfo[] clonedRegions = cloneHdfsRegions(regionsToAdd);
+ metaChanges.setNewRegions(clonedRegions);
}
// Restore WALs
monitor.rethrowException();
restoreWALs();
+
+ return metaChanges;
+ }
+
+ /**
+ * Describe the set of operations needed to update META after restore.
+ */
+ public class RestoreMetaChanges {
+ private List<HRegionInfo> regionsToRestore = null;
+ private List<HRegionInfo> regionsToRemove = null;
+ private List<HRegionInfo> regionsToAdd = null;
+
+ /**
+ * Returns the list of new regions added during the on-disk restore.
+ * The caller is responsible to add the regions to META.
+ * e.g MetaEditor.addRegionsToMeta(...)
+ * @return the list of regions to add to META
+ */
+ public List<HRegionInfo> getRegionsToAdd() {
+ return this.regionsToAdd;
+ }
+
+ /**
+ * Returns the list of 'restored regions' during the on-disk restore.
+ * The caller is responsible to add the regions to META if not present.
+ * @return the list of regions restored
+ */
+ public List<HRegionInfo> getRegionsToRestore() {
+ return this.regionsToRestore;
+ }
+
+ /**
+ * Returns the list of regions removed during the on-disk restore.
+ * The caller is responsible to remove the regions from META.
+ * e.g. MetaEditor.deleteRegions(...)
+ * @return the list of regions to remove from META
+ */
+ public List<HRegionInfo> getRegionsToRemove() {
+ return this.regionsToRemove;
+ }
+
+ void setNewRegions(final HRegionInfo[] hris) {
+ if (hris != null) {
+ regionsToAdd = Arrays.asList(hris);
+ } else {
+ regionsToAdd = null;
+ }
+ }
+
+ void addRegionToRemove(final HRegionInfo hri) {
+ if (regionsToRemove == null) {
+ regionsToRemove = new LinkedList<HRegionInfo>();
+ }
+ regionsToRemove.add(hri);
+ }
+
+ void addRegionToRestore(final HRegionInfo hri) {
+ if (regionsToRestore == null) {
+ regionsToRestore = new LinkedList<HRegionInfo>();
+ }
+ regionsToRestore.add(hri);
+ }
+ }
+
+ /**
+ * Remove specified regions from the file-system, using the archiver.
+ */
+ private void removeHdfsRegions(final List<HRegionInfo> regions) throws IOException {
+ if (regions != null && regions.size() > 0) {
+ for (HRegionInfo hri: regions) {
+ HFileArchiver.archiveRegion(conf, fs, hri);
+ }
+ }
}
/**
* Restore specified regions by restoring content to the snapshot state.
*/
- private void restoreRegions(final List<HRegionInfo> regions) throws IOException {
+ private void restoreHdfsRegions(final List<HRegionInfo> regions) throws IOException {
if (regions == null || regions.size() == 0) return;
for (HRegionInfo hri: regions) restoreRegion(hri);
}
@@ -289,8 +360,8 @@ public class RestoreSnapshotHelper {
* Clone specified regions. For each region create a new region
* and create a HFileLink for each hfile.
*/
- private void cloneRegions(final List<HRegionInfo> regions) throws IOException {
- if (regions == null || regions.size() == 0) return;
+ private HRegionInfo[] cloneHdfsRegions(final List<HRegionInfo> regions) throws IOException {
+ if (regions == null || regions.size() == 0) return null;
final Map<String, HRegionInfo> snapshotRegions =
new HashMap<String, HRegionInfo>(regions.size());
@@ -313,16 +384,14 @@ public class RestoreSnapshotHelper {
}
// create the regions on disk
- List<HRegionInfo> clonedRegions = ModifyRegionUtils.createRegions(conf, FSUtils.getRootDir(conf),
- tableDesc, clonedRegionsInfo, catalogTracker, new ModifyRegionUtils.RegionFillTask() {
+ List<HRegionInfo> clonedRegions = ModifyRegionUtils.createRegions(conf, tableDir.getParent(),
+ tableDesc, clonedRegionsInfo, new ModifyRegionUtils.RegionFillTask() {
public void fillRegion(final HRegion region) throws IOException {
cloneRegion(region, snapshotRegions.get(region.getRegionInfo().getEncodedName()));
}
});
- if (regions != null && regions.size() > 0) {
- // add regions to .META.
- MetaEditor.addRegionsToMeta(catalogTracker, clonedRegions);
- }
+
+ return clonedRegionsInfo;
}
/**
@@ -386,7 +455,7 @@ public class RestoreSnapshotHelper {
* wxyz/table=1234-abc
* stuv/table=1234-abc.wxyz
*
- * NOTE that the region name in the clone change (md5 of regioninfo)
+ * NOTE that the region name in the clone changes (md5 of regioninfo)
* and the reference should reflect that change.
* </pre></blockquote>
* @param familyDir destination directory for the store file
Modified: hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ModifyRegionUtils.java
URL: http://svn.apache.org/viewvc/hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ModifyRegionUtils.java?rev=1445846&r1=1445845&r2=1445846&view=diff
==============================================================================
--- hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ModifyRegionUtils.java (original)
+++ hbase/branches/hbase-7290/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ModifyRegionUtils.java Wed Feb 13 18:55:11 2013
@@ -70,13 +70,11 @@ public abstract class ModifyRegionUtils
* @param rootDir Root directory for HBase instance
* @param hTableDescriptor description of the table
* @param newRegions {@link HRegionInfo} that describes the regions to create
- * @param catalogTracker the catalog tracker
* @throws IOException
*/
public static List<HRegionInfo> createRegions(final Configuration conf, final Path rootDir,
- final HTableDescriptor hTableDescriptor, final HRegionInfo[] newRegions,
- final CatalogTracker catalogTracker) throws IOException {
- return createRegions(conf, rootDir, hTableDescriptor, newRegions, catalogTracker, null);
+ final HTableDescriptor hTableDescriptor, final HRegionInfo[] newRegions) throws IOException {
+ return createRegions(conf, rootDir, hTableDescriptor, newRegions, null);
}
/**
@@ -87,13 +85,12 @@ public abstract class ModifyRegionUtils
* @param rootDir Root directory for HBase instance
* @param hTableDescriptor description of the table
* @param newRegions {@link HRegionInfo} that describes the regions to create
- * @param catalogTracker the catalog tracker
* @param task {@link RegionFillTask} custom code to populate region after creation
* @throws IOException
*/
public static List<HRegionInfo> createRegions(final Configuration conf, final Path rootDir,
final HTableDescriptor hTableDescriptor, final HRegionInfo[] newRegions,
- final CatalogTracker catalogTracker, final RegionFillTask task) throws IOException {
+ final RegionFillTask task) throws IOException {
if (newRegions == null) return null;
int regionNumber = newRegions.length;
ThreadPoolExecutor regionOpenAndInitThreadPool = getRegionOpenAndInitThreadPool(conf,
Modified: hbase/branches/hbase-7290/hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/TestRestoreSnapshotHelper.java
URL: http://svn.apache.org/viewvc/hbase/branches/hbase-7290/hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/TestRestoreSnapshotHelper.java?rev=1445846&r1=1445845&r2=1445846&view=diff
==============================================================================
--- hbase/branches/hbase-7290/hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/TestRestoreSnapshotHelper.java (original)
+++ hbase/branches/hbase-7290/hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/TestRestoreSnapshotHelper.java Wed Feb 13 18:55:11 2013
@@ -131,7 +131,7 @@ public class TestRestoreSnapshotHelper {
FSTableDescriptors.createTableDescriptor(htdClone, conf);
RestoreSnapshotHelper helper = getRestoreHelper(rootDir, snapshotDir, sourceTableName, htdClone);
- helper.restore();
+ helper.restoreHdfsRegions();
LOG.debug("post-restore table=" + htdClone.getNameAsString() + " snapshot=" + snapshotDir);
FSUtils.logFileSystemState(fs, rootDir, LOG);
@@ -146,13 +146,10 @@ public class TestRestoreSnapshotHelper {
HTableDescriptor tableDescriptor = Mockito.mock(HTableDescriptor.class);
ForeignExceptionDispatcher monitor = Mockito.mock(ForeignExceptionDispatcher.class);
- HConnection hconnection = HConnectionTestingUtility.getMockedConnection(conf);
- Mockito.when(catalogTracker.getConnection()).thenReturn(hconnection);
-
SnapshotDescription sd = SnapshotDescription.newBuilder()
.setName("snapshot").setTable(sourceTableName).build();
- return new RestoreSnapshotHelper(conf, fs, catalogTracker, sd, snapshotDir,
+ return new RestoreSnapshotHelper(conf, fs, sd, snapshotDir,
htdClone, HTableDescriptor.getTableDir(rootDir, htdClone.getName()), monitor);
}