You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ja...@apache.org on 2018/01/28 12:51:56 UTC
[3/3] hbase git commit: HBASE-19765 Fixed Checkstyle errors in
hbase-backup
HBASE-19765 Fixed Checkstyle errors in hbase-backup
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/c2236b77
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/c2236b77
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/c2236b77
Branch: refs/heads/master
Commit: c2236b77cb04cf7b92576113a7c9b87b244ff2e4
Parents: f1502a3
Author: Jan Hentschel <ja...@ultratendency.com>
Authored: Sat Jan 27 02:07:52 2018 +0100
Committer: Jan Hentschel <ja...@ultratendency.com>
Committed: Sun Jan 28 13:45:45 2018 +0100
----------------------------------------------------------------------
.../hbase/backup/BackupClientFactory.java | 9 +-
.../hadoop/hbase/backup/BackupCopyJob.java | 3 +-
.../hadoop/hbase/backup/BackupHFileCleaner.java | 36 ++--
.../apache/hadoop/hbase/backup/BackupInfo.java | 27 ++-
.../hadoop/hbase/backup/BackupMergeJob.java | 6 +-
.../hbase/backup/BackupRestoreConstants.java | 124 ++++++-----
.../hbase/backup/BackupRestoreFactory.java | 3 +-
.../hadoop/hbase/backup/BackupTableInfo.java | 5 +-
.../hadoop/hbase/backup/HBackupFileSystem.java | 6 +-
.../apache/hadoop/hbase/backup/LogUtils.java | 3 +-
.../hadoop/hbase/backup/RestoreDriver.java | 22 +-
.../apache/hadoop/hbase/backup/RestoreJob.java | 3 +-
.../hadoop/hbase/backup/RestoreRequest.java | 4 +-
.../hbase/backup/impl/BackupAdminImpl.java | 158 ++++++--------
.../hbase/backup/impl/BackupCommands.java | 205 ++++++++++---------
.../hadoop/hbase/backup/impl/BackupManager.java | 28 +--
.../hbase/backup/impl/BackupManifest.java | 44 ++--
.../hbase/backup/impl/BackupSystemTable.java | 146 ++++++-------
.../backup/impl/FullTableBackupClient.java | 26 ++-
.../backup/impl/IncrementalBackupManager.java | 37 ++--
.../impl/IncrementalTableBackupClient.java | 47 ++---
.../hbase/backup/impl/RestoreTablesClient.java | 37 ++--
.../hbase/backup/impl/TableBackupClient.java | 35 ++--
.../mapreduce/MapReduceBackupMergeJob.java | 43 ++--
.../mapreduce/MapReduceHFileSplitterJob.java | 2 +-
.../backup/mapreduce/MapReduceRestoreJob.java | 23 +--
.../hbase/backup/master/BackupLogCleaner.java | 11 +-
.../master/LogRollMasterProcedureManager.java | 20 +-
.../regionserver/LogRollBackupSubprocedure.java | 13 +-
.../LogRollBackupSubprocedurePool.java | 8 +-
.../LogRollRegionServerProcedureManager.java | 7 +-
.../hadoop/hbase/backup/util/BackupUtils.java | 108 +++++-----
.../hadoop/hbase/backup/util/RestoreTool.java | 49 ++---
.../hadoop/hbase/backup/TestBackupBase.java | 54 +++--
.../hbase/backup/TestBackupBoundaryTests.java | 19 +-
.../hadoop/hbase/backup/TestBackupDelete.java | 12 +-
.../hbase/backup/TestBackupDeleteRestore.java | 5 +-
.../backup/TestBackupDeleteWithFailures.java | 47 ++---
.../hadoop/hbase/backup/TestBackupDescribe.java | 10 +-
.../hbase/backup/TestBackupHFileCleaner.java | 12 +-
.../hbase/backup/TestBackupShowHistory.java | 35 ++--
.../hbase/backup/TestBackupStatusProgress.java | 7 +-
.../hbase/backup/TestBackupSystemTable.java | 16 +-
.../hadoop/hbase/backup/TestFullBackupSet.java | 10 +-
.../hadoop/hbase/backup/TestFullRestore.java | 53 +++--
.../TestIncrementalBackupMergeWithFailures.java | 33 +--
.../TestIncrementalBackupWithBulkLoad.java | 20 +-
.../hadoop/hbase/backup/TestRemoteBackup.java | 43 ++--
.../hadoop/hbase/backup/TestRemoteRestore.java | 9 +-
.../backup/TestRepairAfterFailedDelete.java | 5 +-
.../hbase/backup/TestRestoreBoundaryTests.java | 9 +-
.../hbase/backup/TestSystemTableSnapshot.java | 8 +-
52 files changed, 766 insertions(+), 939 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/c2236b77/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupClientFactory.java
----------------------------------------------------------------------
diff --git a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupClientFactory.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupClientFactory.java
index 68e5c11..4c96229 100644
--- a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupClientFactory.java
+++ b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupClientFactory.java
@@ -28,11 +28,12 @@ import org.apache.hadoop.hbase.client.Connection;
import org.apache.yetus.audience.InterfaceAudience;
@InterfaceAudience.Private
-public class BackupClientFactory {
+public final class BackupClientFactory {
+ private BackupClientFactory() {
+ }
- public static TableBackupClient create (Connection conn, String backupId, BackupRequest request)
- throws IOException
- {
+ public static TableBackupClient create(Connection conn, String backupId, BackupRequest request)
+ throws IOException {
Configuration conf = conn.getConfiguration();
try {
String clsName = conf.get(TableBackupClient.BACKUP_CLIENT_IMPL_CLASS);
http://git-wip-us.apache.org/repos/asf/hbase/blob/c2236b77/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupCopyJob.java
----------------------------------------------------------------------
diff --git a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupCopyJob.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupCopyJob.java
index 3385f1d..f5e2137 100644
--- a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupCopyJob.java
+++ b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupCopyJob.java
@@ -32,7 +32,6 @@ import org.apache.yetus.audience.InterfaceAudience;
*/
@InterfaceAudience.Private
public interface BackupCopyJob extends Configurable {
-
/**
* Copy backup data to destination
* @param backupInfo context object
@@ -49,7 +48,7 @@ public interface BackupCopyJob extends Configurable {
/**
* Cancel copy job
* @param jobHandler backup copy job handler
- * @throws IOException
+ * @throws IOException if cancelling the jobs fails
*/
void cancel(String jobHandler) throws IOException;
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/c2236b77/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupHFileCleaner.java
----------------------------------------------------------------------
diff --git a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupHFileCleaner.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupHFileCleaner.java
index da4f56e..68e6b43 100644
--- a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupHFileCleaner.java
+++ b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupHFileCleaner.java
@@ -31,16 +31,15 @@ import org.apache.hadoop.hbase.Abortable;
import org.apache.hadoop.hbase.HBaseInterfaceAudience;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.backup.impl.BackupSystemTable;
-import org.apache.yetus.audience.InterfaceAudience;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.master.cleaner.BaseHFileCleanerDelegate;
import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;
-import org.apache.hbase.thirdparty.com.google.common.base.Predicate;
import org.apache.hbase.thirdparty.com.google.common.collect.Iterables;
/**
@@ -61,9 +60,12 @@ public class BackupHFileCleaner extends BaseHFileCleanerDelegate implements Abor
private List<TableName> fullyBackedUpTables = null;
private Set<String> getFilenameFromBulkLoad(Map<byte[], List<Path>>[] maps) {
- Set<String> filenames = new HashSet<String>();
+ Set<String> filenames = new HashSet<>();
for (Map<byte[], List<Path>> map : maps) {
- if (map == null) continue;
+ if (map == null) {
+ continue;
+ }
+
for (List<Path> paths : map.values()) {
for (Path p : paths) {
filenames.add(p.getName());
@@ -98,7 +100,10 @@ public class BackupHFileCleaner extends BaseHFileCleanerDelegate implements Abor
// obtain the Set of TableName's which have been fully backed up
// so that we filter BulkLoad to be returned from server
if (checkForFullyBackedUpTables) {
- if (connection == null) return files;
+ if (connection == null) {
+ return files;
+ }
+
try (BackupSystemTable tbl = new BackupSystemTable(connection)) {
fullyBackedUpTables = tbl.getTablesForBackupType(BackupType.FULL);
} catch (IOException ioe) {
@@ -114,17 +119,14 @@ public class BackupHFileCleaner extends BaseHFileCleanerDelegate implements Abor
LOG.error("Failed to read hfile references, skipping checking deletable files", ioe);
return Collections.emptyList();
}
- Iterable<FileStatus> deletables = Iterables.filter(files, new Predicate<FileStatus>() {
- @Override
- public boolean apply(FileStatus file) {
- // If the file is recent, be conservative and wait for one more scan of backup:system table
- if (file.getModificationTime() > secondPrevReadFromBackupTbl) {
- return false;
- }
- String hfile = file.getPath().getName();
- boolean foundHFileRef = hfileRefs.contains(hfile);
- return !foundHFileRef;
+ Iterable<FileStatus> deletables = Iterables.filter(files, file -> {
+ // If the file is recent, be conservative and wait for one more scan of backup:system table
+ if (file.getModificationTime() > secondPrevReadFromBackupTbl) {
+ return false;
}
+ String hfile = file.getPath().getName();
+ boolean foundHFileRef = hfileRefs.contains(hfile);
+ return !foundHFileRef;
});
return deletables;
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/c2236b77/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupInfo.java
----------------------------------------------------------------------
diff --git a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupInfo.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupInfo.java
index f6935f8..6c304ca 100644
--- a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupInfo.java
+++ b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupInfo.java
@@ -32,14 +32,14 @@ import java.util.Set;
import org.apache.commons.lang3.StringUtils;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.backup.util.BackupUtils;
+import org.apache.hadoop.hbase.util.Bytes;
import org.apache.yetus.audience.InterfaceAudience;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+
import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
import org.apache.hadoop.hbase.shaded.protobuf.generated.BackupProtos;
import org.apache.hadoop.hbase.shaded.protobuf.generated.BackupProtos.BackupInfo.Builder;
-import org.apache.hadoop.hbase.util.Bytes;
-
/**
* An object to encapsulate the information for each backup session
@@ -48,20 +48,19 @@ import org.apache.hadoop.hbase.util.Bytes;
public class BackupInfo implements Comparable<BackupInfo> {
private static final Logger LOG = LoggerFactory.getLogger(BackupInfo.class);
- public static interface Filter {
-
+ public interface Filter {
/**
* Filter interface
* @param info backup info
* @return true if info passes filter, false otherwise
*/
- public boolean apply(BackupInfo info);
+ boolean apply(BackupInfo info);
}
/**
* Backup session states
*/
- public static enum BackupState {
+ public enum BackupState {
RUNNING, COMPLETE, FAILED, ANY
}
@@ -69,7 +68,7 @@ public class BackupInfo implements Comparable<BackupInfo> {
* BackupPhase - phases of an ACTIVE backup session (running), when state of a backup session is
* BackupState.RUNNING
*/
- public static enum BackupPhase {
+ public enum BackupPhase {
REQUEST, SNAPSHOT, PREPARE_INCREMENTAL, SNAPSHOTCOPY, INCREMENTAL_COPY, STORE_MANIFEST
}
@@ -155,7 +154,7 @@ public class BackupInfo implements Comparable<BackupInfo> {
private long bandwidth = -1;
public BackupInfo() {
- backupTableInfoMap = new HashMap<TableName, BackupTableInfo>();
+ backupTableInfoMap = new HashMap<>();
}
public BackupInfo(String backupId, BackupType type, TableName[] tables, String targetRootDir) {
@@ -196,7 +195,7 @@ public class BackupInfo implements Comparable<BackupInfo> {
}
public void setTableSetTimestampMap(HashMap<TableName,
- HashMap<String, Long>> tableSetTimestampMap) {
+ HashMap<String, Long>> tableSetTimestampMap) {
this.tableSetTimestampMap = tableSetTimestampMap;
}
@@ -216,7 +215,6 @@ public class BackupInfo implements Comparable<BackupInfo> {
* Set progress (0-100%)
* @param p progress value
*/
-
public void setProgress(int p) {
this.progress = p;
}
@@ -297,7 +295,7 @@ public class BackupInfo implements Comparable<BackupInfo> {
}
public List<String> getSnapshotNames() {
- List<String> snapshotNames = new ArrayList<String>();
+ List<String> snapshotNames = new ArrayList<>();
for (BackupTableInfo backupStatus : this.backupTableInfoMap.values()) {
snapshotNames.add(backupStatus.getSnapshotName());
}
@@ -309,7 +307,7 @@ public class BackupInfo implements Comparable<BackupInfo> {
}
public List<TableName> getTableNames() {
- return new ArrayList<TableName>(backupTableInfoMap.keySet());
+ return new ArrayList<>(backupTableInfoMap.keySet());
}
public void addTables(TableName[] tables) {
@@ -355,8 +353,8 @@ public class BackupInfo implements Comparable<BackupInfo> {
* Set the new region server log timestamps after distributed log roll
* @param newTableSetTimestampMap table timestamp map
*/
- public void
- setIncrTimestampMap(HashMap<TableName, HashMap<String, Long>> newTableSetTimestampMap) {
+ public void setIncrTimestampMap(HashMap<TableName,
+ HashMap<String, Long>> newTableSetTimestampMap) {
this.tableSetTimestampMap = newTableSetTimestampMap;
}
@@ -546,5 +544,4 @@ public class BackupInfo implements Comparable<BackupInfo> {
Long otherTS = Long.valueOf(o.getBackupId().substring(o.getBackupId().lastIndexOf("_") + 1));
return thisTS.compareTo(otherTS);
}
-
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/c2236b77/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupMergeJob.java
----------------------------------------------------------------------
diff --git a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupMergeJob.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupMergeJob.java
index dc2e85b..de91fa1 100644
--- a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupMergeJob.java
+++ b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupMergeJob.java
@@ -30,11 +30,11 @@ import org.apache.yetus.audience.InterfaceAudience;
@InterfaceAudience.Private
public interface BackupMergeJob extends Configurable {
-
/**
- * Run backup merge operation
+ * Run backup merge operation.
+ *
* @param backupIds backup image ids
- * @throws IOException
+ * @throws IOException if the backup merge operation fails
*/
void run(String[] backupIds) throws IOException;
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/c2236b77/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupRestoreConstants.java
----------------------------------------------------------------------
diff --git a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupRestoreConstants.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupRestoreConstants.java
index 3ea8c56..eaeef22 100644
--- a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupRestoreConstants.java
+++ b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupRestoreConstants.java
@@ -29,102 +29,96 @@ public interface BackupRestoreConstants {
/*
* Backup/Restore constants
*/
- public final static String BACKUP_SYSTEM_TABLE_NAME_KEY = "hbase.backup.system.table.name";
- public final static String BACKUP_SYSTEM_TABLE_NAME_DEFAULT = "backup:system";
+ String BACKUP_SYSTEM_TABLE_NAME_KEY = "hbase.backup.system.table.name";
+ String BACKUP_SYSTEM_TABLE_NAME_DEFAULT = "backup:system";
- public final static String BACKUP_SYSTEM_TTL_KEY = "hbase.backup.system.ttl";
+ String BACKUP_SYSTEM_TTL_KEY = "hbase.backup.system.ttl";
- public final static int BACKUP_SYSTEM_TTL_DEFAULT = HConstants.FOREVER;
- public final static String BACKUP_ENABLE_KEY = "hbase.backup.enable";
- public final static boolean BACKUP_ENABLE_DEFAULT = false;
+ int BACKUP_SYSTEM_TTL_DEFAULT = HConstants.FOREVER;
+ String BACKUP_ENABLE_KEY = "hbase.backup.enable";
+ boolean BACKUP_ENABLE_DEFAULT = false;
+ String BACKUP_MAX_ATTEMPTS_KEY = "hbase.backup.attempts.max";
+ int DEFAULT_BACKUP_MAX_ATTEMPTS = 10;
- public static final String BACKUP_MAX_ATTEMPTS_KEY = "hbase.backup.attempts.max";
- public static final int DEFAULT_BACKUP_MAX_ATTEMPTS = 10;
-
- public static final String BACKUP_ATTEMPTS_PAUSE_MS_KEY = "hbase.backup.attempts.pause.ms";
- public static final int DEFAULT_BACKUP_ATTEMPTS_PAUSE_MS = 10000;
+ String BACKUP_ATTEMPTS_PAUSE_MS_KEY = "hbase.backup.attempts.pause.ms";
+ int DEFAULT_BACKUP_ATTEMPTS_PAUSE_MS = 10000;
/*
* Drivers option list
*/
- public static final String OPTION_OVERWRITE = "o";
- public static final String OPTION_OVERWRITE_DESC =
- "Overwrite data if any of the restore target tables exists";
+ String OPTION_OVERWRITE = "o";
+ String OPTION_OVERWRITE_DESC = "Overwrite data if any of the restore target tables exists";
- public static final String OPTION_CHECK = "c";
- public static final String OPTION_CHECK_DESC =
+ String OPTION_CHECK = "c";
+ String OPTION_CHECK_DESC =
"Check restore sequence and dependencies only (does not execute the command)";
- public static final String OPTION_SET = "s";
- public static final String OPTION_SET_DESC = "Backup set name";
- public static final String OPTION_SET_RESTORE_DESC =
- "Backup set to restore, mutually exclusive with -t (table list)";
- public static final String OPTION_SET_BACKUP_DESC =
- "Backup set to backup, mutually exclusive with -t (table list)";
- public static final String OPTION_DEBUG = "d";
- public static final String OPTION_DEBUG_DESC = "Enable debug loggings";
-
- public static final String OPTION_TABLE = "t";
- public static final String OPTION_TABLE_DESC = "Table name. If specified, only backup images,"
+ String OPTION_SET = "s";
+ String OPTION_SET_DESC = "Backup set name";
+ String OPTION_SET_RESTORE_DESC = "Backup set to restore, mutually exclusive with -t (table list)";
+ String OPTION_SET_BACKUP_DESC = "Backup set to backup, mutually exclusive with -t (table list)";
+ String OPTION_DEBUG = "d";
+ String OPTION_DEBUG_DESC = "Enable debug loggings";
+
+ String OPTION_TABLE = "t";
+ String OPTION_TABLE_DESC = "Table name. If specified, only backup images,"
+ " which contain this table will be listed.";
- public static final String OPTION_TABLE_LIST = "l";
- public static final String OPTION_TABLE_LIST_DESC = "Table name list, comma-separated.";
+ String OPTION_TABLE_LIST = "l";
+ String OPTION_TABLE_LIST_DESC = "Table name list, comma-separated.";
- public static final String OPTION_BANDWIDTH = "b";
- public static final String OPTION_BANDWIDTH_DESC = "Bandwidth per task (MapReduce task) in MB/s";
+ String OPTION_BANDWIDTH = "b";
+ String OPTION_BANDWIDTH_DESC = "Bandwidth per task (MapReduce task) in MB/s";
- public static final String OPTION_WORKERS = "w";
- public static final String OPTION_WORKERS_DESC = "Number of parallel MapReduce tasks to execute";
+ String OPTION_WORKERS = "w";
+ String OPTION_WORKERS_DESC = "Number of parallel MapReduce tasks to execute";
- public static final String OPTION_RECORD_NUMBER = "n";
- public static final String OPTION_RECORD_NUMBER_DESC =
- "Number of records of backup history. Default: 10";
+ String OPTION_RECORD_NUMBER = "n";
+ String OPTION_RECORD_NUMBER_DESC = "Number of records of backup history. Default: 10";
- public static final String OPTION_PATH = "p";
- public static final String OPTION_PATH_DESC = "Backup destination root directory path";
+ String OPTION_PATH = "p";
+ String OPTION_PATH_DESC = "Backup destination root directory path";
- public static final String OPTION_TABLE_MAPPING = "m";
- public static final String OPTION_TABLE_MAPPING_DESC =
+ String OPTION_TABLE_MAPPING = "m";
+ String OPTION_TABLE_MAPPING_DESC =
"A comma separated list of target tables. "
+ "If specified, each table in <tables> must have a mapping";
- public static final String OPTION_YARN_QUEUE_NAME = "q";
- public static final String OPTION_YARN_QUEUE_NAME_DESC = "Yarn queue name to run backup create command on";
- public static final String OPTION_YARN_QUEUE_NAME_RESTORE_DESC = "Yarn queue name to run backup restore command on";
-
- public final static String JOB_NAME_CONF_KEY = "mapreduce.job.name";
-
- public static final String BACKUP_CONFIG_STRING = BackupRestoreConstants.BACKUP_ENABLE_KEY + "=true\n"
- + "hbase.master.logcleaner.plugins="
- +"YOUR_PLUGINS,org.apache.hadoop.hbase.backup.master.BackupLogCleaner\n"
- + "hbase.procedure.master.classes=YOUR_CLASSES,"
- +"org.apache.hadoop.hbase.backup.master.LogRollMasterProcedureManager\n"
- + "hbase.procedure.regionserver.classes=YOUR_CLASSES,"
- + "org.apache.hadoop.hbase.backup.regionserver.LogRollRegionServerProcedureManager\n"
- + "hbase.coprocessor.region.classes=YOUR_CLASSES,"
- + "org.apache.hadoop.hbase.backup.BackupObserver\n"
- + "and restart the cluster\n";
- public static final String ENABLE_BACKUP = "Backup is not enabled. To enable backup, "+
+ String OPTION_YARN_QUEUE_NAME = "q";
+ String OPTION_YARN_QUEUE_NAME_DESC = "Yarn queue name to run backup create command on";
+ String OPTION_YARN_QUEUE_NAME_RESTORE_DESC = "Yarn queue name to run backup restore command on";
+
+ String JOB_NAME_CONF_KEY = "mapreduce.job.name";
+
+ String BACKUP_CONFIG_STRING = BackupRestoreConstants.BACKUP_ENABLE_KEY
+ + "=true\n"
+ + "hbase.master.logcleaner.plugins="
+ +"YOUR_PLUGINS,org.apache.hadoop.hbase.backup.master.BackupLogCleaner\n"
+ + "hbase.procedure.master.classes=YOUR_CLASSES,"
+ +"org.apache.hadoop.hbase.backup.master.LogRollMasterProcedureManager\n"
+ + "hbase.procedure.regionserver.classes=YOUR_CLASSES,"
+ + "org.apache.hadoop.hbase.backup.regionserver.LogRollRegionServerProcedureManager\n"
+ + "hbase.coprocessor.region.classes=YOUR_CLASSES,"
+ + "org.apache.hadoop.hbase.backup.BackupObserver\n"
+ + "and restart the cluster\n";
+ String ENABLE_BACKUP = "Backup is not enabled. To enable backup, "+
"in hbase-site.xml, set:\n "
+ BACKUP_CONFIG_STRING;
- public static final String VERIFY_BACKUP = "Please make sure that backup is enabled on the cluster. To enable backup, "+
- "in hbase-site.xml, set:\n "
- + BACKUP_CONFIG_STRING;
+ String VERIFY_BACKUP = "Please make sure that backup is enabled on the cluster. To enable "
+ + "backup, in hbase-site.xml, set:\n " + BACKUP_CONFIG_STRING;
/*
* Delimiter in table name list in restore command
*/
- public static final String TABLENAME_DELIMITER_IN_COMMAND = ",";
+ String TABLENAME_DELIMITER_IN_COMMAND = ",";
- public static final String CONF_STAGING_ROOT = "snapshot.export.staging.root";
+ String CONF_STAGING_ROOT = "snapshot.export.staging.root";
- public static final String BACKUPID_PREFIX = "backup_";
+ String BACKUPID_PREFIX = "backup_";
- public static enum BackupCommand {
+ enum BackupCommand {
CREATE, CANCEL, DELETE, DESCRIBE, HISTORY, STATUS, CONVERT, MERGE, STOP, SHOW, HELP, PROGRESS,
SET, SET_ADD, SET_REMOVE, SET_DELETE, SET_DESCRIBE, SET_LIST, REPAIR
}
-
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/c2236b77/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupRestoreFactory.java
----------------------------------------------------------------------
diff --git a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupRestoreFactory.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupRestoreFactory.java
index 9612ebe..b1bc532 100644
--- a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupRestoreFactory.java
+++ b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupRestoreFactory.java
@@ -21,8 +21,8 @@ import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.backup.mapreduce.MapReduceBackupCopyJob;
import org.apache.hadoop.hbase.backup.mapreduce.MapReduceBackupMergeJob;
import org.apache.hadoop.hbase.backup.mapreduce.MapReduceRestoreJob;
-import org.apache.yetus.audience.InterfaceAudience;
import org.apache.hadoop.util.ReflectionUtils;
+import org.apache.yetus.audience.InterfaceAudience;
/**
* Factory implementation for backup/restore related jobs
@@ -30,7 +30,6 @@ import org.apache.hadoop.util.ReflectionUtils;
*/
@InterfaceAudience.Private
public final class BackupRestoreFactory {
-
public final static String HBASE_INCR_RESTORE_IMPL_CLASS = "hbase.incremental.restore.class";
public final static String HBASE_BACKUP_COPY_IMPL_CLASS = "hbase.backup.copy.class";
public final static String HBASE_BACKUP_MERGE_IMPL_CLASS = "hbase.backup.merge.class";
http://git-wip-us.apache.org/repos/asf/hbase/blob/c2236b77/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupTableInfo.java
----------------------------------------------------------------------
diff --git a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupTableInfo.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupTableInfo.java
index 5f221a5..50abcc8 100644
--- a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupTableInfo.java
+++ b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupTableInfo.java
@@ -30,7 +30,6 @@ import org.apache.hadoop.hbase.shaded.protobuf.generated.BackupProtos;
@InterfaceAudience.Private
public class BackupTableInfo {
-
/*
* Table name for backup
*/
@@ -39,11 +38,9 @@ public class BackupTableInfo {
/*
* Snapshot name for offline/online snapshot
*/
-
private String snapshotName = null;
public BackupTableInfo() {
-
}
public BackupTableInfo(TableName table, String targetRootDir, String backupId) {
@@ -76,7 +73,7 @@ public class BackupTableInfo {
if (snapshotName != null) {
builder.setSnapshotName(snapshotName);
}
- builder.setTableName(org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil.toProtoTableName(table));
+ builder.setTableName(ProtobufUtil.toProtoTableName(table));
return builder.build();
}
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/c2236b77/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/HBackupFileSystem.java
----------------------------------------------------------------------
diff --git a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/HBackupFileSystem.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/HBackupFileSystem.java
index 68dba54..ff65a64 100644
--- a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/HBackupFileSystem.java
+++ b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/HBackupFileSystem.java
@@ -37,7 +37,7 @@ import org.slf4j.LoggerFactory;
* the on-disk Backup Image data.
*/
@InterfaceAudience.Private
-public class HBackupFileSystem {
+public final class HBackupFileSystem {
public static final Logger LOG = LoggerFactory.getLogger(HBackupFileSystem.class);
/**
@@ -106,10 +106,8 @@ public class HBackupFileSystem {
// Move manifest file to other place
private static Path getManifestPath(Configuration conf, Path backupRootPath, String backupId)
throws IOException {
- Path manifestPath = null;
-
FileSystem fs = backupRootPath.getFileSystem(conf);
- manifestPath =
+ Path manifestPath =
new Path(getBackupPath(backupRootPath.toString(), backupId) + Path.SEPARATOR
+ BackupManifest.MANIFEST_FILE_NAME);
if (!fs.exists(manifestPath)) {
http://git-wip-us.apache.org/repos/asf/hbase/blob/c2236b77/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/LogUtils.java
----------------------------------------------------------------------
diff --git a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/LogUtils.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/LogUtils.java
index 5ce975f..b96e3c7 100644
--- a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/LogUtils.java
+++ b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/LogUtils.java
@@ -17,10 +17,10 @@
*/
package org.apache.hadoop.hbase.backup;
-import org.apache.yetus.audience.InterfaceAudience;
import org.apache.log4j.Level;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
+import org.apache.yetus.audience.InterfaceAudience;
/**
* Utility class for disabling Zk and client logging
@@ -28,7 +28,6 @@ import org.apache.log4j.Logger;
*/
@InterfaceAudience.Private
final class LogUtils {
-
private LogUtils() {
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/c2236b77/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/RestoreDriver.java
----------------------------------------------------------------------
diff --git a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/RestoreDriver.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/RestoreDriver.java
index 2903bb0..b6c324d 100644
--- a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/RestoreDriver.java
+++ b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/RestoreDriver.java
@@ -47,9 +47,6 @@ import org.apache.hadoop.hbase.backup.impl.BackupAdminImpl;
import org.apache.hadoop.hbase.backup.impl.BackupManager;
import org.apache.hadoop.hbase.backup.impl.BackupSystemTable;
import org.apache.hadoop.hbase.backup.util.BackupUtils;
-import org.apache.yetus.audience.InterfaceAudience;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.util.AbstractHBaseTool;
@@ -57,6 +54,9 @@ import org.apache.hadoop.hbase.util.FSUtils;
import org.apache.hadoop.util.ToolRunner;
import org.apache.log4j.Level;
import org.apache.log4j.LogManager;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
*
@@ -65,7 +65,6 @@ import org.apache.log4j.LogManager;
*/
@InterfaceAudience.Private
public class RestoreDriver extends AbstractHBaseTool {
-
private static final Logger LOG = LoggerFactory.getLogger(RestoreDriver.class);
private CommandLine cmd;
@@ -81,7 +80,7 @@ public class RestoreDriver extends AbstractHBaseTool {
init();
}
- protected void init() throws IOException {
+ protected void init() {
// disable irrelevant loggers to avoid it mess up command output
LogUtils.disableZkAndClientLoggers();
}
@@ -142,7 +141,7 @@ public class RestoreDriver extends AbstractHBaseTool {
String backupRootDir = remainArgs[0];
String backupId = remainArgs[1];
- String tables = null;
+ String tables;
String tableMapping =
cmd.hasOption(OPTION_TABLE_MAPPING) ? cmd.getOptionValue(OPTION_TABLE_MAPPING) : null;
try (final Connection conn = ConnectionFactory.createConnection(conf);
@@ -190,7 +189,11 @@ public class RestoreDriver extends AbstractHBaseTool {
throws IOException {
try (final BackupSystemTable table = new BackupSystemTable(conn)) {
List<TableName> tables = table.describeBackupSet(name);
- if (tables == null) return null;
+
+ if (tables == null) {
+ return null;
+ }
+
return StringUtils.join(tables, BackupRestoreConstants.TABLENAME_DELIMITER_IN_COMMAND);
}
}
@@ -205,7 +208,6 @@ public class RestoreDriver extends AbstractHBaseTool {
addOptWithArg(OPTION_TABLE, OPTION_TABLE_LIST_DESC);
addOptWithArg(OPTION_TABLE_MAPPING, OPTION_TABLE_MAPPING_DESC);
addOptWithArg(OPTION_YARN_QUEUE_NAME, OPTION_YARN_QUEUE_NAME_RESTORE_DESC);
-
}
@Override
@@ -228,7 +230,7 @@ public class RestoreDriver extends AbstractHBaseTool {
}
@Override
- public int run(String[] args) throws IOException {
+ public int run(String[] args) {
if (conf == null) {
LOG.error("Tool configuration is not initialized");
throw new NullPointerException("conf");
@@ -262,7 +264,7 @@ public class RestoreDriver extends AbstractHBaseTool {
return ret;
}
- protected void printToolUsage() throws IOException {
+ protected void printToolUsage() {
System.out.println(USAGE_STRING);
HelpFormatter helpFormatter = new HelpFormatter();
helpFormatter.setLeftPadding(2);
http://git-wip-us.apache.org/repos/asf/hbase/blob/c2236b77/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/RestoreJob.java
----------------------------------------------------------------------
diff --git a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/RestoreJob.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/RestoreJob.java
index ca57e59..29b1288 100644
--- a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/RestoreJob.java
+++ b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/RestoreJob.java
@@ -32,14 +32,13 @@ import org.apache.yetus.audience.InterfaceAudience;
@InterfaceAudience.Private
public interface RestoreJob extends Configurable {
-
/**
* Run restore operation
* @param dirPaths path array of WAL log directories
* @param fromTables from tables
* @param toTables to tables
* @param fullBackupRestore full backup restore
- * @throws IOException
+ * @throws IOException if running the job fails
*/
void run(Path[] dirPaths, TableName[] fromTables, TableName[] toTables,
boolean fullBackupRestore) throws IOException;
http://git-wip-us.apache.org/repos/asf/hbase/blob/c2236b77/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/RestoreRequest.java
----------------------------------------------------------------------
diff --git a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/RestoreRequest.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/RestoreRequest.java
index 5a0a7d4..a654cce 100644
--- a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/RestoreRequest.java
+++ b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/RestoreRequest.java
@@ -24,8 +24,7 @@ import org.apache.yetus.audience.InterfaceAudience;
* POJO class for restore request
*/
@InterfaceAudience.Private
-public class RestoreRequest {
-
+public final class RestoreRequest {
public static class Builder {
RestoreRequest request;
@@ -63,7 +62,6 @@ public class RestoreRequest {
return this;
}
-
public RestoreRequest build() {
return request;
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/c2236b77/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupAdminImpl.java
----------------------------------------------------------------------
diff --git a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupAdminImpl.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupAdminImpl.java
index f27490c..776cc1b 100644
--- a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupAdminImpl.java
+++ b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupAdminImpl.java
@@ -44,13 +44,14 @@ import org.apache.hadoop.hbase.backup.HBackupFileSystem;
import org.apache.hadoop.hbase.backup.RestoreRequest;
import org.apache.hadoop.hbase.backup.util.BackupSet;
import org.apache.hadoop.hbase.backup.util.BackupUtils;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.Connection;
+import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
import org.apache.yetus.audience.InterfaceAudience;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.hadoop.hbase.client.Admin;
-import org.apache.hadoop.hbase.client.Connection;
+
import org.apache.hbase.thirdparty.com.google.common.collect.Lists;
-import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
@InterfaceAudience.Private
public class BackupAdminImpl implements BackupAdmin {
@@ -66,12 +67,12 @@ public class BackupAdminImpl implements BackupAdmin {
}
@Override
- public void close() throws IOException {
+ public void close() {
}
@Override
public BackupInfo getBackupInfo(String backupId) throws IOException {
- BackupInfo backupInfo = null;
+ BackupInfo backupInfo;
try (final BackupSystemTable table = new BackupSystemTable(conn)) {
if (backupId == null) {
ArrayList<BackupInfo> recentSessions = table.getBackupInfos(BackupState.RUNNING);
@@ -93,12 +94,11 @@ public class BackupAdminImpl implements BackupAdmin {
public int deleteBackups(String[] backupIds) throws IOException {
int totalDeleted = 0;
- Map<String, HashSet<TableName>> allTablesMap = new HashMap<String, HashSet<TableName>>();
+ Map<String, HashSet<TableName>> allTablesMap = new HashMap<>();
- boolean deleteSessionStarted = false;
- boolean snapshotDone = false;
+ boolean deleteSessionStarted;
+ boolean snapshotDone;
try (final BackupSystemTable sysTable = new BackupSystemTable(conn)) {
-
// Step 1: Make sure there is no active session
// is running by using startBackupSession API
// If there is an active session in progress, exception will be thrown
@@ -107,8 +107,8 @@ public class BackupAdminImpl implements BackupAdmin {
deleteSessionStarted = true;
} catch (IOException e) {
LOG.warn("You can not run delete command while active backup session is in progress. \n"
- + "If there is no active backup session running, run backup repair utility to restore \n"
- + "backup system integrity.");
+ + "If there is no active backup session running, run backup repair utility to "
+ + "restore \nbackup system integrity.");
return -1;
}
@@ -136,7 +136,7 @@ public class BackupAdminImpl implements BackupAdmin {
String rootDir = info.getBackupRootDir();
HashSet<TableName> allTables = allTablesMap.get(rootDir);
if (allTables == null) {
- allTables = new HashSet<TableName>();
+ allTables = new HashSet<>();
allTablesMap.put(rootDir, allTables);
}
allTables.addAll(info.getTableNames());
@@ -176,11 +176,10 @@ public class BackupAdminImpl implements BackupAdmin {
/**
* Updates incremental backup set for every backupRoot
- * @param tablesMap map [backupRoot: Set<TableName>]
+ * @param tablesMap map [backupRoot: {@code Set<TableName>}]
* @param table backup system table
- * @throws IOException
+ * @throws IOException if a table operation fails
*/
-
private void finalizeDelete(Map<String, HashSet<TableName>> tablesMap, BackupSystemTable table)
throws IOException {
for (String backupRoot : tablesMap.keySet()) {
@@ -213,15 +212,15 @@ public class BackupAdminImpl implements BackupAdmin {
* which includes T<br>
* if(INCREMENTAL, YES) deletes only physical data (PD) if(INCREMENTAL, NO) deletes physical data
* and for table T scans all backup images between last<br>
- * FULL backup, which is older than the backup being deleted and the next FULL backup (if exists) <br>
+ * FULL backup, which is older than the backup being deleted and the next FULL backup (if exists)
+ * <br>
* or last one for a particular table T and removes T from list of backup tables.
* @param backupId backup id
* @param sysTable backup system table
* @return total number of deleted backup images
- * @throws IOException
+ * @throws IOException if deleting the backup fails
*/
private int deleteBackup(String backupId, BackupSystemTable sysTable) throws IOException {
-
BackupInfo backupInfo = sysTable.readBackupInfo(backupId);
int totalDeleted = 0;
@@ -271,7 +270,7 @@ public class BackupAdminImpl implements BackupAdmin {
LOG.debug(numDeleted + " bulk loaded files out of " + map.size() + " were deleted");
}
if (success) {
- sysTable.deleteBulkLoadedRows(new ArrayList<byte[]>(map.keySet()));
+ sysTable.deleteBulkLoadedRows(new ArrayList<>(map.keySet()));
}
sysTable.deleteBackupInfo(backupInfo.getBackupId());
@@ -283,8 +282,7 @@ public class BackupAdminImpl implements BackupAdmin {
return totalDeleted;
}
- private void
- removeTableFromBackupImage(BackupInfo info, TableName tn, BackupSystemTable sysTable)
+ private void removeTableFromBackupImage(BackupInfo info, TableName tn, BackupSystemTable sysTable)
throws IOException {
List<TableName> tables = info.getTableNames();
LOG.debug("Remove " + tn + " from " + info.getBackupId() + " tables="
@@ -311,7 +309,7 @@ public class BackupAdminImpl implements BackupAdmin {
BackupSystemTable table) throws IOException {
LOG.debug("GetAffectedBackupInfos for: " + backupInfo.getBackupId() + " table=" + tn);
long ts = backupInfo.getStartTs();
- List<BackupInfo> list = new ArrayList<BackupInfo>();
+ List<BackupInfo> list = new ArrayList<>();
List<BackupInfo> history = table.getBackupHistory(backupInfo.getBackupRootDir());
// Scan from most recent to backupInfo
// break when backupInfo reached
@@ -337,7 +335,7 @@ public class BackupAdminImpl implements BackupAdmin {
/**
* Clean up the data at target directory
- * @throws IOException
+ * @throws IOException if cleaning up the backup directory fails
*/
private void cleanupBackupDir(BackupInfo backupInfo, TableName table, Configuration conf)
throws IOException {
@@ -359,7 +357,6 @@ public class BackupAdminImpl implements BackupAdmin {
} else {
LOG.info("No data has been found in " + targetDirPath.toString() + ".");
}
-
} catch (IOException e1) {
LOG.error("Cleaning up backup data of " + backupInfo.getBackupId() + " for table " + table
+ "at " + backupInfo.getBackupRootDir() + " failed due to " + e1.getMessage() + ".");
@@ -375,11 +372,7 @@ public class BackupAdminImpl implements BackupAdmin {
if (!tables.contains(tn)) {
continue;
}
- if (info.getStartTs() <= startTime) {
- return true;
- } else {
- return false;
- }
+ return info.getStartTs() <= startTime;
}
return false;
}
@@ -388,8 +381,12 @@ public class BackupAdminImpl implements BackupAdmin {
public List<BackupInfo> getHistory(int n) throws IOException {
try (final BackupSystemTable table = new BackupSystemTable(conn)) {
List<BackupInfo> history = table.getBackupHistory();
- if (history.size() <= n) return history;
- List<BackupInfo> list = new ArrayList<BackupInfo>();
+
+ if (history.size() <= n) {
+ return history;
+ }
+
+ List<BackupInfo> list = new ArrayList<>();
for (int i = 0; i < n; i++) {
list.add(history.get(i));
}
@@ -399,12 +396,18 @@ public class BackupAdminImpl implements BackupAdmin {
@Override
public List<BackupInfo> getHistory(int n, BackupInfo.Filter... filters) throws IOException {
- if (filters.length == 0) return getHistory(n);
+ if (filters.length == 0) {
+ return getHistory(n);
+ }
+
try (final BackupSystemTable table = new BackupSystemTable(conn)) {
List<BackupInfo> history = table.getBackupHistory();
- List<BackupInfo> result = new ArrayList<BackupInfo>();
+ List<BackupInfo> result = new ArrayList<>();
for (BackupInfo bi : history) {
- if (result.size() == n) break;
+ if (result.size() == n) {
+ break;
+ }
+
boolean passed = true;
for (int i = 0; i < filters.length; i++) {
if (!filters[i].apply(bi)) {
@@ -424,7 +427,7 @@ public class BackupAdminImpl implements BackupAdmin {
public List<BackupSet> listBackupSets() throws IOException {
try (final BackupSystemTable table = new BackupSystemTable(conn)) {
List<String> list = table.listBackupSets();
- List<BackupSet> bslist = new ArrayList<BackupSet>();
+ List<BackupSet> bslist = new ArrayList<>();
for (String s : list) {
List<TableName> tables = table.describeBackupSet(s);
if (tables != null) {
@@ -439,7 +442,11 @@ public class BackupAdminImpl implements BackupAdmin {
public BackupSet getBackupSet(String name) throws IOException {
try (final BackupSystemTable table = new BackupSystemTable(conn)) {
List<TableName> list = table.describeBackupSet(name);
- if (list == null) return null;
+
+ if (list == null) {
+ return null;
+ }
+
return new BackupSet(name, list);
}
}
@@ -502,7 +509,6 @@ public class BackupAdminImpl implements BackupAdmin {
conn.getConfiguration(), rootPath, backupId);
// Check and validate the backup image and its dependencies
-
if (BackupUtils.validate(backupManifestMap, conn.getConfiguration())) {
LOG.info(CHECK_OK);
} else {
@@ -522,14 +528,13 @@ public class BackupAdminImpl implements BackupAdmin {
String backupId = BackupRestoreConstants.BACKUPID_PREFIX + EnvironmentEdgeManager.currentTime();
if (type == BackupType.INCREMENTAL) {
- Set<TableName> incrTableSet = null;
+ Set<TableName> incrTableSet;
try (BackupSystemTable table = new BackupSystemTable(conn)) {
incrTableSet = table.getIncrementalBackupTableSet(targetRootDir);
}
if (incrTableSet.isEmpty()) {
- String msg =
- "Incremental backup table set contains no tables. "
+ String msg = "Incremental backup table set contains no tables. "
+ "You need to run full backup first "
+ (tableList != null ? "on " + StringUtils.join(tableList, ",") : "");
@@ -539,8 +544,7 @@ public class BackupAdminImpl implements BackupAdmin {
tableList.removeAll(incrTableSet);
if (!tableList.isEmpty()) {
String extraTables = StringUtils.join(tableList, ",");
- String msg =
- "Some tables (" + extraTables + ") haven't gone through full backup. "
+ String msg = "Some tables (" + extraTables + ") haven't gone through full backup. "
+ "Perform full backup on " + extraTables + " first, " + "then retry the command";
throw new IOException(msg);
}
@@ -585,13 +589,12 @@ public class BackupAdminImpl implements BackupAdmin {
// update table list
BackupRequest.Builder builder = new BackupRequest.Builder();
- request =
- builder.withBackupType(request.getBackupType()).withTableList(tableList)
+ request = builder.withBackupType(request.getBackupType()).withTableList(tableList)
.withTargetRootDir(request.getTargetRootDir())
.withBackupSetName(request.getBackupSetName()).withTotalTasks(request.getTotalTasks())
.withBandwidthPerTasks((int) request.getBandwidth()).build();
- TableBackupClient client = null;
+ TableBackupClient client;
try {
client = BackupClientFactory.create(conn, backupId, request);
} catch (IOException e) {
@@ -606,7 +609,6 @@ public class BackupAdminImpl implements BackupAdmin {
private List<TableName> excludeNonExistingTables(List<TableName> tableList,
List<TableName> nonExistingTableList) {
-
for (TableName table : nonExistingTableList) {
tableList.remove(table);
}
@@ -634,13 +636,14 @@ public class BackupAdminImpl implements BackupAdmin {
* <p>
* @param backupIds list of backup ids
* @param table backup system table
- * @throws IOException
+ * @throws IOException if the backup image is not valid for merge
*/
- private void checkIfValidForMerge(String[] backupIds, BackupSystemTable table) throws IOException {
+ private void checkIfValidForMerge(String[] backupIds, BackupSystemTable table)
+ throws IOException {
String backupRoot = null;
- final Set<TableName> allTables = new HashSet<TableName>();
- final Set<String> allBackups = new HashSet<String>();
+ final Set<TableName> allTables = new HashSet<>();
+ final Set<String> allBackups = new HashSet<>();
long minTime = Long.MAX_VALUE, maxTime = Long.MIN_VALUE;
for (String backupId : backupIds) {
BackupInfo bInfo = table.readBackupInfo(backupId);
@@ -651,8 +654,8 @@ public class BackupAdminImpl implements BackupAdmin {
if (backupRoot == null) {
backupRoot = bInfo.getBackupRootDir();
} else if (!bInfo.getBackupRootDir().equals(backupRoot)) {
- throw new IOException("Found different backup destinations in a list of a backup sessions \n"
- + "1. " + backupRoot + "\n" + "2. " + bInfo.getBackupRootDir());
+ throw new IOException("Found different backup destinations in a list of a backup sessions "
+ + "\n1. " + backupRoot + "\n" + "2. " + bInfo.getBackupRootDir());
}
if (bInfo.getType() == BackupType.FULL) {
throw new IOException("FULL backup image can not be merged for: \n" + bInfo);
@@ -673,7 +676,6 @@ public class BackupAdminImpl implements BackupAdmin {
}
}
-
final long startRangeTime = minTime;
final long endRangeTime = maxTime;
final String backupDest = backupRoot;
@@ -681,54 +683,26 @@ public class BackupAdminImpl implements BackupAdmin {
// Filter 1 : backupRoot
// Filter 2 : time range filter
// Filter 3 : table filter
+ BackupInfo.Filter destinationFilter = info -> info.getBackupRootDir().equals(backupDest);
- BackupInfo.Filter destinationFilter = new BackupInfo.Filter() {
-
- @Override
- public boolean apply(BackupInfo info) {
- return info.getBackupRootDir().equals(backupDest);
- }
+ BackupInfo.Filter timeRangeFilter = info -> {
+ long time = info.getStartTs();
+ return time >= startRangeTime && time <= endRangeTime ;
};
- BackupInfo.Filter timeRangeFilter = new BackupInfo.Filter() {
-
- @Override
- public boolean apply(BackupInfo info) {
- long time = info.getStartTs();
- return time >= startRangeTime && time <= endRangeTime ;
- }
- };
-
- BackupInfo.Filter tableFilter = new BackupInfo.Filter() {
-
- @Override
- public boolean apply(BackupInfo info) {
- List<TableName> tables = info.getTableNames();
- return !Collections.disjoint(allTables, tables);
- }
- };
-
- BackupInfo.Filter typeFilter = new BackupInfo.Filter() {
-
- @Override
- public boolean apply(BackupInfo info) {
- return info.getType() == BackupType.INCREMENTAL;
- }
+ BackupInfo.Filter tableFilter = info -> {
+ List<TableName> tables = info.getTableNames();
+ return !Collections.disjoint(allTables, tables);
};
- BackupInfo.Filter stateFilter = new BackupInfo.Filter() {
- @Override
- public boolean apply(BackupInfo info) {
- return info.getState() == BackupState.COMPLETE;
- }
- };
+ BackupInfo.Filter typeFilter = info -> info.getType() == BackupType.INCREMENTAL;
+ BackupInfo.Filter stateFilter = info -> info.getState() == BackupState.COMPLETE;
- List<BackupInfo> allInfos =
- table.getBackupHistory( -1, destinationFilter,
+ List<BackupInfo> allInfos = table.getBackupHistory(-1, destinationFilter,
timeRangeFilter, tableFilter, typeFilter, stateFilter);
if (allInfos.size() != allBackups.size()) {
// Yes we have at least one hole in backup image sequence
- List<String> missingIds = new ArrayList<String>();
+ List<String> missingIds = new ArrayList<>();
for(BackupInfo info: allInfos) {
if(allBackups.contains(info.getBackupId())) {
continue;
http://git-wip-us.apache.org/repos/asf/hbase/blob/c2236b77/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupCommands.java
----------------------------------------------------------------------
diff --git a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupCommands.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupCommands.java
index bbedcee..c310178 100644
--- a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupCommands.java
+++ b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupCommands.java
@@ -20,6 +20,8 @@ package org.apache.hadoop.hbase.backup.impl;
import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_BANDWIDTH;
import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_BANDWIDTH_DESC;
+import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_DEBUG;
+import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_DEBUG_DESC;
import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_PATH;
import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_PATH_DESC;
import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_RECORD_NUMBER;
@@ -34,8 +36,6 @@ import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_WORKE
import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_WORKERS_DESC;
import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_YARN_QUEUE_NAME;
import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_YARN_QUEUE_NAME_DESC;
-import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_DEBUG;
-import static org.apache.hadoop.hbase.backup.BackupRestoreConstants.OPTION_DEBUG_DESC;
import java.io.IOException;
import java.net.URI;
@@ -62,17 +62,16 @@ import org.apache.hadoop.hbase.backup.util.BackupSet;
import org.apache.hadoop.hbase.backup.util.BackupUtils;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
-import org.apache.hbase.thirdparty.com.google.common.collect.Lists;
import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
import org.apache.yetus.audience.InterfaceAudience;
+import org.apache.hbase.thirdparty.com.google.common.collect.Lists;
+
/**
* General backup commands, options and usage messages
*/
-
@InterfaceAudience.Private
public final class BackupCommands {
-
public final static String INCORRECT_USAGE = "Incorrect usage";
public final static String TOP_LEVEL_NOT_ALLOWED =
@@ -173,7 +172,6 @@ public final class BackupCommands {
System.err.println("Backup system recovery is required.");
throw new IOException("Failed backup MERGE found, aborted command execution");
}
-
}
}
}
@@ -209,47 +207,49 @@ public final class BackupCommands {
}
public static Command createCommand(Configuration conf, BackupCommand type, CommandLine cmdline) {
- Command cmd = null;
+ Command cmd;
switch (type) {
- case CREATE:
- cmd = new CreateCommand(conf, cmdline);
- break;
- case DESCRIBE:
- cmd = new DescribeCommand(conf, cmdline);
- break;
- case PROGRESS:
- cmd = new ProgressCommand(conf, cmdline);
- break;
- case DELETE:
- cmd = new DeleteCommand(conf, cmdline);
- break;
- case HISTORY:
- cmd = new HistoryCommand(conf, cmdline);
- break;
- case SET:
- cmd = new BackupSetCommand(conf, cmdline);
- break;
- case REPAIR:
- cmd = new RepairCommand(conf, cmdline);
- break;
- case MERGE:
- cmd = new MergeCommand(conf, cmdline);
- break;
- case HELP:
- default:
- cmd = new HelpCommand(conf, cmdline);
- break;
+ case CREATE:
+ cmd = new CreateCommand(conf, cmdline);
+ break;
+ case DESCRIBE:
+ cmd = new DescribeCommand(conf, cmdline);
+ break;
+ case PROGRESS:
+ cmd = new ProgressCommand(conf, cmdline);
+ break;
+ case DELETE:
+ cmd = new DeleteCommand(conf, cmdline);
+ break;
+ case HISTORY:
+ cmd = new HistoryCommand(conf, cmdline);
+ break;
+ case SET:
+ cmd = new BackupSetCommand(conf, cmdline);
+ break;
+ case REPAIR:
+ cmd = new RepairCommand(conf, cmdline);
+ break;
+ case MERGE:
+ cmd = new MergeCommand(conf, cmdline);
+ break;
+ case HELP:
+ default:
+ cmd = new HelpCommand(conf, cmdline);
+ break;
}
return cmd;
}
static int numOfArgs(String[] args) {
- if (args == null) return 0;
+ if (args == null) {
+ return 0;
+ }
+
return args.length;
}
public static class CreateCommand extends Command {
-
CreateCommand(Configuration conf, CommandLine cmdline) {
super(conf);
this.cmdline = cmdline;
@@ -293,7 +293,7 @@ public final class BackupCommands {
if (isRootFolder(targetBackupDir)) {
throw new IOException(TOP_LEVEL_NOT_ALLOWED);
}
- String tables = null;
+ String tables;
// Check if we have both: backup set and list of tables
if (cmdline.hasOption(OPTION_TABLE) && cmdline.hasOption(OPTION_SET)) {
@@ -359,7 +359,11 @@ public final class BackupCommands {
Path p = new Path(path);
Configuration conf = getConf() != null ? getConf() : HBaseConfiguration.create();
URI uri = p.toUri();
- if (uri.getScheme() == null) return false;
+
+ if (uri.getScheme() == null) {
+ return false;
+ }
+
FileSystem.get(uri, conf);
return true;
} catch (Exception e) {
@@ -370,7 +374,11 @@ public final class BackupCommands {
private String getTablesForSet(String name, Configuration conf) throws IOException {
try (final BackupSystemTable table = new BackupSystemTable(conn)) {
List<TableName> tables = table.describeBackupSet(name);
- if (tables == null) return null;
+
+ if (tables == null) {
+ return null;
+ }
+
return StringUtils.join(tables, BackupRestoreConstants.TABLENAME_DELIMITER_IN_COMMAND);
}
}
@@ -392,12 +400,10 @@ public final class BackupCommands {
helpFormatter.setWidth(100);
helpFormatter.setSyntaxPrefix("Options:");
helpFormatter.printHelp(" ", null, options, USAGE_FOOTER);
-
}
}
private static class HelpCommand extends Command {
-
HelpCommand(Configuration conf, CommandLine cmdline) {
super(conf);
this.cmdline = cmdline;
@@ -449,7 +455,6 @@ public final class BackupCommands {
}
private static class DescribeCommand extends Command {
-
DescribeCommand(Configuration conf, CommandLine cmdline) {
super(conf);
this.cmdline = cmdline;
@@ -488,7 +493,6 @@ public final class BackupCommands {
}
private static class ProgressCommand extends Command {
-
ProgressCommand(Configuration conf, CommandLine cmdline) {
super(conf);
this.cmdline = cmdline;
@@ -522,7 +526,6 @@ public final class BackupCommands {
info = infos.get(0);
backupId = info.getBackupId();
System.out.println("Found ongoing session with backupId=" + backupId);
- } else {
}
}
int progress = info == null ? -1 : info.getProgress();
@@ -545,7 +548,6 @@ public final class BackupCommands {
}
private static class DeleteCommand extends Command {
-
DeleteCommand(Configuration conf, CommandLine cmdline) {
super(conf);
this.cmdline = cmdline;
@@ -572,11 +574,10 @@ public final class BackupCommands {
int deleted = admin.deleteBackups(backupIds);
System.out.println("Deleted " + deleted + " backups. Total requested: " + (args.length -1));
} catch (IOException e) {
- System.err
- .println("Delete command FAILED. Please run backup repair tool to restore backup system integrity");
+ System.err.println("Delete command FAILED. Please run backup repair tool to restore backup "
+ + "system integrity");
throw e;
}
-
}
@Override
@@ -586,7 +587,6 @@ public final class BackupCommands {
}
private static class RepairCommand extends Command {
-
RepairCommand(Configuration conf, CommandLine cmdline) {
super(conf);
this.cmdline = cmdline;
@@ -637,7 +637,6 @@ public final class BackupCommands {
sysTable.updateBackupInfo(backupInfo);
sysTable.finishBackupExclusiveOperation();
System.out.println("REPAIR status: finished repair failed session:\n " + backupInfo);
-
}
}
@@ -660,7 +659,6 @@ public final class BackupCommands {
admin.deleteBackups(backupIds);
}
System.out.println("DELETE operation finished OK: " + StringUtils.join(backupIds));
-
}
private void repairFailedBackupMergeIfAny(Connection conn, BackupSystemTable sysTable)
@@ -684,7 +682,6 @@ public final class BackupCommands {
admin.mergeBackups(backupIds);
}
System.out.println("MERGE operation finished OK: " + StringUtils.join(backupIds));
-
}
@Override
@@ -694,7 +691,6 @@ public final class BackupCommands {
}
private static class MergeCommand extends Command {
-
MergeCommand(Configuration conf, CommandLine cmdline) {
super(conf);
this.cmdline = cmdline;
@@ -744,7 +740,6 @@ public final class BackupCommands {
}
private static class HistoryCommand extends Command {
-
private final static int DEFAULT_HISTORY_LENGTH = 10;
HistoryCommand(Configuration conf, CommandLine cmdline) {
@@ -754,14 +749,16 @@ public final class BackupCommands {
@Override
public void execute() throws IOException {
-
int n = parseHistoryLength();
final TableName tableName = getTableName();
final String setName = getTableSetName();
BackupInfo.Filter tableNameFilter = new BackupInfo.Filter() {
@Override
public boolean apply(BackupInfo info) {
- if (tableName == null) return true;
+ if (tableName == null) {
+ return true;
+ }
+
List<TableName> names = info.getTableNames();
return names.contains(tableName);
}
@@ -769,13 +766,16 @@ public final class BackupCommands {
BackupInfo.Filter tableSetFilter = new BackupInfo.Filter() {
@Override
public boolean apply(BackupInfo info) {
- if (setName == null) return true;
+ if (setName == null) {
+ return true;
+ }
+
String backupId = info.getBackupId();
return backupId.startsWith(setName);
}
};
Path backupRootPath = getBackupRootPath();
- List<BackupInfo> history = null;
+ List<BackupInfo> history;
if (backupRootPath == null) {
// Load from backup system table
super.execute();
@@ -796,7 +796,11 @@ public final class BackupCommands {
String value = null;
try {
value = cmdline.getOptionValue(OPTION_PATH);
- if (value == null) return null;
+
+ if (value == null) {
+ return null;
+ }
+
return new Path(value);
} catch (IllegalArgumentException e) {
System.out.println("ERROR: Illegal argument for backup root path: " + value);
@@ -807,7 +811,11 @@ public final class BackupCommands {
private TableName getTableName() throws IOException {
String value = cmdline.getOptionValue(OPTION_TABLE);
- if (value == null) return null;
+
+ if (value == null) {
+ return null;
+ }
+
try {
return TableName.valueOf(value);
} catch (IllegalArgumentException e) {
@@ -817,15 +825,17 @@ public final class BackupCommands {
}
}
- private String getTableSetName() throws IOException {
- String value = cmdline.getOptionValue(OPTION_SET);
- return value;
+ private String getTableSetName() {
+ return cmdline.getOptionValue(OPTION_SET);
}
private int parseHistoryLength() throws IOException {
String value = cmdline.getOptionValue(OPTION_RECORD_NUMBER);
try {
- if (value == null) return DEFAULT_HISTORY_LENGTH;
+ if (value == null) {
+ return DEFAULT_HISTORY_LENGTH;
+ }
+
return Integer.parseInt(value);
} catch (NumberFormatException e) {
System.out.println("Illegal argument for history length: " + value);
@@ -877,24 +887,23 @@ public final class BackupCommands {
BackupCommand cmd = getCommand(cmdStr);
switch (cmd) {
- case SET_ADD:
- processSetAdd(args);
- break;
- case SET_REMOVE:
- processSetRemove(args);
- break;
- case SET_DELETE:
- processSetDelete(args);
- break;
- case SET_DESCRIBE:
- processSetDescribe(args);
- break;
- case SET_LIST:
- processSetList(args);
- break;
- default:
- break;
-
+ case SET_ADD:
+ processSetAdd(args);
+ break;
+ case SET_REMOVE:
+ processSetRemove(args);
+ break;
+ case SET_DELETE:
+ processSetDelete(args);
+ break;
+ case SET_DESCRIBE:
+ processSetDescribe(args);
+ break;
+ case SET_LIST:
+ processSetList(args);
+ break;
+ default:
+ break;
}
}
@@ -991,20 +1000,21 @@ public final class BackupCommands {
}
private BackupCommand getCommand(String cmdStr) throws IOException {
- if (cmdStr.equals(SET_ADD_CMD)) {
- return BackupCommand.SET_ADD;
- } else if (cmdStr.equals(SET_REMOVE_CMD)) {
- return BackupCommand.SET_REMOVE;
- } else if (cmdStr.equals(SET_DELETE_CMD)) {
- return BackupCommand.SET_DELETE;
- } else if (cmdStr.equals(SET_DESCRIBE_CMD)) {
- return BackupCommand.SET_DESCRIBE;
- } else if (cmdStr.equals(SET_LIST_CMD)) {
- return BackupCommand.SET_LIST;
- } else {
- System.out.println("ERROR: Unknown command for 'set' :" + cmdStr);
- printUsage();
- throw new IOException(INCORRECT_USAGE);
+ switch (cmdStr) {
+ case SET_ADD_CMD:
+ return BackupCommand.SET_ADD;
+ case SET_REMOVE_CMD:
+ return BackupCommand.SET_REMOVE;
+ case SET_DELETE_CMD:
+ return BackupCommand.SET_DELETE;
+ case SET_DESCRIBE_CMD:
+ return BackupCommand.SET_DESCRIBE;
+ case SET_LIST_CMD:
+ return BackupCommand.SET_LIST;
+ default:
+ System.out.println("ERROR: Unknown command for 'set' :" + cmdStr);
+ printUsage();
+ throw new IOException(INCORRECT_USAGE);
}
}
@@ -1012,6 +1022,5 @@ public final class BackupCommands {
protected void printUsage() {
System.out.println(SET_CMD_USAGE);
}
-
}
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/c2236b77/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupManager.java
----------------------------------------------------------------------
diff --git a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupManager.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupManager.java
index 4ca998c..f09d6d0 100644
--- a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupManager.java
+++ b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupManager.java
@@ -81,7 +81,6 @@ public class BackupManager implements Closeable {
this.conf = conf;
this.conn = conn;
this.systemTable = new BackupSystemTable(conn);
-
}
/**
@@ -113,14 +112,14 @@ public class BackupManager implements Closeable {
if (classes == null) {
conf.set(ProcedureManagerHost.MASTER_PROCEDURE_CONF_KEY, masterProcedureClass);
} else if (!classes.contains(masterProcedureClass)) {
- conf.set(ProcedureManagerHost.MASTER_PROCEDURE_CONF_KEY, classes + "," + masterProcedureClass);
+ conf.set(ProcedureManagerHost.MASTER_PROCEDURE_CONF_KEY, classes + ","
+ + masterProcedureClass);
}
if (LOG.isDebugEnabled()) {
LOG.debug("Added log cleaner: " + cleanerClass + "\n" + "Added master procedure manager: "
+ masterProcedureClass);
}
-
}
/**
@@ -170,7 +169,6 @@ public class BackupManager implements Closeable {
*/
@Override
public void close() {
-
if (systemTable != null) {
try {
systemTable.close();
@@ -200,7 +198,6 @@ public class BackupManager implements Closeable {
if (type == BackupType.FULL && (tableList == null || tableList.isEmpty())) {
// If table list is null for full backup, which means backup all tables. Then fill the table
// list with all user tables from meta. It no table available, throw the request exception.
-
HTableDescriptor[] htds = null;
try (Admin admin = conn.getAdmin()) {
htds = admin.listTables();
@@ -242,7 +239,6 @@ public class BackupManager implements Closeable {
* @throws IOException exception
*/
private String getOngoingBackupId() throws IOException {
-
ArrayList<BackupInfo> sessions = systemTable.getBackupInfos(BackupState.RUNNING);
if (sessions.size() == 0) {
return null;
@@ -272,13 +268,11 @@ public class BackupManager implements Closeable {
* @param backupInfo The backup info for the current backup
* @return The ancestors for the current backup
* @throws IOException exception
- * @throws BackupException exception
*/
- public ArrayList<BackupImage> getAncestors(BackupInfo backupInfo) throws IOException,
- BackupException {
+ public ArrayList<BackupImage> getAncestors(BackupInfo backupInfo) throws IOException {
LOG.debug("Getting the direct ancestors of the current backup " + backupInfo.getBackupId());
- ArrayList<BackupImage> ancestors = new ArrayList<BackupImage>();
+ ArrayList<BackupImage> ancestors = new ArrayList<>();
// full backup does not have ancestor
if (backupInfo.getType() == BackupType.FULL) {
@@ -287,7 +281,6 @@ public class BackupManager implements Closeable {
}
// get all backup history list in descending order
-
ArrayList<BackupInfo> allHistoryList = getBackupHistory(true);
for (BackupInfo backup : allHistoryList) {
@@ -327,7 +320,8 @@ public class BackupManager implements Closeable {
ancestors.add(lastIncrImage);
LOG.debug("Last dependent incremental backup image: " + "{BackupID="
- + lastIncrImage.getBackupId() + "," + "BackupDir=" + lastIncrImage.getRootDir() + "}");
+ + lastIncrImage.getBackupId() + "," + "BackupDir=" + lastIncrImage.getRootDir()
+ + "}");
}
}
}
@@ -340,13 +334,12 @@ public class BackupManager implements Closeable {
* @param backupInfo backup info
* @param table table
* @return backupImages on the dependency list
- * @throws BackupException exception
* @throws IOException exception
*/
public ArrayList<BackupImage> getAncestors(BackupInfo backupInfo, TableName table)
- throws BackupException, IOException {
+ throws IOException {
ArrayList<BackupImage> ancestors = getAncestors(backupInfo);
- ArrayList<BackupImage> tableAncestors = new ArrayList<BackupImage>();
+ ArrayList<BackupImage> tableAncestors = new ArrayList<>();
for (BackupImage image : ancestors) {
if (image.hasTable(table)) {
tableAncestors.add(image);
@@ -489,9 +482,10 @@ public class BackupManager implements Closeable {
}
/**
- * Get WAL files iterator
+ * Get WAL files iterator.
+ *
* @return WAL files iterator from backup system table
- * @throws IOException
+ * @throws IOException if getting the WAL files iterator fails
*/
public Iterator<BackupSystemTable.WALItem> getWALFilesFromBackupSystem() throws IOException {
return systemTable.getWALFilesIterator(backupInfo.getBackupRootDir());
http://git-wip-us.apache.org/repos/asf/hbase/blob/c2236b77/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupManifest.java
----------------------------------------------------------------------
diff --git a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupManifest.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupManifest.java
index c579bca..4c38219 100644
--- a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupManifest.java
+++ b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupManifest.java
@@ -56,7 +56,6 @@ import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;
*/
@InterfaceAudience.Private
public class BackupManifest {
-
private static final Logger LOG = LoggerFactory.getLogger(BackupManifest.class);
// manifest file name
@@ -66,9 +65,7 @@ public class BackupManifest {
* Backup image, the dependency graph is made up by series of backup images BackupImage contains
* all the relevant information to restore the backup and is used during restore operation
*/
-
public static class BackupImage implements Comparable<BackupImage> {
-
static class Builder {
BackupImage image;
@@ -145,7 +142,7 @@ public class BackupManifest {
long startTs = im.getStartTs();
long completeTs = im.getCompleteTs();
List<HBaseProtos.TableName> tableListList = im.getTableListList();
- List<TableName> tableList = new ArrayList<TableName>();
+ List<TableName> tableList = new ArrayList<>();
for (HBaseProtos.TableName tn : tableListList) {
tableList.add(ProtobufUtil.toTableName(tn));
}
@@ -194,14 +191,17 @@ public class BackupManifest {
BackupProtos.BackupImage proto) {
List<BackupProtos.TableServerTimestamp> list = proto.getTstMapList();
- HashMap<TableName, HashMap<String, Long>> incrTimeRanges =
- new HashMap<TableName, HashMap<String, Long>>();
- if (list == null || list.size() == 0) return incrTimeRanges;
+ HashMap<TableName, HashMap<String, Long>> incrTimeRanges = new HashMap<>();
+
+ if (list == null || list.size() == 0) {
+ return incrTimeRanges;
+ }
+
for (BackupProtos.TableServerTimestamp tst : list) {
TableName tn = ProtobufUtil.toTableName(tst.getTableName());
HashMap<String, Long> map = incrTimeRanges.get(tn);
if (map == null) {
- map = new HashMap<String, Long>();
+ map = new HashMap<>();
incrTimeRanges.put(tn, map);
}
List<BackupProtos.ServerTimestamp> listSt = tst.getServerTimestampList();
@@ -290,13 +290,13 @@ public class BackupManifest {
public ArrayList<BackupImage> getAncestors() {
if (this.ancestors == null) {
- this.ancestors = new ArrayList<BackupImage>();
+ this.ancestors = new ArrayList<>();
}
return this.ancestors;
}
public void removeAncestors(List<String> backupIds) {
- List<BackupImage> toRemove = new ArrayList<BackupImage>();
+ List<BackupImage> toRemove = new ArrayList<>();
for (BackupImage im : this.ancestors) {
if (backupIds.contains(im.getBackupId())) {
toRemove.add(im);
@@ -377,7 +377,6 @@ public class BackupManifest {
* @param backup The ongoing backup info
*/
public BackupManifest(BackupInfo backup) {
-
BackupImage.Builder builder = BackupImage.newBuilder();
this.backupImage =
builder.withBackupId(backup.getBackupId()).withType(backup.getType())
@@ -402,11 +401,11 @@ public class BackupManifest {
/**
* Construct manifest from a backup directory.
+ *
* @param conf configuration
* @param backupPath backup path
- * @throws IOException
+ * @throws IOException if constructing the manifest from the backup directory fails
*/
-
public BackupManifest(Configuration conf, Path backupPath) throws IOException {
this(backupPath.getFileSystem(conf), backupPath);
}
@@ -417,7 +416,6 @@ public class BackupManifest {
* @param backupPath backup path
* @throws BackupException exception
*/
-
public BackupManifest(FileSystem fs, Path backupPath) throws BackupException {
if (LOG.isDebugEnabled()) {
LOG.debug("Loading manifest from: " + backupPath.toString());
@@ -427,7 +425,6 @@ public class BackupManifest {
// This variable's purpose is to keep the correct and original location so
// that we can store/persist it.
try {
-
FileStatus[] subFiles = BackupUtils.listStatus(fs, backupPath, null);
if (subFiles == null) {
String errorMsg = backupPath.toString() + " does not exist";
@@ -436,7 +433,6 @@ public class BackupManifest {
}
for (FileStatus subFile : subFiles) {
if (subFile.getPath().getName().equals(MANIFEST_FILE_NAME)) {
-
// load and set manifest field from file content
FSDataInputStream in = fs.open(subFile.getPath());
long len = subFile.getLen();
@@ -456,7 +452,6 @@ public class BackupManifest {
}
String errorMsg = "No manifest file found in: " + backupPath.toString();
throw new IOException(errorMsg);
-
} catch (IOException e) {
throw new BackupException(e.getMessage());
}
@@ -478,7 +473,6 @@ public class BackupManifest {
* TODO: fix it. Persist the manifest file.
* @throws IOException IOException when storing the manifest file.
*/
-
public void store(Configuration conf) throws BackupException {
byte[] data = backupImage.toProto().toByteArray();
// write the file, overwrite if already exist
@@ -529,12 +523,12 @@ public class BackupManifest {
* @return the backup image list for restore in time order
*/
public ArrayList<BackupImage> getRestoreDependentList(boolean reverse) {
- TreeMap<Long, BackupImage> restoreImages = new TreeMap<Long, BackupImage>();
+ TreeMap<Long, BackupImage> restoreImages = new TreeMap<>();
restoreImages.put(backupImage.startTs, backupImage);
for (BackupImage image : backupImage.getAncestors()) {
restoreImages.put(Long.valueOf(image.startTs), image);
}
- return new ArrayList<BackupImage>(reverse ? (restoreImages.descendingMap().values())
+ return new ArrayList<>(reverse ? (restoreImages.descendingMap().values())
: (restoreImages.values()));
}
@@ -545,7 +539,7 @@ public class BackupManifest {
* @return the backup image list for a table in time order
*/
public ArrayList<BackupImage> getDependentListByTable(TableName table) {
- ArrayList<BackupImage> tableImageList = new ArrayList<BackupImage>();
+ ArrayList<BackupImage> tableImageList = new ArrayList<>();
ArrayList<BackupImage> imageList = getRestoreDependentList(true);
for (BackupImage image : imageList) {
if (image.hasTable(table)) {
@@ -567,7 +561,7 @@ public class BackupManifest {
* dependency of this image
*/
public ArrayList<BackupImage> getAllDependentListByTable(TableName table) {
- ArrayList<BackupImage> tableImageList = new ArrayList<BackupImage>();
+ ArrayList<BackupImage> tableImageList = new ArrayList<>();
ArrayList<BackupImage> imageList = getRestoreDependentList(false);
for (BackupImage image : imageList) {
if (image.hasTable(table)) {
@@ -596,7 +590,7 @@ public class BackupManifest {
}
List<TableName> image1TableList = image1.getTableNames();
List<TableName> image2TableList = image2.getTableNames();
- boolean found = false;
+ boolean found;
for (int i = 0; i < image2TableList.size(); i++) {
found = false;
for (int j = 0; j < image1TableList.size(); j++) {
@@ -634,14 +628,14 @@ public class BackupManifest {
}
}
- ArrayList<String> image1TableList = new ArrayList<String>();
+ ArrayList<String> image1TableList = new ArrayList<>();
for (BackupImage image1 : fullImages) {
List<TableName> tableList = image1.getTableNames();
for (TableName table : tableList) {
image1TableList.add(table.getNameAsString());
}
}
- ArrayList<String> image2TableList = new ArrayList<String>();
+ ArrayList<String> image2TableList = new ArrayList<>();
List<TableName> tableList = image.getTableNames();
for (TableName table : tableList) {
image2TableList.add(table.getNameAsString());