org.apache.hadoop.hbase.client
Class TableSnapshotScanner

java.lang.Object
  extended by org.apache.hadoop.hbase.client.AbstractClientScanner
      extended by org.apache.hadoop.hbase.client.TableSnapshotScanner
All Implemented Interfaces:
Closeable, Iterable<Result>, ResultScanner

@InterfaceAudience.Public
@InterfaceStability.Evolving
public class TableSnapshotScanner
extends AbstractClientScanner

A Scanner which performs a scan over snapshot files. Using this class requires copying the snapshot to a temporary empty directory, which will copy the snapshot reference files into that directory. Actual data files are not copied.

This also allows one to run the scan from an online or offline hbase cluster. The snapshot files can be exported by using the ExportSnapshot tool, to a pure-hdfs cluster, and this scanner can be used to run the scan directly over the snapshot files. The snapshot should not be deleted while there are open scanners reading from snapshot files.

An internal RegionScanner is used to execute the Scan obtained from the user for each region in the snapshot.

HBase owns all the data and snapshot files on the filesystem. Only the HBase user can read from snapshot files and data files. HBase also enforces security because all the requests are handled by the server layer, and the user cannot read from the data files directly. To read from snapshot files directly from the file system, the user who is running the MR job must have sufficient permissions to access snapshot and reference files. This means that to run mapreduce over snapshot files, the job has to be run as the HBase user or the user must have group or other priviledges in the filesystem (See HBASE-8369). Note that, given other users access to read from snapshot/data files will completely circumvent the access control enforced by HBase.

See Also:
TableSnapshotInputFormat

Field Summary
 
Fields inherited from class org.apache.hadoop.hbase.client.AbstractClientScanner
scanMetrics
 
Constructor Summary
TableSnapshotScanner(org.apache.hadoop.conf.Configuration conf, org.apache.hadoop.fs.Path rootDir, org.apache.hadoop.fs.Path restoreDir, String snapshotName, Scan scan)
          Creates a TableSnapshotScanner.
TableSnapshotScanner(org.apache.hadoop.conf.Configuration conf, org.apache.hadoop.fs.Path restoreDir, String snapshotName, Scan scan)
          Creates a TableSnapshotScanner.
 
Method Summary
 void close()
           
 Result next()
           
 boolean renewLease()
           
 
Methods inherited from class org.apache.hadoop.hbase.client.AbstractClientScanner
getScanMetrics, initScanMetrics, iterator, next
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TableSnapshotScanner

public TableSnapshotScanner(org.apache.hadoop.conf.Configuration conf,
                            org.apache.hadoop.fs.Path restoreDir,
                            String snapshotName,
                            Scan scan)
                     throws IOException
Creates a TableSnapshotScanner.

Parameters:
conf - the configuration
restoreDir - a temporary directory to copy the snapshot files into. Current user should have write permissions to this directory, and this should not be a subdirectory of rootdir. The scanner deletes the contents of the directory once the scanner is closed.
snapshotName - the name of the snapshot to read from
scan - a Scan representing scan parameters
Throws:
IOException - in case of error

TableSnapshotScanner

public TableSnapshotScanner(org.apache.hadoop.conf.Configuration conf,
                            org.apache.hadoop.fs.Path rootDir,
                            org.apache.hadoop.fs.Path restoreDir,
                            String snapshotName,
                            Scan scan)
                     throws IOException
Creates a TableSnapshotScanner.

Parameters:
conf - the configuration
rootDir - root directory for HBase.
restoreDir - a temporary directory to copy the snapshot files into. Current user should have write permissions to this directory, and this should not be a subdirectory of rootdir. The scanner deletes the contents of the directory once the scanner is closed.
snapshotName - the name of the snapshot to read from
scan - a Scan representing scan parameters
Throws:
IOException - in case of error
Method Detail

next

public Result next()
            throws IOException
Throws:
IOException

close

public void close()

renewLease

public boolean renewLease()
Specified by:
renewLease in class AbstractClientScanner


Copyright © 2007-2016 The Apache Software Foundation. All Rights Reserved.