diff --git a/hbase-assembly/pom.xml b/hbase-assembly/pom.xml
index 8ea90209a29..b750f17a70d 100644
--- a/hbase-assembly/pom.xml
+++ b/hbase-assembly/pom.xml
@@ -281,8 +281,12 @@
${project.version}
test-jar
+
+ org.apache.hbase
+ hbase-backup
+ ${project.version}
+
-
rsgroup
diff --git a/hbase-assembly/src/main/assembly/hadoop-two-compat.xml b/hbase-assembly/src/main/assembly/hadoop-two-compat.xml
index 8039c4d3681..1592a3b73c3 100644
--- a/hbase-assembly/src/main/assembly/hadoop-two-compat.xml
+++ b/hbase-assembly/src/main/assembly/hadoop-two-compat.xml
@@ -49,6 +49,7 @@
org.apache.hbase:hbase-spark
org.apache.hbase:hbase-thrift
org.apache.hbase:hbase-external-blockcache
+ org.apache.hbase:hbase-backup
diff --git a/hbase-assembly/src/main/assembly/src.xml b/hbase-assembly/src/main/assembly/src.xml
index e5d3faf1e49..3fd7562c262 100644
--- a/hbase-assembly/src/main/assembly/src.xml
+++ b/hbase-assembly/src/main/assembly/src.xml
@@ -59,6 +59,7 @@
org.apache.hbase:hbase-spark-it
org.apache.hbase:hbase-testing-util
org.apache.hbase:hbase-thrift
+ org.apache.hbase:hbase-backup
diff --git a/hbase-backup/.DS_Store b/hbase-backup/.DS_Store
new file mode 100644
index 00000000000..ab57a77cff5
Binary files /dev/null and b/hbase-backup/.DS_Store differ
diff --git a/hbase-backup/pom.xml b/hbase-backup/pom.xml
new file mode 100644
index 00000000000..1b45c936758
--- /dev/null
+++ b/hbase-backup/pom.xml
@@ -0,0 +1,265 @@
+
+
+
+ 4.0.0
+
+ hbase
+ org.apache.hbase
+ 2.0.0-alpha2
+ ..
+
+ hbase-backup
+ Apache HBase - Backup
+ Backup for HBase
+
+
+
+ org.apache.maven.plugins
+ maven-site-plugin
+
+ true
+
+
+
+
+ maven-assembly-plugin
+
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+
+
+
+
+
+
+ org.eclipse.m2e
+ lifecycle-mapping
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ [3.2,)
+
+ compile
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ org.apache.hbase
+ hbase-annotations
+
+
+ jdk.tools
+ jdk.tools
+
+
+
+
+ org.apache.hbase
+ hbase-annotations
+ test-jar
+ test
+
+
+ org.apache.hbase
+ hbase-client
+
+
+ org.apache.hbase
+ hbase-server
+
+
+ org.apache.hbase
+ hbase-common
+
+
+ org.apache.hbase
+ hbase-protocol-shaded
+
+
+ org.apache.hbase
+ hbase-testing-util
+ test
+
+
+
+ commons-codec
+ commons-codec
+
+
+ commons-io
+ commons-io
+
+
+ commons-lang
+ commons-lang
+
+
+ commons-logging
+ commons-logging
+
+
+ org.apache.hbase.thirdparty
+ hbase-shaded-miscellaneous
+
+
+ org.apache.hbase.thirdparty
+ hbase-shaded-netty
+
+
+ org.apache.zookeeper
+ zookeeper
+
+
+ log4j
+ log4j
+
+
+ org.mockito
+ mockito-all
+ test
+
+
+
+
+
+ hadoop-2.0
+
+
+
+
+ !hadoop.profile
+
+
+
+
+ com.github.stephenc.findbugs
+ findbugs-annotations
+ true
+
+
+ org.apache.hadoop
+ hadoop-auth
+
+
+
+
+ io.netty
+ netty
+ ${netty.hadoop.version}
+ test
+
+
+
+
+
+ hadoop-3.0
+
+
+ hadoop.profile
+ 3.0
+
+
+
+ 3.0-SNAPSHOT
+
+
+
+ org.apache.hadoop
+ hadoop-auth
+
+
+ org.apache.hadoop
+ hadoop-common
+
+
+
+
+
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/BackupAdmin.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupAdmin.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/BackupAdmin.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupAdmin.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/BackupClientFactory.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupClientFactory.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/BackupClientFactory.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupClientFactory.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/BackupCopyJob.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupCopyJob.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/BackupCopyJob.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupCopyJob.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/BackupDriver.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupDriver.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/BackupDriver.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupDriver.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/BackupHFileCleaner.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupHFileCleaner.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/BackupHFileCleaner.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupHFileCleaner.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/BackupInfo.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupInfo.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/BackupInfo.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupInfo.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/BackupMergeJob.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupMergeJob.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/BackupMergeJob.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupMergeJob.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/BackupObserver.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupObserver.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/BackupObserver.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupObserver.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/BackupRequest.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupRequest.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/BackupRequest.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupRequest.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/BackupRestoreConstants.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupRestoreConstants.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/BackupRestoreConstants.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupRestoreConstants.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/BackupRestoreFactory.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupRestoreFactory.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/BackupRestoreFactory.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupRestoreFactory.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/BackupTableInfo.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupTableInfo.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/BackupTableInfo.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/BackupTableInfo.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/HBackupFileSystem.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/HBackupFileSystem.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/HBackupFileSystem.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/HBackupFileSystem.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/LogUtils.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/LogUtils.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/LogUtils.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/LogUtils.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/RestoreDriver.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/RestoreDriver.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/RestoreDriver.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/RestoreDriver.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/RestoreJob.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/RestoreJob.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/RestoreJob.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/RestoreJob.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/RestoreRequest.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/RestoreRequest.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/RestoreRequest.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/RestoreRequest.java
diff --git a/hbase-server/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
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupAdminImpl.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupAdminImpl.java
diff --git a/hbase-server/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
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupCommands.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupCommands.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupException.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupException.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupException.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupException.java
diff --git a/hbase-server/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
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupManager.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupManager.java
diff --git a/hbase-server/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
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupManifest.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupManifest.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupSystemTable.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/FullTableBackupClient.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/FullTableBackupClient.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/FullTableBackupClient.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/FullTableBackupClient.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/IncrementalBackupManager.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/IncrementalBackupManager.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/IncrementalBackupManager.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/IncrementalBackupManager.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/RestoreTablesClient.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/TableBackupClient.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/TableBackupClient.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/impl/TableBackupClient.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/TableBackupClient.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/mapreduce/MapReduceBackupCopyJob.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/mapreduce/MapReduceBackupCopyJob.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/mapreduce/MapReduceBackupCopyJob.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/mapreduce/MapReduceBackupCopyJob.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/mapreduce/MapReduceBackupMergeJob.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/mapreduce/MapReduceBackupMergeJob.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/mapreduce/MapReduceBackupMergeJob.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/mapreduce/MapReduceBackupMergeJob.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/mapreduce/MapReduceHFileSplitterJob.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/mapreduce/MapReduceHFileSplitterJob.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/mapreduce/MapReduceHFileSplitterJob.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/mapreduce/MapReduceHFileSplitterJob.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/mapreduce/MapReduceRestoreJob.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/mapreduce/MapReduceRestoreJob.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/mapreduce/MapReduceRestoreJob.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/mapreduce/MapReduceRestoreJob.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/master/BackupLogCleaner.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/master/BackupLogCleaner.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/master/BackupLogCleaner.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/master/BackupLogCleaner.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/master/LogRollMasterProcedureManager.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/master/LogRollMasterProcedureManager.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/master/LogRollMasterProcedureManager.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/master/LogRollMasterProcedureManager.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/regionserver/LogRollBackupSubprocedure.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/regionserver/LogRollBackupSubprocedure.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/regionserver/LogRollBackupSubprocedure.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/regionserver/LogRollBackupSubprocedure.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/regionserver/LogRollBackupSubprocedurePool.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/regionserver/LogRollBackupSubprocedurePool.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/regionserver/LogRollBackupSubprocedurePool.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/regionserver/LogRollBackupSubprocedurePool.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/regionserver/LogRollRegionServerProcedureManager.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/regionserver/LogRollRegionServerProcedureManager.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/regionserver/LogRollRegionServerProcedureManager.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/regionserver/LogRollRegionServerProcedureManager.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/util/BackupSet.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/util/BackupSet.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/util/BackupSet.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/util/BackupSet.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/util/BackupUtils.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/util/BackupUtils.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/util/BackupUtils.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/util/BackupUtils.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/util/RestoreTool.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/util/RestoreTool.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/backup/util/RestoreTool.java
rename to hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/util/RestoreTool.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupBase.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupBase.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupBase.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupBase.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupBoundaryTests.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupBoundaryTests.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupBoundaryTests.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupBoundaryTests.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupCommandLineTool.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupCommandLineTool.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupCommandLineTool.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupCommandLineTool.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupDelete.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupDelete.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupDelete.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupDelete.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupDeleteRestore.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupDeleteRestore.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupDeleteRestore.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupDeleteRestore.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupDeleteWithFailures.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupDeleteWithFailures.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupDeleteWithFailures.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupDeleteWithFailures.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupDescribe.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupDescribe.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupDescribe.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupDescribe.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupHFileCleaner.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupHFileCleaner.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupHFileCleaner.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupHFileCleaner.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupMultipleDeletes.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupMultipleDeletes.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupMultipleDeletes.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupMultipleDeletes.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupRepair.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupRepair.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupRepair.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupRepair.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupShowHistory.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupShowHistory.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupShowHistory.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupShowHistory.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupStatusProgress.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupStatusProgress.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupStatusProgress.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupStatusProgress.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupSystemTable.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupSystemTable.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupSystemTable.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupSystemTable.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestFullBackup.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestFullBackup.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestFullBackup.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestFullBackup.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestFullBackupSet.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestFullBackupSet.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestFullBackupSet.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestFullBackupSet.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestFullBackupSetRestoreSet.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestFullBackupSetRestoreSet.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestFullBackupSetRestoreSet.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestFullBackupSetRestoreSet.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestFullBackupWithFailures.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestFullBackupWithFailures.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestFullBackupWithFailures.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestFullBackupWithFailures.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestFullRestore.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestFullRestore.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestFullRestore.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestFullRestore.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestIncrementalBackup.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestIncrementalBackup.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestIncrementalBackup.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestIncrementalBackup.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestIncrementalBackupDeleteTable.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestIncrementalBackupDeleteTable.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestIncrementalBackupDeleteTable.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestIncrementalBackupDeleteTable.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestIncrementalBackupMergeWithFailures.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestIncrementalBackupMergeWithFailures.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestIncrementalBackupMergeWithFailures.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestIncrementalBackupMergeWithFailures.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestIncrementalBackupWithBulkLoad.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestIncrementalBackupWithBulkLoad.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestIncrementalBackupWithBulkLoad.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestIncrementalBackupWithBulkLoad.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestIncrementalBackupWithFailures.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestIncrementalBackupWithFailures.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestIncrementalBackupWithFailures.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestIncrementalBackupWithFailures.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestRemoteBackup.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestRemoteBackup.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestRemoteBackup.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestRemoteBackup.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestRemoteRestore.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestRemoteRestore.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestRemoteRestore.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestRemoteRestore.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestRepairAfterFailedDelete.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestRepairAfterFailedDelete.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestRepairAfterFailedDelete.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestRepairAfterFailedDelete.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestRestoreBoundaryTests.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestRestoreBoundaryTests.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestRestoreBoundaryTests.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestRestoreBoundaryTests.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestSystemTableSnapshot.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestSystemTableSnapshot.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestSystemTableSnapshot.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestSystemTableSnapshot.java
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/master/TestBackupLogCleaner.java b/hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/master/TestBackupLogCleaner.java
similarity index 100%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/backup/master/TestBackupLogCleaner.java
rename to hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/master/TestBackupLogCleaner.java
diff --git a/hbase-backup/src/test/resources/log4j.properties b/hbase-backup/src/test/resources/log4j.properties
new file mode 100644
index 00000000000..c322699ced2
--- /dev/null
+++ b/hbase-backup/src/test/resources/log4j.properties
@@ -0,0 +1,68 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Define some default values that can be overridden by system properties
+hbase.root.logger=INFO,console
+hbase.log.dir=.
+hbase.log.file=hbase.log
+
+# Define the root logger to the system property "hbase.root.logger".
+log4j.rootLogger=${hbase.root.logger}
+
+# Logging Threshold
+log4j.threshold=ALL
+
+#
+# Daily Rolling File Appender
+#
+log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.DRFA.File=${hbase.log.dir}/${hbase.log.file}
+
+# Rollver at midnight
+log4j.appender.DRFA.DatePattern=.yyyy-MM-dd
+
+# 30-day backup
+#log4j.appender.DRFA.MaxBackupIndex=30
+log4j.appender.DRFA.layout=org.apache.log4j.PatternLayout
+# Debugging Pattern format
+log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %C{2}(%L): %m%n
+
+
+#
+# console
+# Add "console" to rootlogger above if you want to use this
+#
+log4j.appender.console=org.apache.log4j.ConsoleAppender
+log4j.appender.console.target=System.err
+log4j.appender.console.layout=org.apache.log4j.PatternLayout
+log4j.appender.console.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %C{2}(%L): %m%n
+
+# Custom Logging levels
+
+#log4j.logger.org.apache.hadoop.fs.FSNamesystem=DEBUG
+
+log4j.logger.org.apache.hadoop=WARN
+log4j.logger.org.apache.zookeeper=ERROR
+log4j.logger.org.apache.hadoop.hbase=DEBUG
+
+#These settings are workarounds against spurious logs from the minicluster.
+#See HBASE-4709
+log4j.logger.org.apache.hadoop.metrics2.impl.MetricsConfig=WARN
+log4j.logger.org.apache.hadoop.metrics2.impl.MetricsSinkAdapter=WARN
+log4j.logger.org.apache.hadoop.metrics2.impl.MetricsSystemImpl=WARN
+log4j.logger.org.apache.hadoop.metrics2.util.MBeans=WARN
+# Enable this to get detailed connection error/retry logging.
+# log4j.logger.org.apache.hadoop.hbase.client.ConnectionImplementation=TRACE
diff --git a/hbase-it/pom.xml b/hbase-it/pom.xml
index 5d8946f1598..5709fac4fe9 100644
--- a/hbase-it/pom.xml
+++ b/hbase-it/pom.xml
@@ -231,6 +231,11 @@
org.apache.hbase
hbase-testing-util
+
+ org.apache.hbase
+ hbase-backup
+ ${project.version}
+
org.apache.hbase.thirdparty
hbase-shaded-miscellaneous
diff --git a/pom.xml b/pom.xml
index 484ba19d815..0ee9ba0fb77 100644
--- a/pom.xml
+++ b/pom.xml
@@ -87,6 +87,7 @@
hbase-metrics-api
hbase-metrics
hbase-spark-it
+ hbase-backup