You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Dieter De Paepe (Jira)" <ji...@apache.org> on 2024/02/29 16:10:00 UTC
[jira] [Created] (HBASE-28412) TableNotFoundException while restoring out-of-system incremental backup with mapping
Dieter De Paepe created HBASE-28412:
---------------------------------------
Summary: TableNotFoundException while restoring out-of-system incremental backup with mapping
Key: HBASE-28412
URL: https://issues.apache.org/jira/browse/HBASE-28412
Project: HBase
Issue Type: Bug
Components: backup&restore
Affects Versions: 2.6.0
Reporter: Dieter De Paepe
It appears that restoring a non-existing table from an incremental backup with the "-m" parameter results in an error in the restore client.
Reproduction steps:
Start from a table with some data
{code:java}
hbase:006:0> scan 'lily_tenant_acme:LILY_SETTINGS'
ROW COLUMN+CELL
row1 column=0:a, timestamp=2024-02-27T18:49:46.489, value=val1
row1 column=0:test, timestamp=2024-02-29T15:46:29.956, value=value2 {code}
Create a full backup.
{code:java}
hbase backup create full /tmp/backup_hbase2 {code}
Change the table (eg using hbase shell):
{code:java}
put 'lily_tenant_acme:LILY_SETTINGS', 'row1', '0:test', 'value3' {code}
Create an incremental backup
{code:java}
hbase backup create incremental /tmp/backup_hbase2 {code}
Delete the table:
{code:java}
disable 'lily_tenant_acme:LILY_SETTINGS'
drop 'lily_tenant_acme:LILY_SETTINGS' {code}
Restore of the incremental backup with the "-m" parameter results in an error:
{code:java}
hbase restore hdfs:///tmp/backup_hbase2 backup_1709222166873 -t "lily_tenant_acme:LILY_SETTINGS" -m "lily_tenant_acme:LILY_SETTINGS-restored"
24/02/29 15:59:20 WARN org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil: The addDependencyJars(Configuration, Class<?>...) method has been deprecated since it is easy to use incorrectly. Most users should rely on addDependencyJars(Job) instead. See HBASE-8386 for more details.
24/02/29 15:59:35 WARN org.apache.hadoop.hbase.tool.LoadIncrementalHFiles: Skipping non-directory hdfs://hdfsns/user/lily/hbase-staging/bulk_output-lily_tenant_acme-LILY_SETTINGS-restored-1709222360030/_SUCCESS
24/02/29 15:59:36 ERROR org.apache.hadoop.hbase.backup.mapreduce.MapReduceRestoreJob: org.apache.hadoop.hbase.TableNotFoundException: lily_tenant_acme:LILY_SETTINGS
org.apache.hadoop.hbase.TableNotFoundException: lily_tenant_acme:LILY_SETTINGS
at org.apache.hadoop.hbase.client.HBaseAdmin.getTableDescriptor(HBaseAdmin.java:635)
at org.apache.hadoop.hbase.client.HTable.getDescriptor(HTable.java:244)
at org.apache.hadoop.hbase.backup.mapreduce.MapReduceHFileSplitterJob.createSubmittableJob(MapReduceHFileSplitterJob.java:117)
at org.apache.hadoop.hbase.backup.mapreduce.MapReduceHFileSplitterJob.run(MapReduceHFileSplitterJob.java:165)
at org.apache.hadoop.hbase.backup.mapreduce.MapReduceRestoreJob.run(MapReduceRestoreJob.java:84)
at org.apache.hadoop.hbase.backup.util.RestoreTool.incrementalRestoreTable(RestoreTool.java:205)
at org.apache.hadoop.hbase.backup.impl.RestoreTablesClient.restoreImages(RestoreTablesClient.java:185)
at org.apache.hadoop.hbase.backup.impl.RestoreTablesClient.restore(RestoreTablesClient.java:228)
at org.apache.hadoop.hbase.backup.impl.RestoreTablesClient.execute(RestoreTablesClient.java:264)
at org.apache.hadoop.hbase.backup.impl.BackupAdminImpl.restore(BackupAdminImpl.java:518)
at org.apache.hadoop.hbase.backup.RestoreDriver.parseAndRun(RestoreDriver.java:176)
at org.apache.hadoop.hbase.backup.RestoreDriver.doWork(RestoreDriver.java:216)
at org.apache.hadoop.hbase.backup.RestoreDriver.run(RestoreDriver.java:252)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:82)
at org.apache.hadoop.hbase.backup.RestoreDriver.main(RestoreDriver.java:224)
24/02/29 15:59:36 ERROR org.apache.hadoop.hbase.backup.RestoreDriver: Error while running restore backup
java.io.IOException: Can not restore from backup directory hdfs://hdfsns/tmp/backup_hbase2/backup_1709222166873/lily_tenant_acme/LILY_SETTINGS/0/f011305e78cd4196bf67d4dcca859ea1,hdfs://hdfsns/tmp/backup_hbase2/backup_1709222166873/lily_tenant_acme/LILY_SETTINGS/c6f5124f51d797fde1a43093747d04fa/0/800bad45ccd049fda6a439b60954cd06_SeqId_4_,hdfs://hdfsns/tmp/backup_hbase2/backup_1709222166873/lily_tenant_acme/LILY_SETTINGS/c6f5124f51d797fde1a43093747d04fa/0/e334bbc7089e4c3f8dab84b9b704824c_SeqId_6_ (check Hadoop and HBase logs)
at org.apache.hadoop.hbase.backup.mapreduce.MapReduceRestoreJob.run(MapReduceRestoreJob.java:103)
at org.apache.hadoop.hbase.backup.util.RestoreTool.incrementalRestoreTable(RestoreTool.java:205)
at org.apache.hadoop.hbase.backup.impl.RestoreTablesClient.restoreImages(RestoreTablesClient.java:185)
at org.apache.hadoop.hbase.backup.impl.RestoreTablesClient.restore(RestoreTablesClient.java:228)
at org.apache.hadoop.hbase.backup.impl.RestoreTablesClient.execute(RestoreTablesClient.java:264)
at org.apache.hadoop.hbase.backup.impl.BackupAdminImpl.restore(BackupAdminImpl.java:518)
at org.apache.hadoop.hbase.backup.RestoreDriver.parseAndRun(RestoreDriver.java:176)
at org.apache.hadoop.hbase.backup.RestoreDriver.doWork(RestoreDriver.java:216)
at org.apache.hadoop.hbase.backup.RestoreDriver.run(RestoreDriver.java:252)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:82)
at org.apache.hadoop.hbase.backup.RestoreDriver.main(RestoreDriver.java:224)
Caused by: org.apache.hadoop.hbase.TableNotFoundException: lily_tenant_acme:LILY_SETTINGS
at org.apache.hadoop.hbase.client.HBaseAdmin.getTableDescriptor(HBaseAdmin.java:635)
at org.apache.hadoop.hbase.client.HTable.getDescriptor(HTable.java:244)
at org.apache.hadoop.hbase.backup.mapreduce.MapReduceHFileSplitterJob.createSubmittableJob(MapReduceHFileSplitterJob.java:117)
at org.apache.hadoop.hbase.backup.mapreduce.MapReduceHFileSplitterJob.run(MapReduceHFileSplitterJob.java:165)
at org.apache.hadoop.hbase.backup.mapreduce.MapReduceRestoreJob.run(MapReduceRestoreJob.java:84)
... 10 more {code}
After this command, HBase has restored the table to the state of the full backup:
{code:java}
hbase:031:0> scan 'lily_tenant_acme:LILY_SETTINGS-restored'
ROW COLUMN+CELL
row1 column=0:a, timestamp=2024-02-27T18:49:46.489, value=val1
row1 column=0:test, timestamp=2024-02-29T15:46:29.956, value=value2 {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)