Can you clarify on what "doesn't work" a bit more? Do you get an exception or are you not receiving some data that you are expecting?
AFAICT, this API is helpful for a parallel monitoring of an issued schema update. In your code bits, which I will assume is serial, you already disable-update-enable table and complete the alter transaction before querying it (such that there isn't any pending operation to report). If the querying is done in a parallel process/monitor thread, then you may see in-flight results. On Mon, Dec 10, 2012 at 2:04 AM, Mesika, Asaf <[email protected]> wrote: > Hi, > > I've tried using HBaseAdmin.getAlterStatus to check on a > HBaseAdmin.modifyTable command I've issued, but it doesn't work. > > Sample Code: > > Modifying Table > tableDescriptor = admin.getTableDescriptor(tableNameBytes); > if (tableDescriptor.hasCoprocessor(observerClassname)) { > logger.info("Coprocessor installed already. Removing to > update jar location in any case"); > tableDescriptor.removeCoprocessor(observerClassname); > } > tableDescriptor.addCoprocessor(observerClassname, > hdfsJarPath, RegionObserver.PRIORITY_USER, null); > > logger.info("Disabling table "+tableName); > admin.disableTable(tableNameBytes); > logger.info("Modifying table "+tableName); > admin.modifyTable(Bytes.toBytes(tableName), tableDescriptor); > logger.info("Enabling table "+tableName); > admin.enableTable(tableNameBytes); > > Using alterStatus > byte[] tableName = it.next(); > try { > Pair<Integer,Integer> alterStatus = > admin.getAlterStatus(tableName); > if (alterStatus.getFirst() == alterStatus.getSecond()) { > it.remove(); > logger.info("Table "+Bytes.toString(tableName)+" was > altered successfully. "+notLoadedTables.size()+" tables remaining..."); > } else { > if (logger.isDebugEnabled()) { > logger.debug("Table "+Bytes.toString(tableName)+" > was not yet altered. Alter Status: "+ > alterStatus.getFirst()+" regions altered, > "+alterStatus.getSecond()+" total regions on table"); > } > } > } catch (IOException e) { > throw new RuntimeException("Failed getting alter status > for table name: "+Bytes.toString(tableName)); > } > > Does anyone know how to use it? > > Asaf > -- Harsh J
