diff --git hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupAdminImpl.java hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupAdminImpl.java index 8a60e6717d..1fec5615e6 100644 --- hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupAdminImpl.java +++ hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupAdminImpl.java @@ -32,6 +32,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.fs.permission.FsAction; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.backup.BackupAdmin; import org.apache.hadoop.hbase.backup.BackupClientFactory; @@ -558,6 +559,9 @@ public class BackupAdminImpl implements BackupAdmin { throw new IOException("Target backup directory " + targetTableBackupDir + " exists already."); } + + // check if the path is writeable + outputFs.access(targetTableBackupDirPath, FsAction.WRITE); } ArrayList nonExistingTableList = null; try (Admin admin = conn.getAdmin();) {