@InterfaceAudience.Public public class HBaseTestingUtility extends HBaseZKTestingUtility
MiniHBaseCluster
, or a deployed cluster of type DistributedHBaseCluster
.
Not all methods work with the real cluster.
Depends on log4j being on classpath and
hbase-site.xml for logging and test-run configuration. It does not set
logging levels.
In the configuration properties, default values for master-info-port and
region-server-port are overridden such that a random port will be assigned (thus
avoiding port contention if another local HBase instance is already running).
To preserve test data directories, pass the system property "hbase.testing.preserve.testdir" setting it to true. For triggering pre commit
Modifier and Type | Field and Description |
---|---|
static Collection<Object[]> |
BLOOM_AND_COMPRESSION_COMBINATIONS |
static byte[][] |
COLUMNS |
static int |
DEFAULT_REGIONS_PER_SERVER
The default number of regions per regionserver when creating a pre-split
table.
|
static byte[] |
fam1 |
static byte[] |
fam2 |
static byte[] |
fam3 |
static char |
FIRST_CHAR |
static byte[][] |
KEYS |
static byte[][] |
KEYS_FOR_HBA_CREATE_TABLE |
static char |
LAST_CHAR |
static List<Object[]> |
MEMSTORETS_TAGS_PARAMETRIZED
This is for unit tests parameterized with a single boolean.
|
static boolean |
PRESPLIT_TEST_TABLE |
static String |
PRESPLIT_TEST_TABLE_KEY |
static String |
REGIONS_PER_SERVER_KEY |
static byte[][] |
ROWS
All the row values for the data loaded by
loadTable(Table, byte[]) |
static String |
START_KEY |
static byte[] |
START_KEY_BYTES |
clusterTestDir, zooKeeperWatcher
BASE_TEST_DIRECTORY_KEY, BOOLEAN_PARAMETERIZED, COMPRESSION_ALGORITHMS, COMPRESSION_ALGORITHMS_PARAMETERIZED, conf, DEFAULT_BASE_TEST_DIRECTORY, LOG
Constructor and Description |
---|
HBaseTestingUtility()
Create an HBaseTestingUtility using a default configuration.
|
HBaseTestingUtility(org.apache.hadoop.conf.Configuration conf)
Create an HBaseTestingUtility using a given configuration.
|
Modifier and Type | Method and Description |
---|---|
static void |
assertKVListsEqual(String additionalMsg,
List<? extends Cell> expected,
List<? extends Cell> actual) |
void |
assertRegionOnlyOnServer(RegionInfo hri,
ServerName server,
long timeout)
Check to make sure the region is open on the specified
region server, but not on any other one.
|
void |
assertRegionOnServer(RegionInfo hri,
ServerName server,
long timeout)
Due to async racing issue, a region may not be in
the online region list of a region server yet, after
the assignment znode is deleted and the new assignment
is recorded in master.
|
boolean |
assignRegion(RegionInfo regionInfo)
Uses directly the assignment manager to assign the region.
|
static boolean |
available(int port)
Checks to see if a specific port is available.
|
String |
checksumRows(Table table)
Return an md5 digest of the entire contents of a table.
|
boolean |
cleanupDataTestDirOnTestFS()
Cleans the test data directory on the test filesystem.
|
boolean |
cleanupDataTestDirOnTestFS(String subdirName)
Cleans a subdirectory under the test data directory on the test filesystem.
|
static void |
closeRegionAndWAL(HRegion r)
Close both the HRegion
r and it's underlying WAL. |
static void |
closeRegionAndWAL(Region r)
Close both the region
r and it's underlying WAL. |
void |
compact(boolean major)
Compact all regions in the mini hbase cluster
|
void |
compact(TableName tableName,
boolean major)
Compact all of a table's reagion in the mini hbase cluster
|
int |
countRows(InternalScanner scanner) |
int |
countRows(Region region) |
int |
countRows(Region region,
Scan scan) |
int |
countRows(Table table)
Return the number of rows in the given table.
|
int |
countRows(Table table,
byte[]... families) |
int |
countRows(TableName tableName)
Return the number of rows in the given table.
|
int |
countRows(Table table,
Scan scan) |
HRegion |
createLocalHRegion(byte[] tableName,
byte[] startKey,
byte[] stopKey,
String callingMethod,
org.apache.hadoop.conf.Configuration conf,
boolean isReadOnly,
Durability durability,
WAL wal,
byte[]... families)
Deprecated.
use
#createLocalHRegion(TableName, byte[], byte[], boolean, Durability, WAL, byte[]...) |
HRegion |
createLocalHRegion(RegionInfo info,
TableDescriptor desc)
Create an HRegion that writes to the local tmp dirs.
|
HRegion |
createLocalHRegion(RegionInfo info,
TableDescriptor desc,
WAL wal)
Create an HRegion that writes to the local tmp dirs with specified wal
|
HRegion |
createLocalHRegion(TableDescriptor desc,
byte[] startKey,
byte[] endKey)
Create an HRegion that writes to the local tmp dirs
|
HRegion |
createLocalHRegion(TableName tableName,
byte[] startKey,
byte[] stopKey,
boolean isReadOnly,
Durability durability,
WAL wal,
byte[]... families) |
HRegion |
createLocalHRegionWithInMemoryFlags(TableName tableName,
byte[] startKey,
byte[] stopKey,
boolean isReadOnly,
Durability durability,
WAL wal,
boolean[] compactedMemStore,
byte[]... families) |
static HBaseTestingUtility |
createLocalHTU()
Deprecated.
use
HBaseTestingUtility() instead |
static HBaseTestingUtility |
createLocalHTU(org.apache.hadoop.conf.Configuration c)
Deprecated.
use
HBaseTestingUtility(Configuration) instead |
RegionServerServices |
createMockRegionServerService()
Create a stubbed out RegionServerService, mainly for getting FS.
|
RegionServerServices |
createMockRegionServerService(RpcServerInterface rpc)
Create a stubbed out RegionServerService, mainly for getting FS.
|
RegionServerServices |
createMockRegionServerService(ServerName name)
Create a stubbed out RegionServerService, mainly for getting FS.
|
List<HRegionInfo> |
createMultiRegionsInMeta(org.apache.hadoop.conf.Configuration conf,
HTableDescriptor htd,
byte[][] startKeys)
Deprecated.
since 2.0 version and will be removed in 3.0 version.
use
createMultiRegionsInMeta(Configuration, TableDescriptor, byte[][]) |
List<RegionInfo> |
createMultiRegionsInMeta(org.apache.hadoop.conf.Configuration conf,
TableDescriptor htd,
byte[][] startKeys)
Create rows in hbase:meta for regions of the specified table with the specified
start keys.
|
Table |
createMultiRegionTable(TableName tableName,
byte[] family)
Create a table with multiple regions.
|
Table |
createMultiRegionTable(TableName tableName,
byte[][] families)
Create a table with multiple regions.
|
Table |
createMultiRegionTable(TableName tableName,
byte[][] families,
int numVersions)
Create a table with multiple regions.
|
Table |
createMultiRegionTable(TableName tableName,
byte[] family,
int numRegions)
Create a table with multiple regions.
|
static int |
createPreSplitLoadTestTable(org.apache.hadoop.conf.Configuration conf,
TableDescriptor desc,
ColumnFamilyDescriptor hcd)
Creates a pre-split table for load testing.
|
static int |
createPreSplitLoadTestTable(org.apache.hadoop.conf.Configuration conf,
TableDescriptor desc,
ColumnFamilyDescriptor[] hcds,
int numRegionsPerServer)
Creates a pre-split table for load testing.
|
static int |
createPreSplitLoadTestTable(org.apache.hadoop.conf.Configuration conf,
TableDescriptor td,
ColumnFamilyDescriptor[] cds,
RegionSplitter.SplitAlgorithm splitter,
int numRegionsPerServer)
Creates a pre-split table for load testing.
|
static int |
createPreSplitLoadTestTable(org.apache.hadoop.conf.Configuration conf,
TableDescriptor desc,
ColumnFamilyDescriptor hcd,
int numRegionsPerServer)
Creates a pre-split table for load testing.
|
static int |
createPreSplitLoadTestTable(org.apache.hadoop.conf.Configuration conf,
TableName tableName,
byte[][] columnFamilies,
org.apache.hadoop.hbase.io.compress.Compression.Algorithm compression,
DataBlockEncoding dataBlockEncoding,
int numRegionsPerServer,
int regionReplication,
Durability durability)
Creates a pre-split table for load testing.
|
static int |
createPreSplitLoadTestTable(org.apache.hadoop.conf.Configuration conf,
TableName tableName,
byte[] columnFamily,
org.apache.hadoop.hbase.io.compress.Compression.Algorithm compression,
DataBlockEncoding dataBlockEncoding)
Creates a pre-split table for load testing.
|
static int |
createPreSplitLoadTestTable(org.apache.hadoop.conf.Configuration conf,
TableName tableName,
byte[] columnFamily,
org.apache.hadoop.hbase.io.compress.Compression.Algorithm compression,
DataBlockEncoding dataBlockEncoding,
int numRegionsPerServer,
int regionReplication,
Durability durability)
Creates a pre-split table for load testing.
|
Table |
createRandomTable(TableName tableName,
Collection<String> families,
int maxVersions,
int numColsPerRow,
int numFlushes,
int numRegions,
int numRowsPerFlush)
Creates a random table with the given parameters
|
static HRegion |
createRegionAndWAL(RegionInfo info,
org.apache.hadoop.fs.Path rootDir,
org.apache.hadoop.conf.Configuration conf,
TableDescriptor htd)
Create a region with it's own WAL.
|
static HRegion |
createRegionAndWAL(RegionInfo info,
org.apache.hadoop.fs.Path rootDir,
org.apache.hadoop.conf.Configuration conf,
TableDescriptor htd,
boolean initialize)
Create a region with it's own WAL.
|
org.apache.hadoop.fs.Path |
createRootDir()
Same as
createRootDir(boolean create)
except that create flag is false. |
org.apache.hadoop.fs.Path |
createRootDir(boolean create)
Creates an hbase rootdir in user home directory.
|
Table |
createTable(TableDescriptor htd,
byte[][] splitRows)
Create a table.
|
Table |
createTable(TableDescriptor htd,
byte[][] families,
byte[][] splitKeys,
BloomType type,
int blockSize,
org.apache.hadoop.conf.Configuration c)
Create a table.
|
Table |
createTable(TableDescriptor htd,
byte[][] families,
byte[][] splitKeys,
org.apache.hadoop.conf.Configuration c)
Create a table.
|
Table |
createTable(TableDescriptor htd,
byte[][] families,
org.apache.hadoop.conf.Configuration c)
Create a table.
|
Table |
createTable(TableName tableName,
byte[] family)
Create a table.
|
Table |
createTable(TableName tableName,
byte[][] families)
Create a table.
|
Table |
createTable(TableName tableName,
byte[][] families,
byte[][] splitKeys)
Create a table.
|
Table |
createTable(TableName tableName,
byte[][] families,
byte[][] splitKeys,
int replicaCount)
Create a table.
|
Table |
createTable(TableName tableName,
byte[][] families,
byte[][] splitKeys,
int replicaCount,
org.apache.hadoop.conf.Configuration c)
Create a table.
|
Table |
createTable(TableName tableName,
byte[][] families,
int numVersions)
Create a table.
|
Table |
createTable(TableName tableName,
byte[][] families,
int[] numVersions)
Create a table.
|
Table |
createTable(TableName tableName,
byte[][] families,
int numVersions,
byte[][] splitKeys)
Create a table.
|
Table |
createTable(TableName tableName,
byte[][] families,
int numVersions,
byte[] startKey,
byte[] endKey,
int numRegions) |
Table |
createTable(TableName tableName,
byte[][] families,
int numVersions,
int blockSize)
Create a table.
|
Table |
createTable(TableName tableName,
byte[][] families,
int numVersions,
int blockSize,
String cpName) |
Table |
createTable(TableName tableName,
byte[] family,
byte[][] splitRows)
Create a table.
|
Table |
createTable(TableName tableName,
byte[] family,
int numVersions)
Create a table.
|
Table |
createTable(TableName tableName,
String family)
Create a table.
|
Table |
createTable(TableName tableName,
String[] families)
Create a table.
|
HTableDescriptor |
createTableDescriptor(String name)
Deprecated.
|
HTableDescriptor |
createTableDescriptor(String name,
int minVersions,
int versions,
int ttl,
KeepDeletedCells keepDeleted)
Deprecated.
|
HTableDescriptor |
createTableDescriptor(TableName name)
Create a table of name
name . |
HTableDescriptor |
createTableDescriptor(TableName tableName,
byte[] family) |
HTableDescriptor |
createTableDescriptor(TableName tableName,
byte[][] families,
int maxVersions) |
HTableDescriptor |
createTableDescriptor(TableName name,
int minVersions,
int versions,
int ttl,
KeepDeletedCells keepDeleted) |
HRegion |
createTestRegion(String tableName,
ColumnFamilyDescriptor cd) |
static WAL |
createWal(org.apache.hadoop.conf.Configuration conf,
org.apache.hadoop.fs.Path rootDir,
RegionInfo hri)
Create an unmanaged WAL.
|
org.apache.hadoop.fs.Path |
createWALRootDir()
Creates a hbase walDir in the user's home directory.
|
void |
deleteNumericRows(Table t,
byte[] f,
int startRow,
int endRow) |
void |
deleteTable(TableName tableName)
Drop an existing table
|
Table |
deleteTableData(TableName tableName)
Provide an existing table name to truncate.
|
void |
deleteTableIfAny(TableName tableName)
Drop an existing table
|
void |
enableDebug(Class<?> clazz)
Switches the logger for the given class to DEBUG level.
|
boolean |
ensureSomeNonStoppedRegionServersAvailable(int num)
Make sure that at least the specified number of region servers
are running.
|
boolean |
ensureSomeRegionServersAvailable(int num)
Make sure that at least the specified number of region servers
are running
|
void |
expireMasterSession()
Expire the Master's session
|
void |
expireRegionServerSession(int index)
Expire a region server's session
|
void |
expireSession(ZKWatcher nodeZK) |
void |
expireSession(ZKWatcher nodeZK,
boolean checkStatus)
Expire a ZooKeeper session as recommended in ZooKeeper documentation
http://hbase.apache.org/book.html#trouble.zookeeper
There are issues when doing this:
[1] http://www.mail-archive.com/[email protected]/msg01942.html
[2] https://issues.apache.org/jira/browse/ZOOKEEPER-1105
|
String |
explainTableAvailability(TableName tableName) |
String |
explainTableState(TableName table,
TableState.State state) |
TableState |
findLastTableState(TableName table) |
void |
flush()
Flushes all caches in the mini hbase cluster
|
void |
flush(TableName tableName)
Flushes all caches in the mini hbase cluster
|
static List<HColumnDescriptor> |
generateColumnDescriptors()
Create a set of column descriptors with the combination of compression,
encoding, bloom codecs available.
|
static List<HColumnDescriptor> |
generateColumnDescriptors(String prefix)
Create a set of column descriptors with the combination of compression,
encoding, bloom codecs available.
|
Admin |
getAdmin()
Returns an Admin instance which is shared between HBaseTestingUtility instance users.
|
static NavigableSet<String> |
getAllOnlineRegions(MiniHBaseCluster cluster) |
Result |
getClosestRowBefore(Region r,
byte[] row,
byte[] family) |
String |
getClusterKey() |
org.apache.hadoop.conf.Configuration |
getConfiguration()
Returns this classes's instance of
Configuration . |
Connection |
getConnection()
Get a Connection to the cluster.
|
org.apache.hadoop.fs.Path |
getDataTestDirOnTestFS()
Returns a Path in the test filesystem, obtained from
getTestFileSystem()
to write temporary test data. |
org.apache.hadoop.fs.Path |
getDataTestDirOnTestFS(String subdirName)
Returns a Path in the test filesystem, obtained from
getTestFileSystem()
to write temporary test data. |
org.apache.hadoop.fs.Path |
getDefaultRootDirPath()
Same as {
getDefaultRootDirPath(boolean create)
except that create flag is false. |
org.apache.hadoop.fs.Path |
getDefaultRootDirPath(boolean create)
Returns the path to the default root dir the minicluster uses.
|
org.apache.hadoop.hdfs.MiniDFSCluster |
getDFSCluster() |
static User |
getDifferentUser(org.apache.hadoop.conf.Configuration c,
String differentiatingSuffix)
This method clones the passed
c configuration setting a new
user into the clone. |
static List<Cell> |
getFromStoreFile(HStore store,
byte[] row,
NavigableSet<byte[]> columns)
Do a small get/scan against one store.
|
static List<Cell> |
getFromStoreFile(HStore store,
Get get)
Do a small get/scan against one store.
|
HBaseAdmin |
getHBaseAdmin()
Deprecated.
Since 2.0. Will be removed in 3.0. Use
getAdmin() instead. |
MiniHBaseCluster |
getHBaseCluster()
Get the Mini HBase cluster.
|
HBaseCluster |
getHBaseClusterInterface()
Returns the HBaseCluster instance.
|
Hbck |
getHbck()
Returns an
Hbck instance. |
static int |
getMetaRSPort(Connection connection) |
HTableDescriptor |
getMetaTableDescriptor()
Deprecated.
since 2.0 version and will be removed in 3.0 version.
use
getMetaTableDescriptorBuilder() |
TableDescriptorBuilder |
getMetaTableDescriptorBuilder() |
List<byte[]> |
getMetaTableRows()
Returns all rows from the hbase:meta table.
|
List<byte[]> |
getMetaTableRows(TableName tableName)
Returns all rows from the hbase:meta table for a given user table
|
MiniHBaseCluster |
getMiniHBaseCluster() |
int |
getNumHFiles(TableName tableName,
byte[] family) |
int |
getNumHFilesForRS(HRegionServer rs,
TableName tableName,
byte[] family) |
HRegionServer |
getOtherRegionServer(HRegionServer rs) |
byte[][] |
getRegionSplitStartKeys(byte[] startKey,
byte[] endKey,
int numRegions)
Create region split keys between startkey and endKey
|
HRegionServer |
getRSForFirstRegionInTable(TableName tableName)
Tool to get the reference to the region server object that holds the
region of the specified user table.
|
HRegion |
getSplittableRegion(TableName tableName,
int maxAttempts) |
static org.apache.hadoop.hbase.io.compress.Compression.Algorithm[] |
getSupportedCompressionAlgorithms()
Get supported compression algorithms.
|
org.apache.hadoop.fs.FileSystem |
getTestFileSystem() |
boolean |
isNewVersionBehaviorEnabled()
Check whether the tests should assume NEW_VERSION_BEHAVIOR when creating
new column families.
|
boolean |
isReadShortCircuitOn()
Get the HBase setting for dfs.client.read.shortcircuit from the conf or a system property.
|
void |
killMiniHBaseCluster()
Abruptly Shutdown HBase mini cluster.
|
void |
loadNumericRows(Table t,
byte[] f,
int startRow,
int endRow) |
void |
loadRandomRows(Table t,
byte[] f,
int rowSize,
int totalRows) |
int |
loadRegion(HRegion r,
byte[] f) |
int |
loadRegion(HRegion r,
byte[] f,
boolean flush)
Load region with rows from 'aaa' to 'zzz'.
|
int |
loadRegion(Region r,
byte[] f) |
int |
loadTable(Table t,
byte[] f)
Load table with rows from 'aaa' to 'zzz'.
|
int |
loadTable(Table t,
byte[][] f)
Load table of multiple column families with rows from 'aaa' to 'zzz'.
|
int |
loadTable(Table t,
byte[][] f,
byte[] value)
Load table of multiple column families with rows from 'aaa' to 'zzz'.
|
int |
loadTable(Table t,
byte[][] f,
byte[] value,
boolean writeToWAL)
Load table of multiple column families with rows from 'aaa' to 'zzz'.
|
int |
loadTable(Table t,
byte[] f,
boolean writeToWAL)
Load table with rows from 'aaa' to 'zzz'.
|
static List<Object[]> |
memStoreTSTagsAndOffheapCombination() |
static void |
modifyTableSync(Admin admin,
TableDescriptor desc)
Modify a table, synchronous.
|
void |
moveRegionAndWait(RegionInfo destRegion,
ServerName destServer)
Move region to destination server and wait till region is completely moved and online
|
Waiter.ExplainingPredicate<IOException> |
predicateNoRegionsInTransition()
Returns a
Waiter.Predicate for checking that there are no regions in transition in master |
Waiter.Predicate<IOException> |
predicateTableAvailable(TableName tableName)
Returns a
Waiter.Predicate for checking that table is enabled |
Waiter.Predicate<IOException> |
predicateTableDisabled(TableName tableName)
Returns a
Waiter.Predicate for checking that table is enabled |
Waiter.Predicate<IOException> |
predicateTableEnabled(TableName tableName)
Returns a
Waiter.Predicate for checking that table is enabled |
static int |
randomFreePort() |
static String |
randomMultiCastAddress() |
void |
restartHBaseCluster(int servers)
Starts the hbase cluster up again after shutting it down previously in a
test.
|
static <T> String |
safeGetAsStr(List<T> lst,
int i) |
void |
setDFSCluster(org.apache.hadoop.hdfs.MiniDFSCluster cluster) |
void |
setDFSCluster(org.apache.hadoop.hdfs.MiniDFSCluster cluster,
boolean requireDown)
Set the MiniDFSCluster
|
void |
setFileSystemURI(String fsURI) |
void |
setHBaseCluster(HBaseCluster hbaseCluster) |
static void |
setMaxRecoveryErrorCount(OutputStream stream,
int max)
Set maxRecoveryErrorCount in DFSClient.
|
static void |
setReplicas(Admin admin,
TableName table,
int replicaCount)
Set the number of Region replicas.
|
protected org.apache.hadoop.fs.Path |
setupDataTestDir()
Home our data in a dir under
HBaseCommonTestingUtility.DEFAULT_BASE_TEST_DIRECTORY . |
org.apache.hadoop.minikdc.MiniKdc |
setupMiniKdc(File keytabFile)
Sets up
MiniKdc for testing security. |
void |
shutdownMiniCluster()
Stops mini hbase, zk, and hdfs clusters.
|
void |
shutdownMiniDFSCluster()
Shuts down instance created by call to
startMiniDFSCluster(int)
or does nothing. |
void |
shutdownMiniHBaseCluster()
Shutdown HBase mini cluster.Does not shutdown zk or dfs if running.
|
void |
shutdownMiniMapReduceCluster()
Stops the previously started
MiniMRCluster . |
MiniHBaseCluster |
startMiniCluster()
Start up a minicluster of hbase, dfs, and zookeeper.
|
MiniHBaseCluster |
startMiniCluster(boolean withWALDir)
Start up a minicluster of hbase, dfs, and zookeeper where WAL's walDir is created separately.
|
MiniHBaseCluster |
startMiniCluster(int numSlaves)
Start up a minicluster of hbase, optionally dfs, and zookeeper.
|
MiniHBaseCluster |
startMiniCluster(int numSlaves,
boolean create)
Start up a minicluster of hbase, dfs, and zookeeper.
|
MiniHBaseCluster |
startMiniCluster(int numSlaves,
boolean create,
boolean withWALDir) |
MiniHBaseCluster |
startMiniCluster(int numMasters,
int numSlaves)
start minicluster
|
MiniHBaseCluster |
startMiniCluster(int numMasters,
int numSlaves,
boolean create)
Start minicluster.
|
MiniHBaseCluster |
startMiniCluster(int numMasters,
int numSlaves,
int numDataNodes)
Same as
startMiniCluster(int, int) , but with custom number of datanodes. |
MiniHBaseCluster |
startMiniCluster(int numMasters,
int numSlaves,
int numDataNodes,
String[] dataNodeHosts,
Class<? extends HMaster> masterClass,
Class<? extends MiniHBaseCluster.MiniHBaseClusterRegionServer> regionserverClass) |
MiniHBaseCluster |
startMiniCluster(int numMasters,
int numSlaves,
int numDataNodes,
String[] dataNodeHosts,
Class<? extends HMaster> masterClass,
Class<? extends MiniHBaseCluster.MiniHBaseClusterRegionServer> regionserverClass,
boolean create,
boolean withWALDir)
Same as
startMiniCluster(int, int, String[], Class, Class) , but with custom
number of datanodes. |
MiniHBaseCluster |
startMiniCluster(int numMasters,
int numSlaves,
String[] dataNodeHosts)
Start up a minicluster of hbase, optionally dfs, and zookeeper.
|
MiniHBaseCluster |
startMiniCluster(int numMasters,
int numSlaves,
String[] dataNodeHosts,
boolean create) |
MiniHBaseCluster |
startMiniCluster(int numMasters,
int numSlaves,
String[] dataNodeHosts,
Class<? extends HMaster> masterClass,
Class<? extends MiniHBaseCluster.MiniHBaseClusterRegionServer> regionserverClass)
Start up a minicluster of hbase, optionally dfs, and zookeeper.
|
org.apache.hadoop.hdfs.MiniDFSCluster |
startMiniDFSCluster(int servers)
Start a minidfscluster.
|
org.apache.hadoop.hdfs.MiniDFSCluster |
startMiniDFSCluster(int servers,
String[] hosts)
Start a minidfscluster.
|
org.apache.hadoop.hdfs.MiniDFSCluster |
startMiniDFSCluster(int servers,
String[] racks,
String[] hosts) |
org.apache.hadoop.hdfs.MiniDFSCluster |
startMiniDFSCluster(String[] hosts)
Start a minidfscluster.
|
org.apache.hadoop.hdfs.MiniDFSCluster |
startMiniDFSClusterForTestWAL(int namenodePort) |
MiniHBaseCluster |
startMiniHBaseCluster(int numMasters,
int numSlaves) |
MiniHBaseCluster |
startMiniHBaseCluster(int numMasters,
int numSlaves,
List<Integer> rsPorts) |
MiniHBaseCluster |
startMiniHBaseCluster(int numMasters,
int numSlaves,
List<Integer> rsPorts,
Class<? extends HMaster> masterClass,
Class<? extends MiniHBaseCluster.MiniHBaseClusterRegionServer> regionserverClass,
boolean create,
boolean withWALDir)
Starts up mini hbase cluster.
|
org.apache.hadoop.mapred.MiniMRCluster |
startMiniMapReduceCluster()
Starts a
MiniMRCluster with a default number of
TaskTracker 's. |
Table |
truncateTable(TableName tableName)
Truncate a table using the admin command.
|
Table |
truncateTable(TableName tableName,
boolean preserveRegions)
Truncate a table using the admin command.
|
void |
unassignRegion(byte[] regionName)
Unassign the named region.
|
void |
unassignRegion(String regionName)
Unassign the named region.
|
void |
unassignRegionByRow(byte[] row,
RegionLocator table)
Closes the region containing the given row.
|
void |
unassignRegionByRow(String row,
RegionLocator table)
Closes the region containing the given row.
|
void |
verifyNumericRows(HRegion region,
byte[] f,
int startRow,
int endRow) |
void |
verifyNumericRows(HRegion region,
byte[] f,
int startRow,
int endRow,
boolean present) |
void |
verifyNumericRows(Region region,
byte[] f,
int startRow,
int endRow) |
void |
verifyNumericRows(Region region,
byte[] f,
int startRow,
int endRow,
boolean present) |
void |
verifyNumericRows(Table table,
byte[] f,
int startRow,
int endRow,
int replicaId) |
void |
verifyTableDescriptorIgnoreTableName(TableDescriptor ltd,
TableDescriptor rtd) |
static void |
waitForHostPort(String host,
int port) |
void |
waitLabelAvailable(long timeoutMillis,
String... labels)
Wait until labels is ready in VisibilityLabelsCache.
|
void |
waitTableAvailable(byte[] table,
long timeoutMillis)
Wait until all regions in a table have been assigned
|
void |
waitTableAvailable(TableName table)
Wait until all regions in a table have been assigned.
|
void |
waitTableAvailable(TableName table,
long timeoutMillis) |
void |
waitTableDisabled(byte[] table)
Waits for a table to be 'disabled'.
|
void |
waitTableDisabled(byte[] table,
long timeoutMillis)
Waits for a table to be 'disabled'.
|
void |
waitTableDisabled(TableName table,
long millisTimeout) |
void |
waitTableEnabled(byte[] table,
long timeoutMillis)
Waits for a table to be 'enabled'.
|
void |
waitTableEnabled(TableName table)
Waits for a table to be 'enabled'.
|
void |
waitTableEnabled(TableName table,
long timeoutMillis) |
void |
waitUntilAllRegionsAssigned(TableName tableName)
Wait until all regions for a table in hbase:meta have a non-empty
info:server, up to a configuable timeout value (default is 60 seconds)
This means all regions have been deployed,
master has been informed and updated hbase:meta with the regions deployed
server.
|
void |
waitUntilAllRegionsAssigned(TableName tableName,
long timeout)
Wait until all regions for a table in hbase:meta have a non-empty
info:server, or until timeout.
|
void |
waitUntilAllSystemRegionsAssigned()
Waith until all system table's regions get assigned
|
void |
waitUntilNoRegionsInTransition()
Wait until no regions in transition.
|
void |
waitUntilNoRegionsInTransition(long timeout)
Wait until no regions in transition.
|
cleanupTestDir, getZkCluster, getZooKeeperWatcher, getZooKeeperWatcher, setupClusterTestDir, setZkCluster, shutdownMiniZKCluster, startMiniZKCluster, startMiniZKCluster
createSubDir, getDataTestDir, getDataTestDir, getRandomDir, getRandomUUID, waitFor, waitFor, waitFor
public static final String REGIONS_PER_SERVER_KEY
public static final int DEFAULT_REGIONS_PER_SERVER
public static final String PRESPLIT_TEST_TABLE_KEY
public static final boolean PRESPLIT_TEST_TABLE
public static final List<Object[]> MEMSTORETS_TAGS_PARAMETRIZED
public static final Collection<Object[]> BLOOM_AND_COMPRESSION_COMBINATIONS
public static final byte[] fam1
public static final byte[] fam2
public static final byte[] fam3
public static final byte[][] COLUMNS
public static final char FIRST_CHAR
public static final char LAST_CHAR
public static final byte[] START_KEY_BYTES
public static final byte[][] ROWS
loadTable(Table, byte[])
public static final byte[][] KEYS
public static final byte[][] KEYS_FOR_HBA_CREATE_TABLE
public HBaseTestingUtility()
Create an HBaseTestingUtility using a default configuration.
Initially, all tmp files are written to a local test data directory.
Once startMiniDFSCluster(int)
is called, either directly or via
startMiniCluster()
, tmp data will be written to the DFS directory instead.
Previously, there was a distinction between the type of utility returned by
createLocalHTU()
and this constructor; this is no longer the case. All
HBaseTestingUtility objects will behave as local until a DFS cluster is started,
at which point they will switch to using mini DFS for storage.
public HBaseTestingUtility(@Nullable org.apache.hadoop.conf.Configuration conf)
Create an HBaseTestingUtility using a given configuration.
Initially, all tmp files are written to a local test data directory.
Once startMiniDFSCluster(int)
is called, either directly or via
startMiniCluster()
, tmp data will be written to the DFS directory instead.
Previously, there was a distinction between the type of utility returned by
createLocalHTU()
and this constructor; this is no longer the case. All
HBaseTestingUtility objects will behave as local until a DFS cluster is started,
at which point they will switch to using mini DFS for storage.
conf
- The configuration to use for further operationspublic static boolean available(int port)
port
- the port number to check for availabilitypublic static List<Object[]> memStoreTSTagsAndOffheapCombination()
@Deprecated public static HBaseTestingUtility createLocalHTU()
HBaseTestingUtility()
instead@Deprecated public static HBaseTestingUtility createLocalHTU(org.apache.hadoop.conf.Configuration c)
HBaseTestingUtility(Configuration)
insteadpublic static void closeRegionAndWAL(Region r) throws IOException
r
and it's underlying WAL. For use in tests.IOException
public static void closeRegionAndWAL(HRegion r) throws IOException
r
and it's underlying WAL. For use in tests.IOException
public org.apache.hadoop.conf.Configuration getConfiguration()
Configuration
. Be careful how
you use the returned Configuration since Connection
instances
can be shared. The Map of Connections is keyed by the Configuration. If
say, a Connection was being used against a cluster that had been shutdown,
see shutdownMiniCluster()
, then the Connection will no longer
be wholesome. Rather than use the return direct, its usually best to
make a copy and use that. Do
Configuration c = new Configuration(INSTANCE.getConfiguration());
getConfiguration
in class HBaseCommonTestingUtility
public void setHBaseCluster(HBaseCluster hbaseCluster)
protected org.apache.hadoop.fs.Path setupDataTestDir()
HBaseCommonTestingUtility.DEFAULT_BASE_TEST_DIRECTORY
.
Give it a random name so can have many concurrent tests running if
we need to. It needs to amend the TEST_DIRECTORY_KEY
System property, as it's what minidfscluster bases
it data dir on. Moding a System property is not the way to do concurrent
instances -- another instance could grab the temporary
value unintentionally -- but not anything can do about it at moment;
single instance only is how the minidfscluster works.
We also create the underlying directory for
hadoop.log.dir, mapreduce.cluster.local.dir and hadoop.tmp.dir, and set the values
in the conf, and as a system property for hadoop.tmp.dirsetupDataTestDir
in class HBaseCommonTestingUtility
@Deprecated public HTableDescriptor getMetaTableDescriptor()
getMetaTableDescriptorBuilder()
public TableDescriptorBuilder getMetaTableDescriptorBuilder()
public org.apache.hadoop.fs.Path getDataTestDirOnTestFS() throws IOException
getTestFileSystem()
to write temporary test data. Call this method after setting up the mini dfs cluster
if the test relies on it.IOException
public org.apache.hadoop.fs.Path getDataTestDirOnTestFS(String subdirName) throws IOException
getTestFileSystem()
to write temporary test data. Call this method after setting up the mini dfs cluster
if the test relies on it.subdirName
- name of the subdir to create under the base test dirIOException
public boolean cleanupDataTestDirOnTestFS() throws IOException
IOException
public boolean cleanupDataTestDirOnTestFS(String subdirName) throws IOException
IOException
public org.apache.hadoop.hdfs.MiniDFSCluster startMiniDFSCluster(int servers) throws Exception
servers
- How many DNs to start.Exception
shutdownMiniDFSCluster()
public org.apache.hadoop.hdfs.MiniDFSCluster startMiniDFSCluster(String[] hosts) throws Exception
hosts
- hostnames DNs to run on.Exception
shutdownMiniDFSCluster()
public org.apache.hadoop.hdfs.MiniDFSCluster startMiniDFSCluster(int servers, String[] hosts) throws Exception
servers
- How many DNs to start.hosts
- hostnames DNs to run on.Exception
shutdownMiniDFSCluster()
public org.apache.hadoop.hdfs.MiniDFSCluster startMiniDFSCluster(int servers, String[] racks, String[] hosts) throws Exception
Exception
public org.apache.hadoop.hdfs.MiniDFSCluster startMiniDFSClusterForTestWAL(int namenodePort) throws IOException
IOException
public boolean isNewVersionBehaviorEnabled()
public boolean isReadShortCircuitOn()
public void shutdownMiniDFSCluster() throws IOException
startMiniDFSCluster(int)
or does nothing.IOException
public MiniHBaseCluster startMiniCluster() throws Exception
Exception
shutdownMiniDFSCluster()
public MiniHBaseCluster startMiniCluster(boolean withWALDir) throws Exception
Exception
shutdownMiniDFSCluster()
public MiniHBaseCluster startMiniCluster(int numSlaves, boolean create) throws Exception
create
flag to create root or data directory path or not
(will overwrite if dir already exists)Exception
shutdownMiniDFSCluster()
public MiniHBaseCluster startMiniCluster(int numSlaves) throws Exception
numSlaves
- Number of slaves to start up. We'll start this many
datanodes and regionservers. If numSlaves is > 1, then make sure
hbase.regionserver.info.port is -1 (i.e. no ui per regionserver) otherwise
bind errors.Exception
shutdownMiniCluster()
public MiniHBaseCluster startMiniCluster(int numSlaves, boolean create, boolean withWALDir) throws Exception
Exception
public MiniHBaseCluster startMiniCluster(int numMasters, int numSlaves, boolean create) throws Exception
create
Exception
shutdownMiniCluster()
public MiniHBaseCluster startMiniCluster(int numMasters, int numSlaves) throws Exception
Exception
shutdownMiniCluster()
public MiniHBaseCluster startMiniCluster(int numMasters, int numSlaves, String[] dataNodeHosts, boolean create) throws Exception
Exception
public MiniHBaseCluster startMiniCluster(int numMasters, int numSlaves, String[] dataNodeHosts) throws Exception
numMasters
- Number of masters to start up. We'll start this many
hbase masters. If numMasters > 1, you can find the active/primary master
with MiniHBaseCluster.getMaster()
.numSlaves
- Number of slaves to start up. We'll start this many
regionservers. If dataNodeHosts == null, this also indicates the number of
datanodes to start. If dataNodeHosts != null, the number of datanodes is
based on dataNodeHosts.length.
If numSlaves is > 1, then make sure
hbase.regionserver.info.port is -1 (i.e. no ui per regionserver) otherwise
bind errors.dataNodeHosts
- hostnames DNs to run on.
This is useful if you want to run datanode on distinct hosts for things
like HDFS block location verification.
If you start MiniDFSCluster without host names,
all instances of the datanodes will have the same host name.Exception
shutdownMiniCluster()
public MiniHBaseCluster startMiniCluster(int numMasters, int numSlaves, int numDataNodes) throws Exception
startMiniCluster(int, int)
, but with custom number of datanodes.numDataNodes
- Number of data nodes.Exception
public MiniHBaseCluster startMiniCluster(int numMasters, int numSlaves, String[] dataNodeHosts, Class<? extends HMaster> masterClass, Class<? extends MiniHBaseCluster.MiniHBaseClusterRegionServer> regionserverClass) throws Exception
numMasters
- Number of masters to start up. We'll start this many
hbase masters. If numMasters > 1, you can find the active/primary master
with MiniHBaseCluster.getMaster()
.numSlaves
- Number of slaves to start up. We'll start this many
regionservers. If dataNodeHosts == null, this also indicates the number of
datanodes to start. If dataNodeHosts != null, the number of datanodes is
based on dataNodeHosts.length.
If numSlaves is > 1, then make sure
hbase.regionserver.info.port is -1 (i.e. no ui per regionserver) otherwise
bind errors.dataNodeHosts
- hostnames DNs to run on.
This is useful if you want to run datanode on distinct hosts for things
like HDFS block location verification.
If you start MiniDFSCluster without host names,
all instances of the datanodes will have the same host name.masterClass
- The class to use as HMaster, or null for defaultregionserverClass
- The class to use as HRegionServer, or null for
defaultException
shutdownMiniCluster()
public MiniHBaseCluster startMiniCluster(int numMasters, int numSlaves, int numDataNodes, String[] dataNodeHosts, Class<? extends HMaster> masterClass, Class<? extends MiniHBaseCluster.MiniHBaseClusterRegionServer> regionserverClass) throws Exception
Exception
public MiniHBaseCluster startMiniCluster(int numMasters, int numSlaves, int numDataNodes, String[] dataNodeHosts, Class<? extends HMaster> masterClass, Class<? extends MiniHBaseCluster.MiniHBaseClusterRegionServer> regionserverClass, boolean create, boolean withWALDir) throws Exception
startMiniCluster(int, int, String[], Class, Class)
, but with custom
number of datanodes.numDataNodes
- Number of data nodes.create
- Set this flag to create a new
root or data directory path or not (will overwrite if exists already).Exception
public MiniHBaseCluster startMiniHBaseCluster(int numMasters, int numSlaves) throws IOException, InterruptedException
IOException
InterruptedException
public MiniHBaseCluster startMiniHBaseCluster(int numMasters, int numSlaves, List<Integer> rsPorts) throws IOException, InterruptedException
IOException
InterruptedException
public MiniHBaseCluster startMiniHBaseCluster(int numMasters, int numSlaves, List<Integer> rsPorts, Class<? extends HMaster> masterClass, Class<? extends MiniHBaseCluster.MiniHBaseClusterRegionServer> regionserverClass, boolean create, boolean withWALDir) throws IOException, InterruptedException
startMiniCluster(int, int)
when doing stepped startup of clusters.
Usually you won't want this. You'll usually want startMiniCluster()
.rsPorts
- Ports that RegionServer should use; pass ports if you want to test cluster
restart where for sure the regionservers come up on same address+port (but
just with different startcode); by default mini hbase clusters choose new
arbitrary ports on each cluster start.create
- Whether to create a
root or data directory path or not; will overwrite if exists already.IOException
InterruptedException
startMiniCluster()
public void restartHBaseCluster(int servers) throws IOException, InterruptedException
servers
- number of region serversIOException
InterruptedException
public MiniHBaseCluster getMiniHBaseCluster()
startMiniCluster()
.startMiniCluster()
public void shutdownMiniCluster() throws Exception
IOException
Exception
startMiniCluster(int)
public void shutdownMiniHBaseCluster() throws IOException
IOException
- in case command is unsuccessfulpublic void killMiniHBaseCluster() throws IOException
IOException
- throws in case command is unsuccessfulpublic org.apache.hadoop.fs.Path getDefaultRootDirPath(boolean create) throws IOException
create
is true, a new root directory path is fetched irrespective of whether it has been fetched
before or not. If false, previous path is used.
Note: this does not cause the root dir to be created.IOException
public org.apache.hadoop.fs.Path getDefaultRootDirPath() throws IOException
getDefaultRootDirPath(boolean create)
except that create
flag is false.
Note: this does not cause the root dir to be created.IOException
public org.apache.hadoop.fs.Path createRootDir(boolean create) throws IOException
create
- This flag decides whether to get a new
root or data directory path or not, if it has been fetched already.
Note : Directory will be made irrespective of whether path has been fetched or not.
If directory already exists, it will be overwrittenIOException
public org.apache.hadoop.fs.Path createRootDir() throws IOException
createRootDir(boolean create)
except that create
flag is false.IOException
public org.apache.hadoop.fs.Path createWALRootDir() throws IOException
IOException
public void flush() throws IOException
IOException
public void flush(TableName tableName) throws IOException
IOException
public void compact(boolean major) throws IOException
IOException
public void compact(TableName tableName, boolean major) throws IOException
IOException
public Table createTable(TableName tableName, String family) throws IOException
tableName
- family
- IOException
public Table createTable(TableName tableName, String[] families) throws IOException
tableName
- families
- IOException
public Table createTable(TableName tableName, byte[] family) throws IOException
tableName
- family
- IOException
public Table createMultiRegionTable(TableName tableName, byte[] family, int numRegions) throws IOException
tableName
- family
- numRegions
- IOException
public Table createTable(TableName tableName, byte[][] families) throws IOException
tableName
- families
- IOException
public Table createMultiRegionTable(TableName tableName, byte[][] families) throws IOException
tableName
- families
- IOException
public Table createTable(TableName tableName, byte[][] families, byte[][] splitKeys) throws IOException
tableName
- families
- splitKeys
- IOException
public Table createTable(TableName tableName, byte[][] families, byte[][] splitKeys, int replicaCount) throws IOException
tableName
- the table namefamilies
- the familiessplitKeys
- the splitkeysreplicaCount
- the region replica countIOException
- throws IOExceptionpublic Table createTable(TableName tableName, byte[][] families, int numVersions, byte[] startKey, byte[] endKey, int numRegions) throws IOException
IOException
public Table createTable(TableDescriptor htd, byte[][] families, org.apache.hadoop.conf.Configuration c) throws IOException
htd
- families
- c
- Configuration to useIOException
public Table createTable(TableDescriptor htd, byte[][] families, byte[][] splitKeys, org.apache.hadoop.conf.Configuration c) throws IOException
htd
- table descriptorfamilies
- array of column familiessplitKeys
- array of split keysc
- Configuration to useIOException
- if getAdmin or createTable failspublic Table createTable(TableDescriptor htd, byte[][] families, byte[][] splitKeys, BloomType type, int blockSize, org.apache.hadoop.conf.Configuration c) throws IOException
htd
- table descriptorfamilies
- array of column familiessplitKeys
- array of split keystype
- Bloom typeblockSize
- block sizec
- Configuration to useIOException
- if getAdmin or createTable failspublic Table createTable(TableDescriptor htd, byte[][] splitRows) throws IOException
htd
- table descriptorsplitRows
- array of split keysIOException
public Table createTable(TableName tableName, byte[][] families, byte[][] splitKeys, int replicaCount, org.apache.hadoop.conf.Configuration c) throws IOException
tableName
- the table namefamilies
- the familiessplitKeys
- the split keysreplicaCount
- the replica countc
- Configuration to useIOException
public Table createTable(TableName tableName, byte[] family, int numVersions) throws IOException
tableName
- family
- numVersions
- IOException
public Table createTable(TableName tableName, byte[][] families, int numVersions) throws IOException
tableName
- families
- numVersions
- IOException
public Table createTable(TableName tableName, byte[][] families, int numVersions, byte[][] splitKeys) throws IOException
tableName
- families
- numVersions
- splitKeys
- IOException
public Table createMultiRegionTable(TableName tableName, byte[][] families, int numVersions) throws IOException
tableName
- families
- numVersions
- IOException
public Table createTable(TableName tableName, byte[][] families, int numVersions, int blockSize) throws IOException
tableName
- families
- numVersions
- blockSize
- IOException
public Table createTable(TableName tableName, byte[][] families, int numVersions, int blockSize, String cpName) throws IOException
IOException
public Table createTable(TableName tableName, byte[][] families, int[] numVersions) throws IOException
tableName
- families
- numVersions
- IOException
public Table createTable(TableName tableName, byte[] family, byte[][] splitRows) throws IOException
tableName
- family
- splitRows
- IOException
public Table createMultiRegionTable(TableName tableName, byte[] family) throws IOException
tableName
- family
- IOException
public static void modifyTableSync(Admin admin, TableDescriptor desc) throws IOException, InterruptedException
admin.rb#alter_status
.IOException
InterruptedException
public static void setReplicas(Admin admin, TableName table, int replicaCount) throws IOException, InterruptedException
IOException
InterruptedException
public void deleteTable(TableName tableName) throws IOException
tableName
- existing tableIOException
public void deleteTableIfAny(TableName tableName) throws IOException
tableName
- existing tableIOException
@Deprecated public HTableDescriptor createTableDescriptor(String name, int minVersions, int versions, int ttl, KeepDeletedCells keepDeleted)
@Deprecated public HTableDescriptor createTableDescriptor(String name)
name
.name
- Name to give table.public HTableDescriptor createTableDescriptor(TableName name, int minVersions, int versions, int ttl, KeepDeletedCells keepDeleted)
public HTableDescriptor createTableDescriptor(TableName name)
name
.name
- Name to give table.public HTableDescriptor createTableDescriptor(TableName tableName, byte[] family)
public HTableDescriptor createTableDescriptor(TableName tableName, byte[][] families, int maxVersions)
public HRegion createLocalHRegion(TableDescriptor desc, byte[] startKey, byte[] endKey) throws IOException
desc
- a table descriptor indicating which table the region belongs tostartKey
- the start boundary of the regionendKey
- the end boundary of the regionIOException
public HRegion createLocalHRegion(RegionInfo info, TableDescriptor desc) throws IOException
closeRegionAndWAL(HRegion)
when you're finished with it.IOException
public HRegion createLocalHRegion(RegionInfo info, TableDescriptor desc, WAL wal) throws IOException
info
- regioninfodesc
- table descriptorwal
- wal for this region.IOException
@Deprecated public HRegion createLocalHRegion(byte[] tableName, byte[] startKey, byte[] stopKey, String callingMethod, org.apache.hadoop.conf.Configuration conf, boolean isReadOnly, Durability durability, WAL wal, byte[]... families) throws IOException
#createLocalHRegion(TableName, byte[], byte[], boolean, Durability, WAL, byte[]...)
tableName
- startKey
- stopKey
- callingMethod
- conf
- isReadOnly
- families
- closeRegionAndWAL(HRegion)
when done.IOException
public HRegion createLocalHRegion(TableName tableName, byte[] startKey, byte[] stopKey, boolean isReadOnly, Durability durability, WAL wal, byte[]... families) throws IOException
tableName
- startKey
- stopKey
- isReadOnly
- families
- closeRegionAndWAL(HRegion)
when done.IOException
public HRegion createLocalHRegionWithInMemoryFlags(TableName tableName, byte[] startKey, byte[] stopKey, boolean isReadOnly, Durability durability, WAL wal, boolean[] compactedMemStore, byte[]... families) throws IOException
IOException
public Table deleteTableData(TableName tableName) throws IOException
tableName
- existing tableIOException
public Table truncateTable(TableName tableName, boolean preserveRegions) throws IOException
tableName
- table which must exist.preserveRegions
- keep the existing split pointsIOException
public Table truncateTable(TableName tableName) throws IOException
tableName
- table which must exist.IOException
public int loadTable(Table t, byte[] f) throws IOException
t
- Tablef
- FamilyIOException
public int loadTable(Table t, byte[] f, boolean writeToWAL) throws IOException
t
- Tablef
- FamilyIOException
public int loadTable(Table t, byte[][] f) throws IOException
t
- Tablef
- Array of Families to loadIOException
public int loadTable(Table t, byte[][] f, byte[] value) throws IOException
t
- Tablef
- Array of Families to loadvalue
- the values of the cells. If null is passed, the row key is used as valueIOException
public int loadTable(Table t, byte[][] f, byte[] value, boolean writeToWAL) throws IOException
t
- Tablef
- Array of Families to loadvalue
- the values of the cells. If null is passed, the row key is used as valueIOException
public int loadRegion(HRegion r, byte[] f) throws IOException
IOException
public int loadRegion(Region r, byte[] f) throws IOException
IOException
public int loadRegion(HRegion r, byte[] f, boolean flush) throws IOException
r
- Regionf
- Familyflush
- flush the cache if trueIOException
public void loadNumericRows(Table t, byte[] f, int startRow, int endRow) throws IOException
IOException
public void loadRandomRows(Table t, byte[] f, int rowSize, int totalRows) throws IOException
IOException
public void verifyNumericRows(Table table, byte[] f, int startRow, int endRow, int replicaId) throws IOException
IOException
public void verifyNumericRows(Region region, byte[] f, int startRow, int endRow) throws IOException
IOException
public void verifyNumericRows(HRegion region, byte[] f, int startRow, int endRow) throws IOException
IOException
public void verifyNumericRows(Region region, byte[] f, int startRow, int endRow, boolean present) throws IOException
IOException
public void verifyNumericRows(HRegion region, byte[] f, int startRow, int endRow, boolean present) throws IOException
IOException
public void deleteNumericRows(Table t, byte[] f, int startRow, int endRow) throws IOException
IOException
public int countRows(Table table) throws IOException
IOException
public int countRows(Table table, Scan scan) throws IOException
IOException
public int countRows(Table table, byte[]... families) throws IOException
IOException
public int countRows(TableName tableName) throws IOException
IOException
public int countRows(Region region) throws IOException
IOException
public int countRows(Region region, Scan scan) throws IOException
IOException
public int countRows(InternalScanner scanner) throws IOException
IOException
public String checksumRows(Table table) throws Exception
Exception
@Deprecated public List<HRegionInfo> createMultiRegionsInMeta(org.apache.hadoop.conf.Configuration conf, HTableDescriptor htd, byte[][] startKeys) throws IOException
createMultiRegionsInMeta(Configuration, TableDescriptor, byte[][])
conf
- htd
- startKeys
- IOException
public List<RegionInfo> createMultiRegionsInMeta(org.apache.hadoop.conf.Configuration conf, TableDescriptor htd, byte[][] startKeys) throws IOException
conf
- htd
- startKeys
- IOException
public static WAL createWal(org.apache.hadoop.conf.Configuration conf, org.apache.hadoop.fs.Path rootDir, RegionInfo hri) throws IOException
IOException
public static HRegion createRegionAndWAL(RegionInfo info, org.apache.hadoop.fs.Path rootDir, org.apache.hadoop.conf.Configuration conf, TableDescriptor htd) throws IOException
closeRegionAndWAL(HRegion)
to clean up all resources.IOException
public static HRegion createRegionAndWAL(RegionInfo info, org.apache.hadoop.fs.Path rootDir, org.apache.hadoop.conf.Configuration conf, TableDescriptor htd, boolean initialize) throws IOException
closeRegionAndWAL(HRegion)
to clean up all resources.IOException
public List<byte[]> getMetaTableRows() throws IOException
IOException
- When reading the rows fails.public List<byte[]> getMetaTableRows(TableName tableName) throws IOException
IOException
- When reading the rows fails.public HRegionServer getOtherRegionServer(HRegionServer rs)
public HRegionServer getRSForFirstRegionInTable(TableName tableName) throws IOException, InterruptedException
tableName
- user table to lookup in hbase:metaIOException
InterruptedException
public org.apache.hadoop.mapred.MiniMRCluster startMiniMapReduceCluster() throws IOException
MiniMRCluster
with a default number of
TaskTracker
's.IOException
- When starting the cluster fails.public void shutdownMiniMapReduceCluster()
MiniMRCluster
.public RegionServerServices createMockRegionServerService() throws IOException
IOException
public RegionServerServices createMockRegionServerService(RpcServerInterface rpc) throws IOException
IOException
public RegionServerServices createMockRegionServerService(ServerName name) throws IOException
IOException
public void enableDebug(Class<?> clazz)
clazz
- The class for which to switch to debug logging.public void expireMasterSession() throws Exception
Exception
public void expireRegionServerSession(int index) throws Exception
index
- which RSException
public void expireSession(ZKWatcher nodeZK) throws Exception
Exception
public void expireSession(ZKWatcher nodeZK, boolean checkStatus) throws Exception
nodeZK
- - the ZK watcher to expirecheckStatus
- - true to check if we can create a Table with the
current configuration.Exception
public MiniHBaseCluster getHBaseCluster()
getHBaseClusterInterface()
public HBaseCluster getHBaseClusterInterface()
Returned object can be any of the subclasses of HBaseCluster, and the
tests referring this should not assume that the cluster is a mini cluster or a
distributed one. If the test only works on a mini cluster, then specific
method getMiniHBaseCluster()
can be used instead w/o the
need to type-cast.
public Connection getConnection() throws IOException
IOException
@Deprecated public HBaseAdmin getHBaseAdmin() throws IOException
getAdmin()
instead.Admin
interface.
Functions in HBaseAdmin not provided by Admin
interface can be changed/deleted
anytime.IOException
public Admin getAdmin() throws IOException
IOException
public Hbck getHbck() throws IOException
Hbck
instance. Needs be closed when done.IOException
public void unassignRegion(String regionName) throws IOException
regionName
- The region to unassign.IOException
public void unassignRegion(byte[] regionName) throws IOException
regionName
- The region to unassign.IOException
public void unassignRegionByRow(String row, RegionLocator table) throws IOException
row
- The row to find the containing region.table
- The table to find the region.IOException
public void unassignRegionByRow(byte[] row, RegionLocator table) throws IOException
row
- The row to find the containing region.table
- The table to find the region.IOException
public HRegion getSplittableRegion(TableName tableName, int maxAttempts)
public org.apache.hadoop.hdfs.MiniDFSCluster getDFSCluster()
public void setDFSCluster(org.apache.hadoop.hdfs.MiniDFSCluster cluster) throws IllegalStateException, IOException
IllegalStateException
IOException
public void setDFSCluster(org.apache.hadoop.hdfs.MiniDFSCluster cluster, boolean requireDown) throws IllegalStateException, IOException
cluster
- cluster to userequireDown
- require the that cluster not be "up" (MiniDFSCluster#isClusterUp) before
it is set.IllegalStateException
- if the passed cluster is up when it is required to be downIOException
- if the FileSystem could not be set from the passed dfs clusterpublic org.apache.hadoop.fs.FileSystem getTestFileSystem() throws IOException
IOException
public void waitTableAvailable(TableName table) throws InterruptedException, IOException
table
- Table to wait on.InterruptedException
IOException
public void waitTableAvailable(TableName table, long timeoutMillis) throws InterruptedException, IOException
InterruptedException
IOException
public void waitTableAvailable(byte[] table, long timeoutMillis) throws InterruptedException, IOException
table
- Table to wait on.timeoutMillis
- Timeout.InterruptedException
IOException
public String explainTableAvailability(TableName tableName) throws IOException
IOException
public String explainTableState(TableName table, TableState.State state) throws IOException
IOException
@Nullable public TableState findLastTableState(TableName table) throws IOException
IOException
public void waitTableEnabled(TableName table) throws InterruptedException, IOException
table
- Table to wait on.table
- InterruptedException
IOException
public void waitTableEnabled(byte[] table, long timeoutMillis) throws InterruptedException, IOException
table
- Table to wait on.timeoutMillis
- Time to wait on it being marked enabled.InterruptedException
IOException
waitTableEnabled(TableName, long)
public void waitTableEnabled(TableName table, long timeoutMillis) throws IOException
IOException
public void waitTableDisabled(byte[] table) throws InterruptedException, IOException
table
- Table to wait on.InterruptedException
IOException
public void waitTableDisabled(TableName table, long millisTimeout) throws InterruptedException, IOException
InterruptedException
IOException
public void waitTableDisabled(byte[] table, long timeoutMillis) throws InterruptedException, IOException
table
- Table to wait on.timeoutMillis
- Time to wait on it being marked disabled.InterruptedException
IOException
public boolean ensureSomeRegionServersAvailable(int num) throws IOException
num
- minimum number of region servers that should be runningIOException
public boolean ensureSomeNonStoppedRegionServersAvailable(int num) throws IOException
num
- minimum number of region servers that should be runningIOException
public static User getDifferentUser(org.apache.hadoop.conf.Configuration c, String differentiatingSuffix) throws IOException
c
configuration setting a new
user into the clone. Use it getting new instances of FileSystem. Only
works for DistributedFileSystem w/o Kerberos.c
- Initial configurationdifferentiatingSuffix
- Suffix to differentiate this user from others.IOException
public static NavigableSet<String> getAllOnlineRegions(MiniHBaseCluster cluster) throws IOException
IOException
public static void setMaxRecoveryErrorCount(OutputStream stream, int max)
2010-06-15 11:52:28,511 WARN [DataStreamer for file /hbase/.logs/wal.1276627923013 block blk_928005470262850423_1021] hdfs.DFSClient$DFSOutputStream(2657): Error Recovery for block blk_928005470262850423_1021 failed because recovery from primary datanode 127.0.0.1:53683 failed 4 times. Pipeline was 127.0.0.1:53687, 127.0.0.1:53683. Will retry...
stream
- A DFSClient.DFSOutputStream.max
- NoSuchFieldException
SecurityException
IllegalAccessException
IllegalArgumentException
public boolean assignRegion(RegionInfo regionInfo) throws IOException, InterruptedException
IOException
InterruptedException
public void moveRegionAndWait(RegionInfo destRegion, ServerName destServer) throws InterruptedException, IOException
destRegion
- region to movedestServer
- destination server of the regionInterruptedException
IOException
public void waitUntilAllRegionsAssigned(TableName tableName) throws IOException
tableName
- the table nameIOException
public void waitUntilAllSystemRegionsAssigned() throws IOException
IOException
public void waitUntilAllRegionsAssigned(TableName tableName, long timeout) throws IOException
tableName
- the table nametimeout
- timeout, in millisecondsIOException
public static List<Cell> getFromStoreFile(HStore store, Get get) throws IOException
IOException
public byte[][] getRegionSplitStartKeys(byte[] startKey, byte[] endKey, int numRegions)
startKey
- endKey
- numRegions
- the number of regions to be created. it has to be greater than 3.public static List<Cell> getFromStoreFile(HStore store, byte[] row, NavigableSet<byte[]> columns) throws IOException
IOException
public static void assertKVListsEqual(String additionalMsg, List<? extends Cell> expected, List<? extends Cell> actual)
public static <T> String safeGetAsStr(List<T> lst, int i)
public String getClusterKey()
public Table createRandomTable(TableName tableName, Collection<String> families, int maxVersions, int numColsPerRow, int numFlushes, int numRegions, int numRowsPerFlush) throws IOException, InterruptedException
IOException
InterruptedException
public static int randomFreePort()
public static String randomMultiCastAddress()
public static void waitForHostPort(String host, int port) throws IOException
IOException
public static int createPreSplitLoadTestTable(org.apache.hadoop.conf.Configuration conf, TableName tableName, byte[] columnFamily, org.apache.hadoop.hbase.io.compress.Compression.Algorithm compression, DataBlockEncoding dataBlockEncoding) throws IOException
IOException
public static int createPreSplitLoadTestTable(org.apache.hadoop.conf.Configuration conf, TableName tableName, byte[] columnFamily, org.apache.hadoop.hbase.io.compress.Compression.Algorithm compression, DataBlockEncoding dataBlockEncoding, int numRegionsPerServer, int regionReplication, Durability durability) throws IOException
IOException
public static int createPreSplitLoadTestTable(org.apache.hadoop.conf.Configuration conf, TableName tableName, byte[][] columnFamilies, org.apache.hadoop.hbase.io.compress.Compression.Algorithm compression, DataBlockEncoding dataBlockEncoding, int numRegionsPerServer, int regionReplication, Durability durability) throws IOException
IOException
public static int createPreSplitLoadTestTable(org.apache.hadoop.conf.Configuration conf, TableDescriptor desc, ColumnFamilyDescriptor hcd) throws IOException
IOException
public static int createPreSplitLoadTestTable(org.apache.hadoop.conf.Configuration conf, TableDescriptor desc, ColumnFamilyDescriptor hcd, int numRegionsPerServer) throws IOException
IOException
public static int createPreSplitLoadTestTable(org.apache.hadoop.conf.Configuration conf, TableDescriptor desc, ColumnFamilyDescriptor[] hcds, int numRegionsPerServer) throws IOException
IOException
public static int createPreSplitLoadTestTable(org.apache.hadoop.conf.Configuration conf, TableDescriptor td, ColumnFamilyDescriptor[] cds, RegionSplitter.SplitAlgorithm splitter, int numRegionsPerServer) throws IOException
IOException
public static int getMetaRSPort(Connection connection) throws IOException
IOException
public void assertRegionOnServer(RegionInfo hri, ServerName server, long timeout) throws IOException, InterruptedException
IOException
InterruptedException
public void assertRegionOnlyOnServer(RegionInfo hri, ServerName server, long timeout) throws IOException, InterruptedException
IOException
InterruptedException
public HRegion createTestRegion(String tableName, ColumnFamilyDescriptor cd) throws IOException
IOException
public void setFileSystemURI(String fsURI)
public Waiter.ExplainingPredicate<IOException> predicateNoRegionsInTransition()
Waiter.Predicate
for checking that there are no regions in transition in masterpublic Waiter.Predicate<IOException> predicateTableEnabled(TableName tableName)
Waiter.Predicate
for checking that table is enabledpublic Waiter.Predicate<IOException> predicateTableDisabled(TableName tableName)
Waiter.Predicate
for checking that table is enabledpublic Waiter.Predicate<IOException> predicateTableAvailable(TableName tableName)
Waiter.Predicate
for checking that table is enabledpublic void waitUntilNoRegionsInTransition(long timeout) throws IOException
timeout
- How long to wait.IOException
public void waitUntilNoRegionsInTransition() throws IOException
IOException
public void waitLabelAvailable(long timeoutMillis, String... labels)
timeoutMillis
- labels
- public static List<HColumnDescriptor> generateColumnDescriptors()
public static List<HColumnDescriptor> generateColumnDescriptors(String prefix)
prefix
- family names prefixpublic static org.apache.hadoop.hbase.io.compress.Compression.Algorithm[] getSupportedCompressionAlgorithms()
public Result getClosestRowBefore(Region r, byte[] row, byte[] family) throws IOException
IOException
public org.apache.hadoop.minikdc.MiniKdc setupMiniKdc(File keytabFile) throws Exception
MiniKdc
for testing security.
Uses HBaseKerberosUtils
to set the given keytab file as
HBaseKerberosUtils.KRB_KEYTAB_FILE
.Exception
public int getNumHFiles(TableName tableName, byte[] family)
public int getNumHFilesForRS(HRegionServer rs, TableName tableName, byte[] family)
public void verifyTableDescriptorIgnoreTableName(TableDescriptor ltd, TableDescriptor rtd)
Copyright © 2007–2019 Cloudera. All rights reserved.