/** * Restores all tables from the metadata backup into the running Fiji instance. * * @param backup the deserialized backup of the metadata. * @param fiji the connected Fiji instance. * @throws java.io.IOException if there is an error communicating with HBase. */ public void restoreTables(MetadataBackup backup, CassandraFiji fiji) throws IOException { final CassandraAdmin admin = fiji.getCassandraAdmin(); final FijiMetaTable metaTable = fiji.getMetaTable(); CassandraMetaTable.uninstall(admin, fiji.getURI()); CassandraMetaTable.install(admin, fiji.getURI()); final Map<String, TableBackup> tables = backup.getMetaTable().getTables(); for (Map.Entry<String, TableBackup> layoutEntry : tables.entrySet()) { final String tableName = layoutEntry.getKey(); LOG.debug("Found table backup entry for " + tableName); final TableBackup tableBackup = layoutEntry.getValue(); restoreTable(tableName, tableBackup, metaTable, fiji); } }
/** * Restores all tables from the metadata backup into the running Fiji instance. * * @param backup the deserialized backup of the metadata. * @param fiji the connected Fiji instance. * @throws IOException if there is an error communicating with HBase. */ public void restoreTables(MetadataBackup backup, Fiji fiji) throws IOException { final HBaseFactory hbaseFactory = HBaseFactory.Provider.get(); final HBaseAdmin hbaseAdmin = hbaseFactory.getHBaseAdminFactory(fiji.getURI()).create(fiji.getConf()); final FijiMetaTable metaTable = fiji.getMetaTable(); try { HBaseMetaTable.uninstall(hbaseAdmin, fiji.getURI()); HBaseMetaTable.install(hbaseAdmin, fiji.getURI()); final Map<String, TableBackup> tables = backup.getMetaTable().getTables(); for (Map.Entry<String, TableBackup> layoutEntry : tables.entrySet()) { final String tableName = layoutEntry.getKey(); LOG.debug("Found table backup entry for " + tableName); final TableBackup tableBackup = layoutEntry.getValue(); restoreTable(tableName, tableBackup, metaTable, fiji); } } finally { ResourceUtils.closeOrLog(hbaseAdmin); } }