Skip to content

Commit b67dbbd

Browse files
authored
Incremental backups fail on archived bulkloaded HFiles (not yet upstream) (apache#201)
1 parent fb2b8fa commit b67dbbd

File tree

4 files changed

+19
-3
lines changed

4 files changed

+19
-3
lines changed

hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.java

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -249,9 +249,24 @@ private void updateFileLists(List<String> activeFiles, List<String> archiveFiles
249249
}
250250
}
251251

252-
if (newlyArchived.size() > 0) {
252+
if (!newlyArchived.isEmpty()) {
253+
String rootDir = CommonFSUtils.getRootDir(conf).toString();
254+
253255
activeFiles.removeAll(newlyArchived);
254-
archiveFiles.addAll(newlyArchived);
256+
for (String file : newlyArchived) {
257+
String archivedFile = file.substring(rootDir.length() + 1);
258+
Path archivedFilePath = new Path(HFileArchiveUtil.getArchivePath(conf), archivedFile);
259+
archivedFile = archivedFilePath.toString();
260+
261+
if (!fs.exists(archivedFilePath)) {
262+
throw new IOException(
263+
String.format("File %s not longer exists, and no archived file %s exists for it", file,
264+
archivedFile));
265+
}
266+
267+
LOG.debug("Archived file {} has been updated", archivedFile);
268+
archiveFiles.add(archivedFile);
269+
}
255270
}
256271

257272
LOG.debug(newlyArchived.size() + " files have been archived.");

hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/HFileOutputFormat2.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import static org.apache.hadoop.hbase.regionserver.HStoreFile.BULKLOAD_TIME_KEY;
2222
import static org.apache.hadoop.hbase.regionserver.HStoreFile.EXCLUDE_FROM_MINOR_COMPACTION_KEY;
2323
import static org.apache.hadoop.hbase.regionserver.HStoreFile.MAJOR_COMPACTION_KEY;
24+
2425
import java.io.IOException;
2526
import java.io.UnsupportedEncodingException;
2627
import java.net.InetSocketAddress;

hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/WALPlayer.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@
6565
import org.apache.yetus.audience.InterfaceAudience;
6666
import org.slf4j.Logger;
6767
import org.slf4j.LoggerFactory;
68-
import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableSet;
6968

7069
import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableSet;
7170

hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestWALPlayer.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import static org.mockito.Mockito.doAnswer;
2929
import static org.mockito.Mockito.mock;
3030
import static org.mockito.Mockito.when;
31+
3132
import java.io.ByteArrayOutputStream;
3233
import java.io.File;
3334
import java.io.PrintStream;

0 commit comments

Comments
 (0)