Class HBaseTestingUtil
- Direct Known Subclasses:
IntegrationTestingUtility
SingleProcessHBaseCluster,
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.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final classstatic classA tracker for tracking and validating table rows generated withloadTable(Table, byte[])Nested classes/interfaces inherited from class org.apache.hadoop.hbase.HBaseCommonTestingUtil
HBaseCommonTestingUtil.PortAllocator -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AtomicReference<org.apache.hadoop.hbase.client.AsyncClusterConnection>static final Collection<Object[]>static final byte[][]private org.apache.hadoop.fs.PathDirectory on test filesystem where we put the data for this instance of HBaseTestingUtilitystatic final intprivate org.apache.hadoop.hdfs.MiniDFSClusterstatic final byte[]static final byte[]static final byte[]static final charprivate static StringFilesystem URI used for map-reduce mini-cluster setupprivate Stringprivate org.apache.hadoop.hbase.client.Adminprivate HBaseClusterInterfacestatic final byte[][]static final byte[][]static final charprivate static final intThis is for unit tests parameterized with a single boolean.private booleanIf there is a mini cluster running for this testing utility instance.private org.apache.hadoop.mapred.MiniMRClusterstatic final byte[][]All the row values for the data loaded byloadTable(Table, byte[])static final Stringstatic final byte[]Fields inherited from class org.apache.hadoop.hbase.HBaseZKTestingUtil
clusterTestDir, zooKeeperWatcherFields inherited from class org.apache.hadoop.hbase.HBaseCommonTestingUtil
BASE_TEST_DIRECTORY_KEY, BOOLEAN_PARAMETERIZED, COMPRESSION_ALGORITHMS, COMPRESSION_ALGORITHMS_PARAMETERIZED, conf, DEFAULT_BASE_TEST_DIRECTORY, LOG -
Constructor Summary
ConstructorsConstructorDescriptionCreate an HBaseTestingUtility using a default configuration.HBaseTestingUtil(org.apache.hadoop.conf.Configuration conf) Create an HBaseTestingUtility using a given configuration. -
Method Summary
Modifier and TypeMethodDescriptionstatic voidassertKVListsEqual(String additionalMsg, List<? extends org.apache.hadoop.hbase.Cell> expected, List<? extends org.apache.hadoop.hbase.Cell> actual) voidassertRegionOnlyOnServer(org.apache.hadoop.hbase.client.RegionInfo hri, org.apache.hadoop.hbase.ServerName server, long timeout) Check to make sure the region is open on the specified region server, but not on any other one.voidassertRegionOnServer(org.apache.hadoop.hbase.client.RegionInfo hri, org.apache.hadoop.hbase.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.booleanassignRegion(org.apache.hadoop.hbase.client.RegionInfo regionInfo) Uses directly the assignment manager to assign the region.static booleanavailable(int port) Checks to see if a specific port is available.static voidawait(long sleepMillis, BooleanSupplier condition) Await the successful return ofcondition, sleepingsleepMillisbetween invocations.Create all combinations of Bloom filters and compression algorithms for testing.checksumRows(org.apache.hadoop.hbase.client.Table table) Return an md5 digest of the entire contents of a table.private voidcleanup()booleanCleans the test data directory on the test filesystem.booleancleanupDataTestDirOnTestFS(String subdirName) Cleans a subdirectory under the test data directory on the test filesystem.voidstatic voidcloseRegionAndWAL(org.apache.hadoop.hbase.regionserver.HRegion r) Close both the HRegionrand it's underlying WAL.static voidcloseRegionAndWAL(org.apache.hadoop.hbase.regionserver.Region r) Close both the regionrand it's underlying WAL.voidcompact(boolean major) Compact all regions in the mini hbase clustervoidcompact(org.apache.hadoop.hbase.TableName tableName, boolean major) Compact all of a table's reagion in the mini hbase clusterstatic intcountRows(org.apache.hadoop.hbase.client.Table table) Return the number of rows in the given table.static intcountRows(org.apache.hadoop.hbase.client.Table table, byte[]... families) static intcountRows(org.apache.hadoop.hbase.client.Table table, org.apache.hadoop.hbase.client.Scan scan) static intcountRows(org.apache.hadoop.hbase.regionserver.InternalScanner scanner) static intcountRows(org.apache.hadoop.hbase.regionserver.Region region) static intcountRows(org.apache.hadoop.hbase.regionserver.Region region, org.apache.hadoop.hbase.client.Scan scan) intcountRows(org.apache.hadoop.hbase.TableName tableName) Return the number of rows in the given table.private StringcreateDirAndSetProperty(String property) private StringcreateDirAndSetProperty(String relPath, String property) private voidThis is used before starting HDFS and map-reduce mini-clusters Run something like the below to check for the likes of '/tmp' references -- i.e.org.apache.hadoop.hbase.regionserver.HRegioncreateLocalHRegion(org.apache.hadoop.hbase.client.RegionInfo info, org.apache.hadoop.conf.Configuration conf, org.apache.hadoop.hbase.client.TableDescriptor desc, org.apache.hadoop.hbase.wal.WAL wal) Create an HRegion that writes to the local tmp dirs with specified walorg.apache.hadoop.hbase.regionserver.HRegioncreateLocalHRegion(org.apache.hadoop.hbase.client.RegionInfo info, org.apache.hadoop.hbase.client.TableDescriptor desc) Create an HRegion that writes to the local tmp dirs.org.apache.hadoop.hbase.regionserver.HRegioncreateLocalHRegion(org.apache.hadoop.hbase.client.TableDescriptor desc, byte[] startKey, byte[] endKey) Create an HRegion that writes to the local tmp dirsorg.apache.hadoop.hbase.regionserver.HRegioncreateLocalHRegion(org.apache.hadoop.hbase.TableName tableName, byte[] startKey, byte[] stopKey, org.apache.hadoop.conf.Configuration conf, boolean isReadOnly, org.apache.hadoop.hbase.client.Durability durability, org.apache.hadoop.hbase.wal.WAL wal, byte[]... families) org.apache.hadoop.hbase.regionserver.HRegioncreateLocalHRegionWithInMemoryFlags(org.apache.hadoop.hbase.TableName tableName, byte[] startKey, byte[] stopKey, org.apache.hadoop.conf.Configuration conf, boolean isReadOnly, org.apache.hadoop.hbase.client.Durability durability, org.apache.hadoop.hbase.wal.WAL wal, boolean[] compactedMemStore, byte[]... families) org.apache.hadoop.hbase.regionserver.RegionServerServicesCreate a stubbed out RegionServerService, mainly for getting FS.org.apache.hadoop.hbase.regionserver.RegionServerServicescreateMockRegionServerService(org.apache.hadoop.hbase.ipc.RpcServerInterface rpc) Create a stubbed out RegionServerService, mainly for getting FS.org.apache.hadoop.hbase.regionserver.RegionServerServicescreateMockRegionServerService(org.apache.hadoop.hbase.ServerName name) Create a stubbed out RegionServerService, mainly for getting FS.org.apache.hadoop.hbase.client.TableDescriptorBuilderorg.apache.hadoop.hbase.client.TableDescriptorBuildercreateModifyableTableDescriptor(org.apache.hadoop.hbase.TableName name, int minVersions, int versions, int ttl, org.apache.hadoop.hbase.KeepDeletedCells keepDeleted) List<org.apache.hadoop.hbase.client.RegionInfo>createMultiRegionsInMeta(org.apache.hadoop.conf.Configuration conf, org.apache.hadoop.hbase.client.TableDescriptor htd, byte[][] startKeys) Create rows in hbase:meta for regions of the specified table with the specified start keys.org.apache.hadoop.hbase.client.TablecreateMultiRegionTable(org.apache.hadoop.hbase.TableName tableName, byte[] family) Create a table with multiple regions.org.apache.hadoop.hbase.client.TablecreateMultiRegionTable(org.apache.hadoop.hbase.TableName tableName, byte[][] families) Create a table with multiple regions.org.apache.hadoop.hbase.client.TablecreateMultiRegionTable(org.apache.hadoop.hbase.TableName tableName, byte[][] families, int numVersions) Create a table with multiple regions.org.apache.hadoop.hbase.client.TablecreateMultiRegionTable(org.apache.hadoop.hbase.TableName tableName, byte[] family, int numRegions) Create a table with multiple regions.org.apache.hadoop.hbase.client.TablecreateMultiRegionTable(org.apache.hadoop.hbase.TableName tableName, int replicaCount, byte[][] families) Create a table with multiple regions.org.apache.hadoop.hbase.client.TablecreateRandomTable(org.apache.hadoop.hbase.TableName tableName, Collection<String> families, int maxVersions, int numColsPerRow, int numFlushes, int numRegions, int numRowsPerFlush) Creates a random table with the given parametersstatic org.apache.hadoop.hbase.regionserver.HRegioncreateRegionAndWAL(org.apache.hadoop.hbase.client.RegionInfo info, org.apache.hadoop.fs.Path rootDir, org.apache.hadoop.conf.Configuration conf, org.apache.hadoop.hbase.client.TableDescriptor htd) Create a region with it's own WAL.static org.apache.hadoop.hbase.regionserver.HRegioncreateRegionAndWAL(org.apache.hadoop.hbase.client.RegionInfo info, org.apache.hadoop.fs.Path rootDir, org.apache.hadoop.conf.Configuration conf, org.apache.hadoop.hbase.client.TableDescriptor htd, boolean initialize) Create a region with it's own WAL.static org.apache.hadoop.hbase.regionserver.HRegioncreateRegionAndWAL(org.apache.hadoop.hbase.client.RegionInfo info, org.apache.hadoop.fs.Path rootDir, org.apache.hadoop.conf.Configuration conf, org.apache.hadoop.hbase.client.TableDescriptor htd, org.apache.hadoop.hbase.io.hfile.BlockCache blockCache) Create a region with it's own WAL.static org.apache.hadoop.hbase.regionserver.HRegioncreateRegionAndWAL(org.apache.hadoop.hbase.client.RegionInfo info, org.apache.hadoop.fs.Path rootDir, org.apache.hadoop.conf.Configuration conf, org.apache.hadoop.hbase.client.TableDescriptor htd, org.apache.hadoop.hbase.mob.MobFileCache mobFileCache) Create a region with it's own WAL.org.apache.hadoop.fs.PathSame ascreateRootDir(boolean create)except thatcreateflag is false.org.apache.hadoop.fs.PathcreateRootDir(boolean create) Creates an hbase rootdir in user home directory.private voidcreateSubDirAndSystemProperty(String propertyName, org.apache.hadoop.fs.Path parent, String subDirName) org.apache.hadoop.hbase.client.TablecreateTable(org.apache.hadoop.hbase.client.TableDescriptor htd, byte[][] splitRows) Create a table.org.apache.hadoop.hbase.client.TablecreateTable(org.apache.hadoop.hbase.client.TableDescriptor htd, byte[][] families, byte[][] splitKeys, org.apache.hadoop.conf.Configuration c) Create a table.org.apache.hadoop.hbase.client.TablecreateTable(org.apache.hadoop.hbase.client.TableDescriptor htd, byte[][] families, byte[][] splitKeys, org.apache.hadoop.hbase.regionserver.BloomType type, int blockSize, org.apache.hadoop.conf.Configuration c) Create a table.org.apache.hadoop.hbase.client.TablecreateTable(org.apache.hadoop.hbase.client.TableDescriptor htd, byte[][] families, org.apache.hadoop.conf.Configuration c) Create a table.org.apache.hadoop.hbase.client.TablecreateTable(org.apache.hadoop.hbase.TableName tableName, byte[] family) Create a table.org.apache.hadoop.hbase.client.TablecreateTable(org.apache.hadoop.hbase.TableName tableName, byte[][] families) Create a table.org.apache.hadoop.hbase.client.TablecreateTable(org.apache.hadoop.hbase.TableName tableName, byte[][] families, byte[][] splitKeys) Create a table.org.apache.hadoop.hbase.client.TablecreateTable(org.apache.hadoop.hbase.TableName tableName, byte[][] families, byte[][] splitKeys, int replicaCount) Create a table.org.apache.hadoop.hbase.client.TablecreateTable(org.apache.hadoop.hbase.TableName tableName, byte[][] families, byte[][] splitKeys, int replicaCount, org.apache.hadoop.conf.Configuration c) Create a table.org.apache.hadoop.hbase.client.TablecreateTable(org.apache.hadoop.hbase.TableName tableName, byte[][] families, int numVersions) Create a table.org.apache.hadoop.hbase.client.TablecreateTable(org.apache.hadoop.hbase.TableName tableName, byte[][] families, int[] numVersions) Create a table.org.apache.hadoop.hbase.client.TablecreateTable(org.apache.hadoop.hbase.TableName tableName, byte[][] families, int numVersions, byte[][] splitKeys) Create a table.org.apache.hadoop.hbase.client.TablecreateTable(org.apache.hadoop.hbase.TableName tableName, byte[][] families, int numVersions, byte[] startKey, byte[] endKey, int numRegions) org.apache.hadoop.hbase.client.TablecreateTable(org.apache.hadoop.hbase.TableName tableName, byte[][] families, int numVersions, int blockSize) Create a table.org.apache.hadoop.hbase.client.TablecreateTable(org.apache.hadoop.hbase.TableName tableName, byte[][] families, int numVersions, int blockSize, String cpName) org.apache.hadoop.hbase.client.TablecreateTable(org.apache.hadoop.hbase.TableName tableName, byte[] family, byte[][] splitRows) Create a table.org.apache.hadoop.hbase.client.TablecreateTable(org.apache.hadoop.hbase.TableName tableName, byte[] family, int numVersions) Create a table.org.apache.hadoop.hbase.client.TablecreateTable(org.apache.hadoop.hbase.TableName tableName, String family) Create a table.org.apache.hadoop.hbase.client.TablecreateTable(org.apache.hadoop.hbase.TableName tableName, String[] families) Create a table.org.apache.hadoop.hbase.client.TableDescriptorcreateTableDescriptor(org.apache.hadoop.hbase.TableName name) Create a table of namename.org.apache.hadoop.hbase.client.TableDescriptorcreateTableDescriptor(org.apache.hadoop.hbase.TableName tableName, byte[] family) org.apache.hadoop.hbase.client.TableDescriptorcreateTableDescriptor(org.apache.hadoop.hbase.TableName tableName, byte[][] families, int maxVersions) org.apache.hadoop.hbase.client.TableDescriptorcreateTableDescriptor(org.apache.hadoop.hbase.TableName name, int minVersions, int versions, int ttl, org.apache.hadoop.hbase.KeepDeletedCells keepDeleted) org.apache.hadoop.hbase.regionserver.HRegioncreateTestRegion(String tableName, org.apache.hadoop.hbase.client.ColumnFamilyDescriptor cd) org.apache.hadoop.hbase.regionserver.HRegioncreateTestRegion(String tableName, org.apache.hadoop.hbase.client.ColumnFamilyDescriptor cd, org.apache.hadoop.hbase.io.hfile.BlockCache blockCache) static org.apache.hadoop.hbase.wal.WALcreateWal(org.apache.hadoop.conf.Configuration conf, org.apache.hadoop.fs.Path rootDir, org.apache.hadoop.hbase.client.RegionInfo hri) Create an unmanaged WAL.org.apache.hadoop.fs.PathCreates a hbase walDir in the user's home directory.private voidprivate voiddecrementMinRegionServerCount(org.apache.hadoop.conf.Configuration conf) voiddeleteNumericRows(org.apache.hadoop.hbase.client.Table t, byte[] f, int startRow, int endRow) voiddeleteTable(org.apache.hadoop.hbase.TableName tableName) Drop an existing tableorg.apache.hadoop.hbase.client.TabledeleteTableData(org.apache.hadoop.hbase.TableName tableName) Provide an existing table name to truncate.voiddeleteTableIfAny(org.apache.hadoop.hbase.TableName tableName) Drop an existing tableprivate voidEnable the short circuit read, unless configured differently.booleanMake sure that at least the specified number of region servers are running.booleanensureSomeRegionServersAvailable(int num) Make sure that at least the specified number of region servers are runningvoidExpire the Master's sessionvoidexpireRegionServerSession(int index) Expire a region server's sessionvoidexpireSession(org.apache.hadoop.hbase.zookeeper.ZKWatcher nodeZK) voidexpireSession(org.apache.hadoop.hbase.zookeeper.ZKWatcher nodeZK, boolean checkStatus) Expire a ZooKeeper session as recommended in ZooKeeper documentation http://hbase.apache.org/book.html#trouble.zookeeperexplainTableAvailability(org.apache.hadoop.hbase.TableName tableName) explainTableState(org.apache.hadoop.hbase.TableName table, org.apache.hadoop.hbase.client.TableState.State state) org.apache.hadoop.hbase.client.TableStatefindLastTableState(org.apache.hadoop.hbase.TableName table) voidflush()Flushes all caches in the mini hbase clustervoidflush(org.apache.hadoop.hbase.TableName tableName) Flushes all caches in the mini hbase clusterstatic List<org.apache.hadoop.hbase.client.ColumnFamilyDescriptor>Create a set of column descriptors with the combination of compression, encoding, bloom codecs available.static List<org.apache.hadoop.hbase.client.ColumnFamilyDescriptor>generateColumnDescriptors(String prefix) Create a set of column descriptors with the combination of compression, encoding, bloom codecs available.org.apache.hadoop.hbase.client.AdmingetAdmin()Returns an Admin instance which is shared between HBaseTestingUtility instance users.static NavigableSet<String>org.apache.hadoop.hbase.client.AsyncClusterConnectionGet a shared AsyncClusterConnection to the cluster.org.apache.hadoop.hbase.client.AsyncClusterConnectiongetAsyncConnection(org.apache.hadoop.hbase.security.User user) Get a assigned AsyncClusterConnection to the cluster.private org.apache.hadoop.fs.Pathorg.apache.hadoop.hbase.client.ResultgetClosestRowBefore(org.apache.hadoop.hbase.regionserver.Region r, byte[] row, byte[] family) Deprecated.since 2.7.0, will be removed in 4.0.0.org.apache.hadoop.conf.ConfigurationReturns this classes's instance ofConfiguration.org.apache.hadoop.hbase.client.ConnectionGet a shared Connection to the cluster.org.apache.hadoop.hbase.client.ConnectiongetConnection(org.apache.hadoop.hbase.security.User user) Get a assigned Connection to the cluster.org.apache.hadoop.fs.PathReturns a Path in the test filesystem, obtained fromgetTestFileSystem()to write temporary test data.org.apache.hadoop.fs.PathgetDataTestDirOnTestFS(String subdirName) Returns a Path in the test filesystem, obtained fromgetTestFileSystem()to write temporary test data.org.apache.hadoop.fs.PathSame as {getDefaultRootDirPath(boolean create)except thatcreateflag is false.org.apache.hadoop.fs.PathgetDefaultRootDirPath(boolean create) Returns the path to the default root dir the minicluster uses.org.apache.hadoop.hdfs.MiniDFSClusterstatic org.apache.hadoop.hbase.security.UsergetDifferentUser(org.apache.hadoop.conf.Configuration c, String differentiatingSuffix) This method clones the passedcconfiguration setting a new user into the clone.static List<org.apache.hadoop.hbase.Cell>getFromStoreFile(org.apache.hadoop.hbase.regionserver.HStore store, byte[] row, NavigableSet<byte[]> columns) Do a small get/scan against one store.static List<org.apache.hadoop.hbase.Cell>getFromStoreFile(org.apache.hadoop.hbase.regionserver.HStore store, org.apache.hadoop.hbase.client.Get get) Do a small get/scan against one store.Get the Mini HBase cluster.Returns the HBaseCluster instance.org.apache.hadoop.hbase.client.HbckgetHbck()Returns anHbckinstance.static intgetMetaRSPort(org.apache.hadoop.hbase.client.Connection connection) Returns current mini hbase cluster.private org.apache.hadoop.fs.PathSets up a new path in test filesystem to be used by tests.intgetNumHFiles(org.apache.hadoop.hbase.TableName tableName, byte[] family) intgetNumHFilesForRS(org.apache.hadoop.hbase.regionserver.HRegionServer rs, org.apache.hadoop.hbase.TableName tableName, byte[] family) org.apache.hadoop.hbase.regionserver.HRegionServergetOtherRegionServer(org.apache.hadoop.hbase.regionserver.HRegionServer rs) Find any other region server which is different from the one identified by parameterbyte[][]getRegionSplitStartKeys(byte[] startKey, byte[] endKey, int numRegions) Create region split keys between startkey and endKeyorg.apache.hadoop.hbase.regionserver.HRegionServergetRSForFirstRegionInTable(org.apache.hadoop.hbase.TableName tableName) Tool to get the reference to the region server object that holds the region of the specified user table.org.apache.hadoop.hbase.regionserver.HRegiongetSplittableRegion(org.apache.hadoop.hbase.TableName tableName, int maxAttempts) Retrieves a splittable region randomly from tableNamestatic org.apache.hadoop.hbase.io.compress.Compression.Algorithm[]Get supported compression algorithms.org.apache.hadoop.fs.FileSystemvoidResets the connections so that the next time getConnection() is called, a new connection is created.booleanCheck whether the tests should assume NEW_VERSION_BEHAVIOR when creating new column families.booleanGet the HBase setting for dfs.client.read.shortcircuit from the conf or a system property.private booleanisTargetTable(byte[] inRow, org.apache.hadoop.hbase.Cell c) voidAbruptly Shutdown HBase mini cluster.voidloadNumericRows(org.apache.hadoop.hbase.client.Table t, byte[] f, int startRow, int endRow) voidloadRandomRows(org.apache.hadoop.hbase.client.Table t, byte[] f, int rowSize, int totalRows) intloadRegion(org.apache.hadoop.hbase.regionserver.HRegion r, byte[] f) intloadRegion(org.apache.hadoop.hbase.regionserver.HRegion r, byte[] f, boolean flush) Load region with rows from 'aaa' to 'zzz'.intloadRegion(org.apache.hadoop.hbase.regionserver.Region r, byte[] f) intloadTable(org.apache.hadoop.hbase.client.Table t, byte[] f) Load table with rows from 'aaa' to 'zzz'.intloadTable(org.apache.hadoop.hbase.client.Table t, byte[][] f) Load table of multiple column families with rows from 'aaa' to 'zzz'.intloadTable(org.apache.hadoop.hbase.client.Table t, byte[][] f, byte[] value) Load table of multiple column families with rows from 'aaa' to 'zzz'.intloadTable(org.apache.hadoop.hbase.client.Table t, byte[][] f, byte[] value, boolean writeToWAL) Load table of multiple column families with rows from 'aaa' to 'zzz'.intloadTable(org.apache.hadoop.hbase.client.Table t, byte[] f, boolean writeToWAL) Load table with rows from 'aaa' to 'zzz'.Create combination of memstoreTS and tagsvoidmoveRegionAndWait(org.apache.hadoop.hbase.client.RegionInfo destRegion, org.apache.hadoop.hbase.ServerName destServer) Move region to destination server and wait till region is completely moved and onlineReturns aWaiter.Predicatefor checking that there are no regions in transition in masterpredicateTableAvailable(org.apache.hadoop.hbase.TableName tableName) Returns aWaiter.Predicatefor checking that table is enabledpredicateTableDisabled(org.apache.hadoop.hbase.TableName tableName) Returns aWaiter.Predicatefor checking that table is enabledpredicateTableEnabled(org.apache.hadoop.hbase.TableName tableName) Returns aWaiter.Predicatefor checking that table is enabledstatic intstatic StringvoidrestartHBaseCluster(int servers) Starts the hbase cluster up again after shutting it down previously in a test.voidrestartHBaseCluster(int servers, List<Integer> ports) voidstatic <T> StringsafeGetAsStr(List<T> lst, int i) voidsetDFSCluster(org.apache.hadoop.hdfs.MiniDFSCluster cluster) voidsetDFSCluster(org.apache.hadoop.hdfs.MiniDFSCluster cluster, boolean requireDown) Set the MiniDFSClusterstatic voidsetFileSystemURI(String fsURI) private voidsetFs()voidsetHBaseCluster(HBaseClusterInterface hbaseCluster) private voidstatic voidsetMaxRecoveryErrorCount(OutputStream stream, int max) Set maxRecoveryErrorCount in DFSClient.static voidsetReplicas(org.apache.hadoop.hbase.client.Admin admin, org.apache.hadoop.hbase.TableName table, int replicaCount) Set the number of Region replicas.static voidsetReplicas(org.apache.hadoop.hbase.client.AsyncAdmin admin, org.apache.hadoop.hbase.TableName table, int replicaCount) Set the number of Region replicas.protected org.apache.hadoop.fs.PathHome our data in a dir underHBaseCommonTestingUtil.DEFAULT_BASE_TEST_DIRECTORY.private voidSets up a path in test filesystem to be used by tests.org.apache.hadoop.minikdc.MiniKdcsetupMiniKdc(File keytabFile) Sets upMiniKdcfor testing security.voidStops mini hbase, zk, and hdfs clusters.voidShuts down instance created by call tostartMiniDFSCluster(int)or does nothing.voidShutdown HBase mini cluster.Does not shutdown zk or dfs if running.voidStops the previously startedMiniMRCluster.Start up a minicluster of hbase, dfs and zookeeper all using default options.startMiniCluster(int numSlaves) Start up a minicluster of hbase, dfs and zookeeper clusters with given slave node number.Start up a mini cluster of hbase, optionally dfs and zookeeper if needed.org.apache.hadoop.hdfs.MiniDFSClusterstartMiniDFSCluster(int servers) Start a minidfscluster.org.apache.hadoop.hdfs.MiniDFSClusterstartMiniDFSCluster(int servers, String[] hosts) Start a minidfscluster.org.apache.hadoop.hdfs.MiniDFSClusterstartMiniDFSCluster(int servers, String[] racks, String[] hosts) org.apache.hadoop.hdfs.MiniDFSClusterstartMiniDFSCluster(String[] hosts) Start a minidfscluster.org.apache.hadoop.hdfs.MiniDFSClusterstartMiniDFSClusterForTestWAL(int namenodePort) Starts up mini hbase cluster using default options.startMiniHBaseCluster(int numMasters, int numRegionServers) Deprecated.since 2.2.0 and will be removed in 4.0.0.startMiniHBaseCluster(int numMasters, int numRegionServers, List<Integer> rsPorts) Deprecated.since 2.2.0 and will be removed in 4.0.0.startMiniHBaseCluster(int numMasters, int numRegionServers, List<Integer> rsPorts, Class<? extends org.apache.hadoop.hbase.master.HMaster> masterClass, Class<? extends SingleProcessHBaseCluster.MiniHBaseClusterRegionServer> rsClass, boolean createRootDir, boolean createWALDir) Deprecated.since 2.2.0 and will be removed in 4.0.0.Starts up mini hbase cluster.org.apache.hadoop.mapred.MiniMRClusterStarts aMiniMRClusterwith a default number ofTaskTracker's.private voidstartMiniMapReduceCluster(int servers) Starts aMiniMRCluster.startSecureMiniCluster(org.apache.hadoop.minikdc.MiniKdc kdc, String servicePrincipal, String spnegoPrincipal) Start mini secure cluster with given kdc and principals.org.apache.hadoop.hbase.client.TabletruncateTable(org.apache.hadoop.hbase.TableName tableName) Truncate a table using the admin command.org.apache.hadoop.hbase.client.TabletruncateTable(org.apache.hadoop.hbase.TableName tableName, boolean preserveRegions) Truncate a table using the admin command.voidunassignRegion(byte[] regionName) Unassign the named region.voidunassignRegion(String regionName) Unassign the named region.voidunassignRegionByRow(byte[] row, org.apache.hadoop.hbase.client.RegionLocator table) Closes the region containing the given row.voidunassignRegionByRow(String row, org.apache.hadoop.hbase.client.RegionLocator table) Closes the region containing the given row.voidverifyNumericRows(org.apache.hadoop.hbase.client.Table table, byte[] f, int startRow, int endRow, int replicaId) voidverifyNumericRows(org.apache.hadoop.hbase.regionserver.HRegion region, byte[] f, int startRow, int endRow) voidverifyNumericRows(org.apache.hadoop.hbase.regionserver.HRegion region, byte[] f, int startRow, int endRow, boolean present) voidverifyNumericRows(org.apache.hadoop.hbase.regionserver.Region region, byte[] f, int startRow, int endRow) voidverifyNumericRows(org.apache.hadoop.hbase.regionserver.Region region, byte[] f, int startRow, int endRow, boolean present) voidverifyTableDescriptorIgnoreTableName(org.apache.hadoop.hbase.client.TableDescriptor ltd, org.apache.hadoop.hbase.client.TableDescriptor rtd) static voidwaitForHostPort(String host, int port) voidwaitLabelAvailable(long timeoutMillis, String... labels) Wait until labels is ready in VisibilityLabelsCache.voidwaitTableAvailable(byte[] table, long timeoutMillis) Wait until all regions in a table have been assignedvoidwaitTableAvailable(org.apache.hadoop.hbase.TableName table) Wait until all regions in a table have been assigned.voidwaitTableAvailable(org.apache.hadoop.hbase.TableName table, long timeoutMillis) voidwaitTableDisabled(byte[] table) Waits for a table to be 'disabled'.voidwaitTableDisabled(byte[] table, long timeoutMillis) Waits for a table to be 'disabled'.voidwaitTableDisabled(org.apache.hadoop.hbase.TableName table, long millisTimeout) voidwaitTableEnabled(byte[] table, long timeoutMillis) Waits for a table to be 'enabled'.voidwaitTableEnabled(org.apache.hadoop.hbase.TableName table) Waits for a table to be 'enabled'.voidwaitTableEnabled(org.apache.hadoop.hbase.TableName table, long timeoutMillis) voidwaitUntilAllRegionsAssigned(org.apache.hadoop.hbase.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.voidwaitUntilAllRegionsAssigned(org.apache.hadoop.hbase.TableName tableName, long timeout) Wait until all regions for a table in hbase:meta have a non-empty info:server, or until timeout.voidWaith until all system table's regions get assignedvoidWait until no regions in transition.voidwaitUntilNoRegionsInTransition(long timeout) Wait until no regions in transition.Methods inherited from class org.apache.hadoop.hbase.HBaseZKTestingUtil
cleanupTestDir, getClusterTestDir, getZkCluster, getZooKeeperWatcher, setupClusterTestDir, setZkCluster, shutdownMiniZKCluster, startMiniZKCluster, startMiniZKClusterMethods inherited from class org.apache.hadoop.hbase.HBaseCommonTestingUtil
cleanupTestDir, createSubDir, deleteDir, deleteOnExit, getDataTestDir, getDataTestDir, getRandomDir, getRandomUUID, waitFor, waitFor, waitFor
-
Field Details
-
DEFAULT_REGIONS_PER_SERVER
- See Also:
-
dfsCluster
-
dfsClusterFixer
-
hbaseCluster
-
mrCluster
-
miniClusterRunning
If there is a mini cluster running for this testing utility instance. -
hadoopLogDir
-
dataTestDirOnTestFS
Directory on test filesystem where we put the data for this instance of HBaseTestingUtility -
asyncConnection
private final AtomicReference<org.apache.hadoop.hbase.client.AsyncClusterConnection> asyncConnection -
FS_URI
Filesystem URI used for map-reduce mini-cluster setup -
MEMSTORETS_TAGS_PARAMETRIZED
This is for unit tests parameterized with a single boolean. -
BLOOM_AND_COMPRESSION_COMBINATIONS
-
fam1
-
fam2
-
fam3
-
COLUMNS
-
MAXVERSIONS
- See Also:
-
FIRST_CHAR
- See Also:
-
LAST_CHAR
- See Also:
-
START_KEY_BYTES
-
START_KEY
-
ROWS
All the row values for the data loaded byloadTable(Table, byte[]) -
KEYS
-
KEYS_FOR_HBA_CREATE_TABLE
-
hbaseAdmin
-
-
Constructor Details
-
HBaseTestingUtil
public HBaseTestingUtil()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 viastartMiniCluster(), tmp data will be written to the DFS directory instead. -
HBaseTestingUtil
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 viastartMiniCluster(), tmp data will be written to the DFS directory instead.- Parameters:
conf- The configuration to use for further operations
-
-
Method Details
-
available
Checks to see if a specific port is available.- Parameters:
port- the port number to check for availability- Returns:
- true if the port is available, or false if not
-
bloomAndCompressionCombinations
Create all combinations of Bloom filters and compression algorithms for testing. -
memStoreTSAndTagsCombination
Create combination of memstoreTS and tags -
memStoreTSTagsAndOffheapCombination
-
closeRegionAndWAL
public static void closeRegionAndWAL(org.apache.hadoop.hbase.regionserver.Region r) throws IOException Close both the regionrand it's underlying WAL. For use in tests.- Throws:
IOException
-
closeRegionAndWAL
public static void closeRegionAndWAL(org.apache.hadoop.hbase.regionserver.HRegion r) throws IOException Close both the HRegionrand it's underlying WAL. For use in tests.- Throws:
IOException
-
startSecureMiniCluster
public Closeable startSecureMiniCluster(org.apache.hadoop.minikdc.MiniKdc kdc, String servicePrincipal, String spnegoPrincipal) throws Exception Start mini secure cluster with given kdc and principals.- Parameters:
kdc- Mini kdc serverservicePrincipal- Service principal without realm.spnegoPrincipal- Spnego principal without realm.- Returns:
- Handler to shutdown the cluster
- Throws:
Exception
-
getConfiguration
Returns this classes's instance ofConfiguration. Be careful how you use the returned Configuration sinceConnectioninstances 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, seeshutdownMiniCluster(), then the Connection will no longer be wholesome. Rather than use the return direct, its usually best to make a copy and use that. DoConfiguration c = new Configuration(INSTANCE.getConfiguration());- Overrides:
getConfigurationin classHBaseCommonTestingUtil- Returns:
- Instance of Configuration.
-
setHBaseCluster
-
setupDataTestDir
Home our data in a dir underHBaseCommonTestingUtil.DEFAULT_BASE_TEST_DIRECTORY. Give it a random name so can have many concurrent tests running if we need to. 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 names 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.dir (We do not create them!).- Overrides:
setupDataTestDirin classHBaseCommonTestingUtil- Returns:
- The calculated data test build directory, if newly-created.
-
createSubDirAndSystemProperty
private void createSubDirAndSystemProperty(String propertyName, org.apache.hadoop.fs.Path parent, String subDirName) -
getBaseTestDirOnTestFS
- Returns:
- Where to write test data on the test filesystem; Returns working directory for the test filesystem by default
- Throws:
IOException- See Also:
-
getDataTestDirOnTestFS
Returns a Path in the test filesystem, obtained fromgetTestFileSystem()to write temporary test data. Call this method after setting up the mini dfs cluster if the test relies on it.- Returns:
- a unique path in the test filesystem
- Throws:
IOException
-
getDataTestDirOnTestFS
Returns a Path in the test filesystem, obtained fromgetTestFileSystem()to write temporary test data. Call this method after setting up the mini dfs cluster if the test relies on it.- Parameters:
subdirName- name of the subdir to create under the base test dir- Returns:
- a unique path in the test filesystem
- Throws:
IOException
-
setupDataTestDirOnTestFS
Sets up a path in test filesystem to be used by tests. Creates a new directory if not already setup.- Throws:
IOException
-
getNewDataTestDirOnTestFS
Sets up a new path in test filesystem to be used by tests.- Throws:
IOException
-
cleanupDataTestDirOnTestFS
Cleans the test data directory on the test filesystem.- Returns:
- True if we removed the test dirs
- Throws:
IOException
-
cleanupDataTestDirOnTestFS
Cleans a subdirectory under the test data directory on the test filesystem.- Returns:
- True if we removed child
- Throws:
IOException
-
startMiniDFSCluster
Start a minidfscluster.- Parameters:
servers- How many DNs to start.- Returns:
- The mini dfs cluster created.
- Throws:
Exception- See Also:
-
startMiniDFSCluster
Start a minidfscluster. 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.- Parameters:
hosts- hostnames DNs to run on.- Returns:
- The mini dfs cluster created.
- Throws:
Exception- See Also:
-
startMiniDFSCluster
public org.apache.hadoop.hdfs.MiniDFSCluster startMiniDFSCluster(int servers, String[] hosts) throws Exception Start a minidfscluster. Can only create one.- Parameters:
servers- How many DNs to start.hosts- hostnames DNs to run on.- Returns:
- The mini dfs cluster created.
- Throws:
Exception- See Also:
-
setFs
- Throws:
IOException
-
startMiniDFSCluster
public org.apache.hadoop.hdfs.MiniDFSCluster startMiniDFSCluster(int servers, String[] racks, String[] hosts) throws Exception - Throws:
Exception
-
startMiniDFSClusterForTestWAL
public org.apache.hadoop.hdfs.MiniDFSCluster startMiniDFSClusterForTestWAL(int namenodePort) throws IOException - Throws:
IOException
-
createDirsAndSetProperties
This is used before starting HDFS and map-reduce mini-clusters Run something like the below to check for the likes of '/tmp' references -- i.e. references outside of the test data dir -- in the conf.Configuration conf = TEST_UTIL.getConfiguration(); for (Iterator<Map.Entry<String, String>> i = conf.iterator(); i.hasNext();) { Map.Entry<String, String> e = i.next(); assertFalse(e.getKey() + " " + e.getValue(), e.getValue().contains("/tmp")); }- Throws:
IOException
-
isNewVersionBehaviorEnabled
Check whether the tests should assume NEW_VERSION_BEHAVIOR when creating new column families. Default to false. -
isReadShortCircuitOn
Get the HBase setting for dfs.client.read.shortcircuit from the conf or a system property. This allows to specify this parameter on the command line. If not set, default is true. -
enableShortCircuit
Enable the short circuit read, unless configured differently. Set both HBase and HDFS settings, including skipping the hdfs checksum checks. -
createDirAndSetProperty
-
createDirAndSetProperty
-
shutdownMiniDFSCluster
Shuts down instance created by call tostartMiniDFSCluster(int)or does nothing.- Throws:
IOException
-
startMiniCluster
Start up a minicluster of hbase, dfs and zookeeper clusters with given slave node number. All other options will use default values, defined inStartTestingClusterOption.Builder.- Parameters:
numSlaves- slave node number, for both HBase region server and HDFS data node.- Throws:
Exception- See Also:
-
startMiniCluster
Start up a minicluster of hbase, dfs and zookeeper all using default options. Option default value can be found inStartTestingClusterOption.Builder. -
startMiniCluster
public SingleProcessHBaseCluster startMiniCluster(StartTestingClusterOption option) throws Exception Start up a mini cluster of hbase, optionally dfs and zookeeper if needed. It modifies Configuration. It homes the cluster data directory under a random subdirectory in a directory under System property test.build.data, to be cleaned up on exit.- Throws:
Exception- See Also:
-
startMiniHBaseCluster
public SingleProcessHBaseCluster startMiniHBaseCluster(StartTestingClusterOption option) throws IOException, InterruptedException Starts up mini hbase cluster. Usually you won't want this. You'll usually wantstartMiniCluster(). This is useful when doing stepped startup of clusters.- Returns:
- Reference to the hbase mini hbase cluster.
- Throws:
IOExceptionInterruptedException- See Also:
-
startMiniHBaseCluster
Starts up mini hbase cluster using default options. Default options can be found inStartTestingClusterOption.Builder. -
startMiniHBaseCluster
@Deprecated public SingleProcessHBaseCluster startMiniHBaseCluster(int numMasters, int numRegionServers) throws IOException, InterruptedException Deprecated.since 2.2.0 and will be removed in 4.0.0. UsestartMiniHBaseCluster(StartTestingClusterOption)instead.Starts up mini hbase cluster. Usually you won't want this. You'll usually wantstartMiniCluster(). All other options will use default values, defined inStartTestingClusterOption.Builder.- Parameters:
numMasters- Master node number.numRegionServers- Number of region servers.- Returns:
- The mini HBase cluster created.
- Throws:
IOExceptionInterruptedException- See Also:
-
startMiniHBaseCluster
@Deprecated public SingleProcessHBaseCluster startMiniHBaseCluster(int numMasters, int numRegionServers, List<Integer> rsPorts) throws IOException, InterruptedException Deprecated.since 2.2.0 and will be removed in 4.0.0. UsestartMiniHBaseCluster(StartTestingClusterOption)instead.Starts up mini hbase cluster. Usually you won't want this. You'll usually wantstartMiniCluster(). All other options will use default values, defined inStartTestingClusterOption.Builder.- Parameters:
numMasters- Master node number.numRegionServers- Number of region servers.rsPorts- Ports that RegionServer should use.- Returns:
- The mini HBase cluster created.
- Throws:
IOExceptionInterruptedException- See Also:
-
startMiniHBaseCluster
@Deprecated public SingleProcessHBaseCluster startMiniHBaseCluster(int numMasters, int numRegionServers, List<Integer> rsPorts, Class<? extends org.apache.hadoop.hbase.master.HMaster> masterClass, Class<? extends SingleProcessHBaseCluster.MiniHBaseClusterRegionServer> rsClass, boolean createRootDir, boolean createWALDir) throws IOException, InterruptedException Deprecated.since 2.2.0 and will be removed in 4.0.0. UsestartMiniHBaseCluster(StartTestingClusterOption)instead.Starts up mini hbase cluster. Usually you won't want this. You'll usually wantstartMiniCluster(). All other options will use default values, defined inStartTestingClusterOption.Builder.- Parameters:
numMasters- Master node number.numRegionServers- Number of region servers.rsPorts- Ports that RegionServer should use.masterClass- The class to use as HMaster, or null for default.rsClass- The class to use as HRegionServer, or null for default.createRootDir- Whether to create a new root or data directory path.createWALDir- Whether to create a new WAL directory.- Returns:
- The mini HBase cluster created.
- Throws:
IOExceptionInterruptedException- See Also:
-
restartHBaseCluster
Starts the hbase cluster up again after shutting it down previously in a test. Use this if you want to keep dfs/zk up and just stop/start hbase.- Parameters:
servers- number of region servers- Throws:
IOExceptionInterruptedException
-
restartHBaseCluster
public void restartHBaseCluster(int servers, List<Integer> ports) throws IOException, InterruptedException - Throws:
IOExceptionInterruptedException
-
restartHBaseCluster
public void restartHBaseCluster(StartTestingClusterOption option) throws IOException, InterruptedException - Throws:
IOExceptionInterruptedException
-
getMiniHBaseCluster
Returns current mini hbase cluster. Only has something in it after a call tostartMiniCluster().- See Also:
-
shutdownMiniCluster
Stops mini hbase, zk, and hdfs clusters.- Throws:
IOException- See Also:
-
shutdownMiniHBaseCluster
Shutdown HBase mini cluster.Does not shutdown zk or dfs if running.- Throws:
IOException- in case command is unsuccessful
-
killMiniHBaseCluster
Abruptly Shutdown HBase mini cluster. Does not shutdown zk or dfs if running.- Throws:
IOException- throws in case command is unsuccessful
-
cleanup
- Throws:
IOException
-
getDefaultRootDirPath
Returns the path to the default root dir the minicluster uses. Ifcreateis 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.- Returns:
- Fully qualified path for the default hbase root dir
- Throws:
IOException
-
getDefaultRootDirPath
Same as {getDefaultRootDirPath(boolean create)except thatcreateflag is false. Note: this does not cause the root dir to be created.- Returns:
- Fully qualified path for the default hbase root dir
- Throws:
IOException
-
createRootDir
Creates an hbase rootdir in user home directory. Also creates hbase version file. Normally you won't make use of this method. Root hbasedir is created for you as part of mini cluster startup. You'd only use this method if you were doing manual operation.- Parameters:
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 overwritten- Returns:
- Fully qualified path to hbase root dir
- Throws:
IOException
-
createRootDir
Same ascreateRootDir(boolean create)except thatcreateflag is false.- Returns:
- Fully qualified path to hbase root dir
- Throws:
IOException
-
createWALRootDir
Creates a hbase walDir in the user's home directory. Normally you won't make use of this method. Root hbaseWALDir is created for you as part of mini cluster startup. You'd only use this method if you were doing manual operation.- Returns:
- Fully qualified path to hbase root dir
- Throws:
IOException
-
setHBaseFsTmpDir
- Throws:
IOException
-
flush
Flushes all caches in the mini hbase cluster- Throws:
IOException
-
flush
Flushes all caches in the mini hbase cluster- Throws:
IOException
-
compact
Compact all regions in the mini hbase cluster- Throws:
IOException
-
compact
Compact all of a table's reagion in the mini hbase cluster- Throws:
IOException
-
createTable
public org.apache.hadoop.hbase.client.Table createTable(org.apache.hadoop.hbase.TableName tableName, String family) throws IOException Create a table.- Returns:
- A Table instance for the created table.
- Throws:
IOException
-
createTable
public org.apache.hadoop.hbase.client.Table createTable(org.apache.hadoop.hbase.TableName tableName, String[] families) throws IOException Create a table.- Returns:
- A Table instance for the created table.
- Throws:
IOException
-
createTable
public org.apache.hadoop.hbase.client.Table createTable(org.apache.hadoop.hbase.TableName tableName, byte[] family) throws IOException Create a table.- Returns:
- A Table instance for the created table.
- Throws:
IOException
-
createMultiRegionTable
public org.apache.hadoop.hbase.client.Table createMultiRegionTable(org.apache.hadoop.hbase.TableName tableName, byte[] family, int numRegions) throws IOException Create a table with multiple regions.- Returns:
- A Table instance for the created table.
- Throws:
IOException
-
createTable
public org.apache.hadoop.hbase.client.Table createTable(org.apache.hadoop.hbase.TableName tableName, byte[][] families) throws IOException Create a table.- Returns:
- A Table instance for the created table.
- Throws:
IOException
-
createMultiRegionTable
public org.apache.hadoop.hbase.client.Table createMultiRegionTable(org.apache.hadoop.hbase.TableName tableName, byte[][] families) throws IOException Create a table with multiple regions.- Returns:
- A Table instance for the created table.
- Throws:
IOException
-
createMultiRegionTable
public org.apache.hadoop.hbase.client.Table createMultiRegionTable(org.apache.hadoop.hbase.TableName tableName, int replicaCount, byte[][] families) throws IOException Create a table with multiple regions.- Parameters:
replicaCount- replica count.- Returns:
- A Table instance for the created table.
- Throws:
IOException
-
createTable
public org.apache.hadoop.hbase.client.Table createTable(org.apache.hadoop.hbase.TableName tableName, byte[][] families, byte[][] splitKeys) throws IOException Create a table.- Returns:
- A Table instance for the created table.
- Throws:
IOException
-
createTable
public org.apache.hadoop.hbase.client.Table createTable(org.apache.hadoop.hbase.TableName tableName, byte[][] families, byte[][] splitKeys, int replicaCount) throws IOException Create a table.- Parameters:
tableName- the table namefamilies- the familiessplitKeys- the splitkeysreplicaCount- the region replica count- Returns:
- A Table instance for the created table.
- Throws:
IOException- throws IOException
-
createTable
public org.apache.hadoop.hbase.client.Table createTable(org.apache.hadoop.hbase.TableName tableName, byte[][] families, int numVersions, byte[] startKey, byte[] endKey, int numRegions) throws IOException - Throws:
IOException
-
createTable
public org.apache.hadoop.hbase.client.Table createTable(org.apache.hadoop.hbase.client.TableDescriptor htd, byte[][] families, org.apache.hadoop.conf.Configuration c) throws IOException Create a table.- Parameters:
c- Configuration to use- Returns:
- A Table instance for the created table.
- Throws:
IOException
-
createTable
public org.apache.hadoop.hbase.client.Table createTable(org.apache.hadoop.hbase.client.TableDescriptor htd, byte[][] families, byte[][] splitKeys, org.apache.hadoop.conf.Configuration c) throws IOException Create a table.- Parameters:
htd- table descriptorfamilies- array of column familiessplitKeys- array of split keysc- Configuration to use- Returns:
- A Table instance for the created table.
- Throws:
IOException- if getAdmin or createTable fails
-
createTable
public org.apache.hadoop.hbase.client.Table createTable(org.apache.hadoop.hbase.client.TableDescriptor htd, byte[][] families, byte[][] splitKeys, org.apache.hadoop.hbase.regionserver.BloomType type, int blockSize, org.apache.hadoop.conf.Configuration c) throws IOException Create a table.- Parameters:
htd- table descriptorfamilies- array of column familiessplitKeys- array of split keystype- Bloom typeblockSize- block sizec- Configuration to use- Returns:
- A Table instance for the created table.
- Throws:
IOException- if getAdmin or createTable fails
-
createTable
public org.apache.hadoop.hbase.client.Table createTable(org.apache.hadoop.hbase.client.TableDescriptor htd, byte[][] splitRows) throws IOException Create a table.- Parameters:
htd- table descriptorsplitRows- array of split keys- Returns:
- A Table instance for the created table.
- Throws:
IOException
-
createTable
public org.apache.hadoop.hbase.client.Table createTable(org.apache.hadoop.hbase.TableName tableName, byte[][] families, byte[][] splitKeys, int replicaCount, org.apache.hadoop.conf.Configuration c) throws IOException Create a table.- Parameters:
tableName- the table namefamilies- the familiessplitKeys- the split keysreplicaCount- the replica countc- Configuration to use- Returns:
- A Table instance for the created table.
- Throws:
IOException
-
createTable
public org.apache.hadoop.hbase.client.Table createTable(org.apache.hadoop.hbase.TableName tableName, byte[] family, int numVersions) throws IOException Create a table.- Returns:
- A Table instance for the created table.
- Throws:
IOException
-
createTable
public org.apache.hadoop.hbase.client.Table createTable(org.apache.hadoop.hbase.TableName tableName, byte[][] families, int numVersions) throws IOException Create a table.- Returns:
- A Table instance for the created table.
- Throws:
IOException
-
createTable
public org.apache.hadoop.hbase.client.Table createTable(org.apache.hadoop.hbase.TableName tableName, byte[][] families, int numVersions, byte[][] splitKeys) throws IOException Create a table.- Returns:
- A Table instance for the created table.
- Throws:
IOException
-
createMultiRegionTable
public org.apache.hadoop.hbase.client.Table createMultiRegionTable(org.apache.hadoop.hbase.TableName tableName, byte[][] families, int numVersions) throws IOException Create a table with multiple regions.- Returns:
- A Table instance for the created table.
- Throws:
IOException
-
createTable
public org.apache.hadoop.hbase.client.Table createTable(org.apache.hadoop.hbase.TableName tableName, byte[][] families, int numVersions, int blockSize) throws IOException Create a table.- Returns:
- A Table instance for the created table.
- Throws:
IOException
-
createTable
public org.apache.hadoop.hbase.client.Table createTable(org.apache.hadoop.hbase.TableName tableName, byte[][] families, int numVersions, int blockSize, String cpName) throws IOException - Throws:
IOException
-
createTable
public org.apache.hadoop.hbase.client.Table createTable(org.apache.hadoop.hbase.TableName tableName, byte[][] families, int[] numVersions) throws IOException Create a table.- Returns:
- A Table instance for the created table.
- Throws:
IOException
-
createTable
public org.apache.hadoop.hbase.client.Table createTable(org.apache.hadoop.hbase.TableName tableName, byte[] family, byte[][] splitRows) throws IOException Create a table.- Returns:
- A Table instance for the created table.
- Throws:
IOException
-
createMultiRegionTable
public org.apache.hadoop.hbase.client.Table createMultiRegionTable(org.apache.hadoop.hbase.TableName tableName, byte[] family) throws IOException Create a table with multiple regions.- Returns:
- A Table instance for the created table.
- Throws:
IOException
-
setReplicas
public static void setReplicas(org.apache.hadoop.hbase.client.Admin admin, org.apache.hadoop.hbase.TableName table, int replicaCount) throws IOException, InterruptedException Set the number of Region replicas.- Throws:
IOExceptionInterruptedException
-
setReplicas
public static void setReplicas(org.apache.hadoop.hbase.client.AsyncAdmin admin, org.apache.hadoop.hbase.TableName table, int replicaCount) throws ExecutionException, IOException, InterruptedException Set the number of Region replicas. -
deleteTable
Drop an existing table- Parameters:
tableName- existing table- Throws:
IOException
-
deleteTableIfAny
Drop an existing table- Parameters:
tableName- existing table- Throws:
IOException
-
createModifyableTableDescriptor
public org.apache.hadoop.hbase.client.TableDescriptorBuilder createModifyableTableDescriptor(String name) -
createTableDescriptor
public org.apache.hadoop.hbase.client.TableDescriptor createTableDescriptor(org.apache.hadoop.hbase.TableName name, int minVersions, int versions, int ttl, org.apache.hadoop.hbase.KeepDeletedCells keepDeleted) -
createModifyableTableDescriptor
public org.apache.hadoop.hbase.client.TableDescriptorBuilder createModifyableTableDescriptor(org.apache.hadoop.hbase.TableName name, int minVersions, int versions, int ttl, org.apache.hadoop.hbase.KeepDeletedCells keepDeleted) -
createTableDescriptor
public org.apache.hadoop.hbase.client.TableDescriptor createTableDescriptor(org.apache.hadoop.hbase.TableName name) Create a table of namename.- Parameters:
name- Name to give table.- Returns:
- Column descriptor.
-
createTableDescriptor
public org.apache.hadoop.hbase.client.TableDescriptor createTableDescriptor(org.apache.hadoop.hbase.TableName tableName, byte[] family) -
createTableDescriptor
public org.apache.hadoop.hbase.client.TableDescriptor createTableDescriptor(org.apache.hadoop.hbase.TableName tableName, byte[][] families, int maxVersions) -
createLocalHRegion
public org.apache.hadoop.hbase.regionserver.HRegion createLocalHRegion(org.apache.hadoop.hbase.client.TableDescriptor desc, byte[] startKey, byte[] endKey) throws IOException Create an HRegion that writes to the local tmp dirs- Parameters:
desc- a table descriptor indicating which table the region belongs tostartKey- the start boundary of the regionendKey- the end boundary of the region- Returns:
- a region that writes to local dir for testing
- Throws:
IOException
-
createLocalHRegion
public org.apache.hadoop.hbase.regionserver.HRegion createLocalHRegion(org.apache.hadoop.hbase.client.RegionInfo info, org.apache.hadoop.hbase.client.TableDescriptor desc) throws IOException Create an HRegion that writes to the local tmp dirs. Creates the WAL for you. Be sure to callcloseRegionAndWAL(HRegion)when you're finished with it.- Throws:
IOException
-
createLocalHRegion
public org.apache.hadoop.hbase.regionserver.HRegion createLocalHRegion(org.apache.hadoop.hbase.client.RegionInfo info, org.apache.hadoop.conf.Configuration conf, org.apache.hadoop.hbase.client.TableDescriptor desc, org.apache.hadoop.hbase.wal.WAL wal) throws IOException Create an HRegion that writes to the local tmp dirs with specified wal- Parameters:
info- regioninfoconf- configurationdesc- table descriptorwal- wal for this region.- Returns:
- created hregion
- Throws:
IOException
-
createLocalHRegion
public org.apache.hadoop.hbase.regionserver.HRegion createLocalHRegion(org.apache.hadoop.hbase.TableName tableName, byte[] startKey, byte[] stopKey, org.apache.hadoop.conf.Configuration conf, boolean isReadOnly, org.apache.hadoop.hbase.client.Durability durability, org.apache.hadoop.hbase.wal.WAL wal, byte[]... families) throws IOException - Returns:
- A region on which you must call
closeRegionAndWAL(HRegion)when done. - Throws:
IOException
-
createLocalHRegionWithInMemoryFlags
public org.apache.hadoop.hbase.regionserver.HRegion createLocalHRegionWithInMemoryFlags(org.apache.hadoop.hbase.TableName tableName, byte[] startKey, byte[] stopKey, org.apache.hadoop.conf.Configuration conf, boolean isReadOnly, org.apache.hadoop.hbase.client.Durability durability, org.apache.hadoop.hbase.wal.WAL wal, boolean[] compactedMemStore, byte[]... families) throws IOException - Throws:
IOException
-
deleteTableData
public org.apache.hadoop.hbase.client.Table deleteTableData(org.apache.hadoop.hbase.TableName tableName) throws IOException Provide an existing table name to truncate. Scans the table and issues a delete for each row read.- Parameters:
tableName- existing table- Returns:
- HTable to that new table
- Throws:
IOException
-
truncateTable
public org.apache.hadoop.hbase.client.Table truncateTable(org.apache.hadoop.hbase.TableName tableName, boolean preserveRegions) throws IOException Truncate a table using the admin command. Effectively disables, deletes, and recreates the table.- Parameters:
tableName- table which must exist.preserveRegions- keep the existing split points- Returns:
- HTable for the new table
- Throws:
IOException
-
truncateTable
public org.apache.hadoop.hbase.client.Table truncateTable(org.apache.hadoop.hbase.TableName tableName) throws IOException Truncate a table using the admin command. Effectively disables, deletes, and recreates the table. For previous behavior of issuing row deletes, see deleteTableData. Expressly does not preserve regions of existing table.- Parameters:
tableName- table which must exist.- Returns:
- HTable for the new table
- Throws:
IOException
-
loadTable
Load table with rows from 'aaa' to 'zzz'.- Parameters:
t- Tablef- Family- Returns:
- Count of rows loaded.
- Throws:
IOException
-
loadTable
public int loadTable(org.apache.hadoop.hbase.client.Table t, byte[] f, boolean writeToWAL) throws IOException Load table with rows from 'aaa' to 'zzz'.- Parameters:
t- Tablef- Family- Returns:
- Count of rows loaded.
- Throws:
IOException
-
loadTable
Load table of multiple column families with rows from 'aaa' to 'zzz'.- Parameters:
t- Tablef- Array of Families to load- Returns:
- Count of rows loaded.
- Throws:
IOException
-
loadTable
public int loadTable(org.apache.hadoop.hbase.client.Table t, byte[][] f, byte[] value) throws IOException Load table of multiple column families with rows from 'aaa' to 'zzz'.- Parameters:
t- Tablef- Array of Families to loadvalue- the values of the cells. If null is passed, the row key is used as value- Returns:
- Count of rows loaded.
- Throws:
IOException
-
loadTable
public int loadTable(org.apache.hadoop.hbase.client.Table t, byte[][] f, byte[] value, boolean writeToWAL) throws IOException Load table of multiple column families with rows from 'aaa' to 'zzz'.- Parameters:
t- Tablef- Array of Families to loadvalue- the values of the cells. If null is passed, the row key is used as value- Returns:
- Count of rows loaded.
- Throws:
IOException
-
loadRegion
- Throws:
IOException
-
loadRegion
- Throws:
IOException
-
loadRegion
public int loadRegion(org.apache.hadoop.hbase.regionserver.HRegion r, byte[] f, boolean flush) throws IOException Load region with rows from 'aaa' to 'zzz'.- Parameters:
r- Regionf- Familyflush- flush the cache if true- Returns:
- Count of rows loaded.
- Throws:
IOException
-
loadNumericRows
public void loadNumericRows(org.apache.hadoop.hbase.client.Table t, byte[] f, int startRow, int endRow) throws IOException - Throws:
IOException
-
loadRandomRows
public void loadRandomRows(org.apache.hadoop.hbase.client.Table t, byte[] f, int rowSize, int totalRows) throws IOException - Throws:
IOException
-
verifyNumericRows
public void verifyNumericRows(org.apache.hadoop.hbase.client.Table table, byte[] f, int startRow, int endRow, int replicaId) throws IOException - Throws:
IOException
-
verifyNumericRows
public void verifyNumericRows(org.apache.hadoop.hbase.regionserver.Region region, byte[] f, int startRow, int endRow) throws IOException - Throws:
IOException
-
verifyNumericRows
public void verifyNumericRows(org.apache.hadoop.hbase.regionserver.HRegion region, byte[] f, int startRow, int endRow) throws IOException - Throws:
IOException
-
verifyNumericRows
public void verifyNumericRows(org.apache.hadoop.hbase.regionserver.Region region, byte[] f, int startRow, int endRow, boolean present) throws IOException - Throws:
IOException
-
verifyNumericRows
public void verifyNumericRows(org.apache.hadoop.hbase.regionserver.HRegion region, byte[] f, int startRow, int endRow, boolean present) throws IOException - Throws:
IOException
-
deleteNumericRows
public void deleteNumericRows(org.apache.hadoop.hbase.client.Table t, byte[] f, int startRow, int endRow) throws IOException - Throws:
IOException
-
countRows
Return the number of rows in the given table.- Parameters:
table- to count rows- Returns:
- count of rows
- Throws:
IOException
-
countRows
public static int countRows(org.apache.hadoop.hbase.client.Table table, org.apache.hadoop.hbase.client.Scan scan) throws IOException - Throws:
IOException
-
countRows
public static int countRows(org.apache.hadoop.hbase.client.Table table, byte[]... families) throws IOException - Throws:
IOException
-
countRows
Return the number of rows in the given table.- Throws:
IOException
-
countRows
- Throws:
IOException
-
countRows
public static int countRows(org.apache.hadoop.hbase.regionserver.Region region, org.apache.hadoop.hbase.client.Scan scan) throws IOException - Throws:
IOException
-
countRows
public static int countRows(org.apache.hadoop.hbase.regionserver.InternalScanner scanner) throws IOException - Throws:
IOException
-
checksumRows
Return an md5 digest of the entire contents of a table.- Throws:
Exception
-
createMultiRegionsInMeta
public List<org.apache.hadoop.hbase.client.RegionInfo> createMultiRegionsInMeta(org.apache.hadoop.conf.Configuration conf, org.apache.hadoop.hbase.client.TableDescriptor htd, byte[][] startKeys) throws IOException Create rows in hbase:meta for regions of the specified table with the specified start keys. The first startKey should be a 0 length byte array if you want to form a proper range of regions.- Returns:
- list of region info for regions added to meta
- Throws:
IOException
-
createWal
public static org.apache.hadoop.hbase.wal.WAL createWal(org.apache.hadoop.conf.Configuration conf, org.apache.hadoop.fs.Path rootDir, org.apache.hadoop.hbase.client.RegionInfo hri) throws IOException Create an unmanaged WAL. Be sure to close it when you're through.- Throws:
IOException
-
createRegionAndWAL
public static org.apache.hadoop.hbase.regionserver.HRegion createRegionAndWAL(org.apache.hadoop.hbase.client.RegionInfo info, org.apache.hadoop.fs.Path rootDir, org.apache.hadoop.conf.Configuration conf, org.apache.hadoop.hbase.client.TableDescriptor htd) throws IOException Create a region with it's own WAL. Be sure to callcloseRegionAndWAL(HRegion)to clean up all resources.- Throws:
IOException
-
createRegionAndWAL
public static org.apache.hadoop.hbase.regionserver.HRegion createRegionAndWAL(org.apache.hadoop.hbase.client.RegionInfo info, org.apache.hadoop.fs.Path rootDir, org.apache.hadoop.conf.Configuration conf, org.apache.hadoop.hbase.client.TableDescriptor htd, org.apache.hadoop.hbase.io.hfile.BlockCache blockCache) throws IOException Create a region with it's own WAL. Be sure to callcloseRegionAndWAL(HRegion)to clean up all resources.- Throws:
IOException
-
createRegionAndWAL
public static org.apache.hadoop.hbase.regionserver.HRegion createRegionAndWAL(org.apache.hadoop.hbase.client.RegionInfo info, org.apache.hadoop.fs.Path rootDir, org.apache.hadoop.conf.Configuration conf, org.apache.hadoop.hbase.client.TableDescriptor htd, org.apache.hadoop.hbase.mob.MobFileCache mobFileCache) throws IOException Create a region with it's own WAL. Be sure to callcloseRegionAndWAL(HRegion)to clean up all resources.- Throws:
IOException
-
createRegionAndWAL
public static org.apache.hadoop.hbase.regionserver.HRegion createRegionAndWAL(org.apache.hadoop.hbase.client.RegionInfo info, org.apache.hadoop.fs.Path rootDir, org.apache.hadoop.conf.Configuration conf, org.apache.hadoop.hbase.client.TableDescriptor htd, boolean initialize) throws IOException Create a region with it's own WAL. Be sure to callcloseRegionAndWAL(HRegion)to clean up all resources.- Throws:
IOException
-
getOtherRegionServer
public org.apache.hadoop.hbase.regionserver.HRegionServer getOtherRegionServer(org.apache.hadoop.hbase.regionserver.HRegionServer rs) Find any other region server which is different from the one identified by parameter- Returns:
- another region server
-
getRSForFirstRegionInTable
public org.apache.hadoop.hbase.regionserver.HRegionServer getRSForFirstRegionInTable(org.apache.hadoop.hbase.TableName tableName) throws IOException, InterruptedException Tool to get the reference to the region server object that holds the region of the specified user table.- Parameters:
tableName- user table to lookup in hbase:meta- Returns:
- region server that holds it, null if the row doesn't exist
- Throws:
IOExceptionInterruptedException
-
startMiniMapReduceCluster
Starts aMiniMRClusterwith a default number ofTaskTracker's. MiniMRCluster caches hadoop.log.dir when first started. It is not possible to start multiple MiniMRCluster instances with different log dirs.- Throws:
IOException- When starting the cluster fails.
-
startMiniMapReduceCluster
Starts aMiniMRCluster. CallsetFileSystemURI(String)to use a different filesystem. MiniMRCluster caches hadoop.log.dir when first started. It is not possible to start multiple MiniMRCluster instances with different log dirs.- Parameters:
servers- The number ofTaskTracker's to start.- Throws:
IOException- When starting the cluster fails.
-
shutdownMiniMapReduceCluster
Stops the previously startedMiniMRCluster. -
createMockRegionServerService
public org.apache.hadoop.hbase.regionserver.RegionServerServices createMockRegionServerService() throws IOExceptionCreate a stubbed out RegionServerService, mainly for getting FS.- Throws:
IOException
-
createMockRegionServerService
public org.apache.hadoop.hbase.regionserver.RegionServerServices createMockRegionServerService(org.apache.hadoop.hbase.ipc.RpcServerInterface rpc) throws IOException Create a stubbed out RegionServerService, mainly for getting FS. This version is used by TestTokenAuthentication- Throws:
IOException
-
createMockRegionServerService
public org.apache.hadoop.hbase.regionserver.RegionServerServices createMockRegionServerService(org.apache.hadoop.hbase.ServerName name) throws IOException Create a stubbed out RegionServerService, mainly for getting FS. This version is used by TestOpenRegionHandler- Throws:
IOException
-
expireMasterSession
Expire the Master's session- Throws:
Exception
-
expireRegionServerSession
Expire a region server's session- Parameters:
index- which RS- Throws:
Exception
-
decrementMinRegionServerCount
-
decrementMinRegionServerCount
-
expireSession
- Throws:
Exception
-
expireSession
public void expireSession(org.apache.hadoop.hbase.zookeeper.ZKWatcher nodeZK, boolean checkStatus) throws Exception Expire a ZooKeeper session as recommended in ZooKeeper documentation http://hbase.apache.org/book.html#trouble.zookeeper There are issues when doing this:- http://www.mail-archive.com/dev@zookeeper.apache.org/msg01942.html
- https://issues.apache.org/jira/browse/ZOOKEEPER-1105
- Parameters:
nodeZK- - the ZK watcher to expirecheckStatus- - true to check if we can create a Table with the current configuration.- Throws:
Exception
-
getHBaseCluster
Get the Mini HBase cluster.- Returns:
- hbase cluster
- See Also:
-
getHBaseClusterInterface
Returns the HBaseCluster instance.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. -
invalidateConnection
Resets the connections so that the next time getConnection() is called, a new connection is created. This is needed in cases where the entire cluster / all the masters are shutdown and the connection is not valid anymore. TODO: There should be a more coherent way of doing this. Unfortunately the way tests are written, not all start() stop() calls go through this class. Most tests directly operate on the underlying mini/local hbase cluster. That makes it difficult for this wrapper class to maintain the connection state automatically. Cleaning this is a much bigger refactor.- Throws:
IOException
-
getConnection
Get a shared Connection to the cluster. this method is thread safe.- Returns:
- A Connection that can be shared. Don't close. Will be closed on shutdown of cluster.
- Throws:
IOException
-
getConnection
public org.apache.hadoop.hbase.client.Connection getConnection(org.apache.hadoop.hbase.security.User user) throws IOException Get a assigned Connection to the cluster. this method is thread safe.- Parameters:
user- assigned user- Returns:
- A Connection with assigned user.
- Throws:
IOException
-
getAsyncConnection
public org.apache.hadoop.hbase.client.AsyncClusterConnection getAsyncConnection() throws IOExceptionGet a shared AsyncClusterConnection to the cluster. this method is thread safe.- Returns:
- An AsyncClusterConnection that can be shared. Don't close. Will be closed on shutdown of cluster.
- Throws:
IOException
-
getAsyncConnection
public org.apache.hadoop.hbase.client.AsyncClusterConnection getAsyncConnection(org.apache.hadoop.hbase.security.User user) throws IOException Get a assigned AsyncClusterConnection to the cluster. this method is thread safe.- Parameters:
user- assigned user- Returns:
- An AsyncClusterConnection with assigned user.
- Throws:
IOException
-
closeConnection
- Throws:
IOException
-
getAdmin
Returns an Admin instance which is shared between HBaseTestingUtility instance users. Closing it has no effect, it will be closed automatically when the cluster shutdowns- Throws:
IOException
-
getHbck
Returns anHbckinstance. Needs be closed when done.- Throws:
IOException
-
unassignRegion
Unassign the named region.- Parameters:
regionName- The region to unassign.- Throws:
IOException
-
unassignRegion
Unassign the named region.- Parameters:
regionName- The region to unassign.- Throws:
IOException
-
unassignRegionByRow
public void unassignRegionByRow(String row, org.apache.hadoop.hbase.client.RegionLocator table) throws IOException Closes the region containing the given row.- Parameters:
row- The row to find the containing region.table- The table to find the region.- Throws:
IOException
-
unassignRegionByRow
public void unassignRegionByRow(byte[] row, org.apache.hadoop.hbase.client.RegionLocator table) throws IOException Closes the region containing the given row.- Parameters:
row- The row to find the containing region.table- The table to find the region.- Throws:
IOException
-
getSplittableRegion
public org.apache.hadoop.hbase.regionserver.HRegion getSplittableRegion(org.apache.hadoop.hbase.TableName tableName, int maxAttempts) Retrieves a splittable region randomly from tableName- Parameters:
tableName- name of tablemaxAttempts- maximum number of attempts, unlimited for value of -1- Returns:
- the HRegion chosen, null if none was found within limit of maxAttempts
-
getDFSCluster
-
setDFSCluster
public void setDFSCluster(org.apache.hadoop.hdfs.MiniDFSCluster cluster) throws IllegalStateException, IOException - Throws:
IllegalStateExceptionIOException
-
setDFSCluster
public void setDFSCluster(org.apache.hadoop.hdfs.MiniDFSCluster cluster, boolean requireDown) throws IllegalStateException, IOException Set the MiniDFSCluster- Parameters:
cluster- cluster to userequireDown- require the that cluster not be "up" (MiniDFSCluster#isClusterUp) before it is set.- Throws:
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 cluster
-
getTestFileSystem
- Throws:
IOException
-
waitTableAvailable
public void waitTableAvailable(org.apache.hadoop.hbase.TableName table) throws InterruptedException, IOException Wait until all regions in a table have been assigned. Waits default timeout before giving up (30 seconds).- Parameters:
table- Table to wait on.- Throws:
InterruptedExceptionIOException
-
waitTableAvailable
public void waitTableAvailable(org.apache.hadoop.hbase.TableName table, long timeoutMillis) throws InterruptedException, IOException - Throws:
InterruptedExceptionIOException
-
waitTableAvailable
public void waitTableAvailable(byte[] table, long timeoutMillis) throws InterruptedException, IOException Wait until all regions in a table have been assigned- Parameters:
table- Table to wait on.timeoutMillis- Timeout.- Throws:
InterruptedExceptionIOException
-
explainTableAvailability
public String explainTableAvailability(org.apache.hadoop.hbase.TableName tableName) throws IOException - Throws:
IOException
-
explainTableState
public String explainTableState(org.apache.hadoop.hbase.TableName table, org.apache.hadoop.hbase.client.TableState.State state) throws IOException - Throws:
IOException
-
findLastTableState
@Nullable public org.apache.hadoop.hbase.client.TableState findLastTableState(org.apache.hadoop.hbase.TableName table) throws IOException - Throws:
IOException
-
waitTableEnabled
public void waitTableEnabled(org.apache.hadoop.hbase.TableName table) throws InterruptedException, IOException Waits for a table to be 'enabled'. Enabled means that table is set as 'enabled' and the regions have been all assigned. Will timeout after default period (30 seconds) Tolerates nonexistent table.- Parameters:
table- the table to wait on.- Throws:
InterruptedException- if interrupted while waitingIOException- if an IO problem is encountered
-
waitTableEnabled
public void waitTableEnabled(byte[] table, long timeoutMillis) throws InterruptedException, IOException Waits for a table to be 'enabled'. Enabled means that table is set as 'enabled' and the regions have been all assigned.- Parameters:
table- Table to wait on.timeoutMillis- Time to wait on it being marked enabled.- Throws:
InterruptedExceptionIOException- See Also:
-
waitTableEnabled
public void waitTableEnabled(org.apache.hadoop.hbase.TableName table, long timeoutMillis) throws IOException - Throws:
IOException
-
waitTableDisabled
Waits for a table to be 'disabled'. Disabled means that table is set as 'disabled' Will timeout after default period (30 seconds)- Parameters:
table- Table to wait on.- Throws:
InterruptedExceptionIOException
-
waitTableDisabled
public void waitTableDisabled(org.apache.hadoop.hbase.TableName table, long millisTimeout) throws InterruptedException, IOException - Throws:
InterruptedExceptionIOException
-
waitTableDisabled
public void waitTableDisabled(byte[] table, long timeoutMillis) throws InterruptedException, IOException Waits for a table to be 'disabled'. Disabled means that table is set as 'disabled'- Parameters:
table- Table to wait on.timeoutMillis- Time to wait on it being marked disabled.- Throws:
InterruptedExceptionIOException
-
ensureSomeRegionServersAvailable
Make sure that at least the specified number of region servers are running- Parameters:
num- minimum number of region servers that should be running- Returns:
- true if we started some servers
- Throws:
IOException
-
ensureSomeNonStoppedRegionServersAvailable
Make sure that at least the specified number of region servers are running. We don't count the ones that are currently stopping or are stopped.- Parameters:
num- minimum number of region servers that should be running- Returns:
- true if we started some servers
- Throws:
IOException
-
getDifferentUser
public static org.apache.hadoop.hbase.security.User getDifferentUser(org.apache.hadoop.conf.Configuration c, String differentiatingSuffix) throws IOException This method clones the passedcconfiguration setting a new user into the clone. Use it getting new instances of FileSystem. Only works for DistributedFileSystem w/o Kerberos.- Parameters:
c- Initial configurationdifferentiatingSuffix- Suffix to differentiate this user from others.- Returns:
- A new configuration instance with a different user set into it.
- Throws:
IOException
-
getAllOnlineRegions
public static NavigableSet<String> getAllOnlineRegions(SingleProcessHBaseCluster cluster) throws IOException - Throws:
IOException
-
setMaxRecoveryErrorCount
Set maxRecoveryErrorCount in DFSClient. In 0.20 pre-append its hard-coded to 5 and makes tests linger. Here is the exception you'll see: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...
- Parameters:
stream- A DFSClient.DFSOutputStream.
-
assignRegion
public boolean assignRegion(org.apache.hadoop.hbase.client.RegionInfo regionInfo) throws IOException, InterruptedException Uses directly the assignment manager to assign the region. and waits until the specified region has completed assignment.- Returns:
- true if the region is assigned false otherwise.
- Throws:
IOExceptionInterruptedException
-
moveRegionAndWait
public void moveRegionAndWait(org.apache.hadoop.hbase.client.RegionInfo destRegion, org.apache.hadoop.hbase.ServerName destServer) throws InterruptedException, IOException Move region to destination server and wait till region is completely moved and online- Parameters:
destRegion- region to movedestServer- destination server of the region- Throws:
InterruptedExceptionIOException
-
waitUntilAllRegionsAssigned
public void waitUntilAllRegionsAssigned(org.apache.hadoop.hbase.TableName tableName) throws IOException 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.- Parameters:
tableName- the table name- Throws:
IOException
-
waitUntilAllSystemRegionsAssigned
Waith until all system table's regions get assigned- Throws:
IOException
-
waitUntilAllRegionsAssigned
public void waitUntilAllRegionsAssigned(org.apache.hadoop.hbase.TableName tableName, long timeout) throws IOException Wait until all regions for a table in hbase:meta have a non-empty info:server, or until timeout. This means all regions have been deployed, master has been informed and updated hbase:meta with the regions deployed server.- Parameters:
tableName- the table nametimeout- timeout, in milliseconds- Throws:
IOException
-
getFromStoreFile
public static List<org.apache.hadoop.hbase.Cell> getFromStoreFile(org.apache.hadoop.hbase.regionserver.HStore store, org.apache.hadoop.hbase.client.Get get) throws IOException Do a small get/scan against one store. This is required because store has no actual methods of querying itself, and relies on StoreScanner.- Throws:
IOException
-
getRegionSplitStartKeys
Create region split keys between startkey and endKey- Parameters:
numRegions- the number of regions to be created. it has to be greater than 3.- Returns:
- resulting split keys
-
assertKVListsEqual
public static void assertKVListsEqual(String additionalMsg, List<? extends org.apache.hadoop.hbase.Cell> expected, List<? extends org.apache.hadoop.hbase.Cell> actual) -
safeGetAsStr
-
getRpcConnnectionURI
- Throws:
UnknownHostException
-
getZkConnectionURI
-
getClusterKey
Deprecated.since 2.7.0, will be removed in 4.0.0. Now we use connection uri to specify the connection info of a cluster. Keep here only for compatibility.Get the zk based cluster key for this cluster.- See Also:
-
createRandomTable
public org.apache.hadoop.hbase.client.Table createRandomTable(org.apache.hadoop.hbase.TableName tableName, Collection<String> families, int maxVersions, int numColsPerRow, int numFlushes, int numRegions, int numRowsPerFlush) throws IOException, InterruptedException Creates a random table with the given parameters- Throws:
IOExceptionInterruptedException
-
randomFreePort
-
randomMultiCastAddress
-
waitForHostPort
- Throws:
IOException
-
getMetaRSPort
public static int getMetaRSPort(org.apache.hadoop.hbase.client.Connection connection) throws IOException - Throws:
IOException
-
assertRegionOnServer
public void assertRegionOnServer(org.apache.hadoop.hbase.client.RegionInfo hri, org.apache.hadoop.hbase.ServerName server, long timeout) throws IOException, InterruptedException 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.- Throws:
IOExceptionInterruptedException
-
assertRegionOnlyOnServer
public void assertRegionOnlyOnServer(org.apache.hadoop.hbase.client.RegionInfo hri, org.apache.hadoop.hbase.ServerName server, long timeout) throws IOException, InterruptedException Check to make sure the region is open on the specified region server, but not on any other one.- Throws:
IOExceptionInterruptedException
-
createTestRegion
public org.apache.hadoop.hbase.regionserver.HRegion createTestRegion(String tableName, org.apache.hadoop.hbase.client.ColumnFamilyDescriptor cd) throws IOException - Throws:
IOException
-
createTestRegion
public org.apache.hadoop.hbase.regionserver.HRegion createTestRegion(String tableName, org.apache.hadoop.hbase.client.ColumnFamilyDescriptor cd, org.apache.hadoop.hbase.io.hfile.BlockCache blockCache) throws IOException - Throws:
IOException
-
setFileSystemURI
-
predicateNoRegionsInTransition
Returns aWaiter.Predicatefor checking that there are no regions in transition in master -
predicateTableEnabled
public Waiter.Predicate<IOException> predicateTableEnabled(org.apache.hadoop.hbase.TableName tableName) Returns aWaiter.Predicatefor checking that table is enabled -
predicateTableDisabled
public Waiter.Predicate<IOException> predicateTableDisabled(org.apache.hadoop.hbase.TableName tableName) Returns aWaiter.Predicatefor checking that table is enabled -
predicateTableAvailable
public Waiter.Predicate<IOException> predicateTableAvailable(org.apache.hadoop.hbase.TableName tableName) Returns aWaiter.Predicatefor checking that table is enabled -
waitUntilNoRegionsInTransition
Wait until no regions in transition.- Parameters:
timeout- How long to wait.- Throws:
IOException
-
waitUntilNoRegionsInTransition
Wait until no regions in transition. (time limit 15min)- Throws:
IOException
-
waitLabelAvailable
Wait until labels is ready in VisibilityLabelsCache. -
generateColumnDescriptors
public static List<org.apache.hadoop.hbase.client.ColumnFamilyDescriptor> generateColumnDescriptors()Create a set of column descriptors with the combination of compression, encoding, bloom codecs available.- Returns:
- the list of column descriptors
-
generateColumnDescriptors
public static List<org.apache.hadoop.hbase.client.ColumnFamilyDescriptor> generateColumnDescriptors(String prefix) Create a set of column descriptors with the combination of compression, encoding, bloom codecs available.- Parameters:
prefix- family names prefix- Returns:
- the list of column descriptors
-
getSupportedCompressionAlgorithms
public static org.apache.hadoop.hbase.io.compress.Compression.Algorithm[] getSupportedCompressionAlgorithms()Get supported compression algorithms.- Returns:
- supported compression algorithms.
-
getClosestRowBefore
public org.apache.hadoop.hbase.client.Result getClosestRowBefore(org.apache.hadoop.hbase.regionserver.Region r, byte[] row, byte[] family) throws IOException - Throws:
IOException
-
isTargetTable
-
setupMiniKdc
Sets upMiniKdcfor testing security. UsesHBaseKerberosUtilsto set the given keytab file asHBaseKerberosUtils.KRB_KEYTAB_FILE. FYI, there is also the easier-to-use kerby KDC server and utility for using it,SimpleKdcServerUtil. The kerby KDC server is preferred; less baggage. It came in in HBASE-5291.- Throws:
Exception
-
getNumHFiles
-
getNumHFilesForRS
public int getNumHFilesForRS(org.apache.hadoop.hbase.regionserver.HRegionServer rs, org.apache.hadoop.hbase.TableName tableName, byte[] family) -
verifyTableDescriptorIgnoreTableName
public void verifyTableDescriptorIgnoreTableName(org.apache.hadoop.hbase.client.TableDescriptor ltd, org.apache.hadoop.hbase.client.TableDescriptor rtd) -
await
Await the successful return ofcondition, sleepingsleepMillisbetween invocations.- Throws:
InterruptedException
-