org.apache.hadoop.hbase.master.snapshot
Class CloneSnapshotHandler
java.lang.Object
org.apache.hadoop.hbase.executor.EventHandler
org.apache.hadoop.hbase.master.handler.CreateTableHandler
org.apache.hadoop.hbase.master.snapshot.CloneSnapshotHandler
- All Implemented Interfaces:
- Comparable<Runnable>, Runnable, SnapshotSentinel
@InterfaceAudience.Private
public class CloneSnapshotHandler
- extends CreateTableHandler
- implements SnapshotSentinel
Handler to Clone a snapshot.
Uses RestoreSnapshotHelper
to create a new table with the same
content of the specified snapshot.
CloneSnapshotHandler
public CloneSnapshotHandler(MasterServices masterServices,
HBaseProtos.SnapshotDescription snapshot,
HTableDescriptor hTableDescriptor,
MasterMetrics metricsMaster)
throws NotAllMetaRegionsOnlineException,
TableExistsException,
IOException
- Throws:
NotAllMetaRegionsOnlineException
TableExistsException
IOException
handleCreateHdfsRegions
protected List<HRegionInfo> handleCreateHdfsRegions(org.apache.hadoop.fs.Path tableRootDir,
String tableName)
throws IOException
- 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.
- Overrides:
handleCreateHdfsRegions
in class CreateTableHandler
- Parameters:
tableRootDir
- directory where the table is being createdtableName
- name of the table under construction
- Returns:
- the list of regions created
- Throws:
IOException
completed
protected void completed(Throwable exception)
- Description copied from class:
CreateTableHandler
- Called after that process() is completed.
- Overrides:
completed
in class CreateTableHandler
- Parameters:
exception
- null if process() is successful or not null if something has failed.
isFinished
public boolean isFinished()
- Description copied from interface:
SnapshotSentinel
- Check to see if the snapshot is finished, where finished may be success or failure.
- Specified by:
isFinished
in interface SnapshotSentinel
- Returns:
- false if the snapshot is still in progress, true if the snapshot has
finished
getSnapshot
public HBaseProtos.SnapshotDescription getSnapshot()
- Specified by:
getSnapshot
in interface SnapshotSentinel
- Returns:
- the description of the snapshot being run
cancel
public void cancel(String why)
- Description copied from interface:
SnapshotSentinel
- Actively cancel a running snapshot.
- Specified by:
cancel
in interface SnapshotSentinel
- Parameters:
why
- Reason for cancellation.
getExceptionIfFailed
public ForeignException getExceptionIfFailed()
- Description copied from interface:
SnapshotSentinel
- Get the exception that caused the snapshot to fail, if the snapshot has failed.
- Specified by:
getExceptionIfFailed
in interface SnapshotSentinel
- Returns:
ForeignException
that caused the snapshot to fail, or null if the
snapshot is still in progress or has succeeded
Copyright © 2013 The Apache Software Foundation. All Rights Reserved.