@InterfaceAudience.Public public class RegionMover extends AbstractHBaseTool implements Closeable
load() or unload() methods for the desired operations.| Modifier and Type | Class and Description | 
|---|---|
| static class  | RegionMover.RegionMoverBuilderBuilder for Region mover. | 
AbstractHBaseTool.OptionsOrderComparator| Modifier and Type | Field and Description | 
|---|---|
| private boolean | ack | 
| private Admin | admin | 
| private Connection | conn | 
| static int | DEFAULT_MOVE_RETRIES_MAX | 
| static int | DEFAULT_MOVE_WAIT_MAX | 
| static int | DEFAULT_SERVERSTART_WAIT_MAX | 
| private String | designatedFile | 
| private String | excludeFile | 
| private String | filename | 
| private String | hostname | 
| private String | loadUnload | 
| private static org.slf4j.Logger | LOG | 
| private int | maxthreads | 
| static String | MOVE_RETRIES_MAX_KEY | 
| static String | MOVE_WAIT_MAX_KEY | 
| private int | port | 
| private RegionMover.RegionMoverBuilder | rmbuilder | 
| static String | SERVERSTART_WAIT_MAX_KEY | 
| private int | timeout | 
cmdLineArgs, conf, EXIT_FAILURE, EXIT_SUCCESS, LONG_HELP_OPTION, options, SHORT_HELP_OPTION| Modifier | Constructor and Description | 
|---|---|
| private  | RegionMover() | 
| private  | RegionMover(RegionMover.RegionMoverBuilder builder) | 
| Modifier and Type | Method and Description | 
|---|---|
| protected void | addOptions()Override this to add command-line options using  AbstractHBaseTool.addOptWithArg(java.lang.String, java.lang.String)and similar methods. | 
| void | close() | 
| private void | deleteFile(String filename) | 
| protected int | doWork()The "main function" of the tool | 
| private ServerName | getTargetServer() | 
| private boolean | ignoreRegionMoveFailure(ExecutionException e) | 
| private void | includeExcludeRegionServers(String fileName,
                           List<ServerName> regionServers,
                           boolean isInclude)Designates or excludes the servername whose hostname and port portion matches the list given
 in the file. | 
| boolean | load()Loads the specified  hostnamewith regions listed in thefilenameRegionMover
 Object has to be created usingRegionMover(RegionMoverBuilder) | 
| private void | loadRegions(List<RegionInfo> regionsToMove) | 
| static void | main(String[] args) | 
| protected void | processOptions(org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine cmd)This method is called to process the options after they have been parsed. | 
| private List<RegionInfo> | readRegionsFromFile(String filename) | 
| private List<String> | readServersFromFile(String filename) | 
| private void | stripMaster(List<ServerName> regionServers)Exclude master from list of RSs to move regions to | 
| private ServerName | stripServer(List<ServerName> regionServers,
           String hostname,
           int port)Remove the servername whose hostname and port portion matches from the passed array of servers. | 
| boolean | unload()Unload regions from given  hostnameusing ack/noAck mode andmaxthreads.In
 noAck mode we do not make sure that region is successfully online on the target region
 server,hence it is best effort.We do not unload regions to hostnames given inexcludeFile. | 
| private void | unloadRegions(ServerName server,
             List<ServerName> regionServers,
             List<RegionInfo> movedRegions) | 
| private void | waitMoveTasksToFinish(ExecutorService moveRegionsPool,
                     List<Future<Boolean>> taskList,
                     long timeoutInSeconds) | 
| private boolean | waitTaskToFinish(ExecutorService pool,
                Future<Boolean> task,
                String operation) | 
| private void | writeFile(String filename,
         List<RegionInfo> movedRegions)Write the number of regions moved in the first line followed by regions moved in subsequent
 lines | 
addOption, addOptNoArg, addOptNoArg, addOptWithArg, addOptWithArg, addRequiredOption, addRequiredOptWithArg, addRequiredOptWithArg, doStaticMain, getConf, getOptionAsDouble, getOptionAsInt, getOptionAsLong, newParser, parseArgs, parseInt, parseLong, printUsage, printUsage, processOldArgs, run, setConfpublic static final String MOVE_RETRIES_MAX_KEY
public static final String MOVE_WAIT_MAX_KEY
public static final String SERVERSTART_WAIT_MAX_KEY
public static final int DEFAULT_MOVE_RETRIES_MAX
public static final int DEFAULT_MOVE_WAIT_MAX
public static final int DEFAULT_SERVERSTART_WAIT_MAX
private static final org.slf4j.Logger LOG
private RegionMover.RegionMoverBuilder rmbuilder
private boolean ack
private int maxthreads
private int timeout
private String loadUnload
private String excludeFile
private String designatedFile
private int port
private Connection conn
private RegionMover(RegionMover.RegionMoverBuilder builder) throws IOException
IOExceptionprivate RegionMover()
public void close()
close in interface Closeableclose in interface AutoCloseablepublic boolean load() throws ExecutionException, InterruptedException, TimeoutException
hostname with regions listed in the filename RegionMover
 Object has to be created using RegionMover(RegionMoverBuilder)ExecutionExceptionInterruptedExceptionTimeoutExceptionprivate void loadRegions(List<RegionInfo> regionsToMove) throws Exception
Exceptionpublic boolean unload() throws InterruptedException, ExecutionException, TimeoutException
hostname using ack/noAck mode and maxthreads.In
 noAck mode we do not make sure that region is successfully online on the target region
 server,hence it is best effort.We do not unload regions to hostnames given in
 excludeFile. If designatedFile is present with some contents, we will unload regions
 to hostnames provided in designatedFileInterruptedExceptionExecutionExceptionTimeoutExceptionprivate void unloadRegions(ServerName server, List<ServerName> regionServers, List<RegionInfo> movedRegions) throws Exception
Exceptionprivate boolean waitTaskToFinish(ExecutorService pool, Future<Boolean> task, String operation) throws TimeoutException, InterruptedException, ExecutionException
private void waitMoveTasksToFinish(ExecutorService moveRegionsPool, List<Future<Boolean>> taskList, long timeoutInSeconds) throws Exception
Exceptionprivate boolean ignoreRegionMoveFailure(ExecutionException e)
private ServerName getTargetServer() throws Exception
Exceptionprivate List<RegionInfo> readRegionsFromFile(String filename) throws IOException
IOExceptionprivate void writeFile(String filename, List<RegionInfo> movedRegions) throws IOException
IOExceptionprivate void deleteFile(String filename)
private List<String> readServersFromFile(String filename) throws IOException
filename - The file should have 'host:port' per lineIOExceptionprivate void includeExcludeRegionServers(String fileName, List<ServerName> regionServers, boolean isInclude) throws IOException
IOExceptionprivate void stripMaster(List<ServerName> regionServers) throws IOException
IOExceptionprivate ServerName stripServer(List<ServerName> regionServers, String hostname, int port)
protected void addOptions()
AbstractHBaseToolAbstractHBaseTool.addOptWithArg(java.lang.String, java.lang.String)
 and similar methods.addOptions in class AbstractHBaseToolprotected void processOptions(org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine cmd)
AbstractHBaseToolprocessOptions in class AbstractHBaseToolprotected int doWork() throws Exception
AbstractHBaseTooldoWork in class AbstractHBaseToolExceptionCopyright © 2007–2021 The Apache Software Foundation. All rights reserved.