Hello Stack,

Yes, here is the stack trace when deleting an index from my table, the index 
contains the .regionfile in it but not the INDEX folder, that is why I say is 
incomplete. It seems that when I try to delete the index it cannot find the 
corresponding IndexSpecification in the IndexedTableAdmin file (line 113), and 
hence it crashes. On the other hand the indexed table name exists on hbase and 
I cannot recreate the index with the same name.

See bellow and thanks !
Adrian

    IndexSpecification spec = indexDesc.getIndex(indexId);
    indexDesc.removeIndex(indexId);
here =>    this.disableTable(spec.getIndexedTableName(baseTableName)); 

Stacktrace:

     [java] 10/01/31 15:03:08 INFO zookeeper.ClientCnxn: Attempting connection 
to server localhost/127.0.0.1:2181
     [java] 10/01/31 15:03:08 INFO zookeeper.ClientCnxn: Priming connection to 
java.nio.channels.SocketChannel[connected local=/127.0.0.1:38070 
remote=localhost/127.0.0.1:2181]
     [java] 10/01/31 15:03:08 INFO zookeeper.ClientCnxn: Server connection 
successful
     [java] Removing: O_ORDERDATE_O_ORDERPRIORITY_O_ORDERKEY_index from table: 
orders
     [java] 10/01/31 15:03:10 INFO tableindexed.IndexedTableAdmin: Disabled 
orders
     [java] java.lang.NullPointerException
     [java]     at 
org.apache.hadoop.hbase.client.tableindexed.IndexedTableAdmin.removeIndex(IndexedTableAdmin.java:113)
     [java]     at hbase.query.builder.IndexGenerator.remove(Unknown Source)
     [java]     at hbase.query.builder.IndexGenerator.deleteIndexes(Unknown 
Source)
     [java]     at hbase.query.builder.IndexGenerator.main(Unknown Source)
     [java]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     [java]     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     [java]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [java]     at java.lang.reflect.Method.invoke(Method.java:597)
     [java]     at 
org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:217)
     [java]     at 
org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:152)
     [java]     at org.apache.tools.ant.taskdefs.Java.run(Java.java:764)
     [java]     at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:218)
     [java]     at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:132)
     [java]     at org.apache.tools.ant.taskdefs.Java.execute(Java.java:105)
     [java]     at 
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
     [java]     at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
     [java]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [java]     at java.lang.reflect.Method.invoke(Method.java:597)
     [java]     at 
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
     [java]     at org.apache.tools.ant.Task.perform(Task.java:348)
     [java]     at org.apache.tools.ant.Target.execute(Target.java:357)
     [java]     at org.apache.tools.ant.Target.performTasks(Target.java:385)
     [java]     at 
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
     [java]     at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
     [java]     at 
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
     [java]     at 
org.apache.tools.ant.Project.executeTargets(Project.java:1189)
     [java]     at org.apache.tools.ant.Main.runBuild(Main.java:758)
     [java]     at org.apache.tools.ant.Main.startAnt(Main.java:217)
     [java]     at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
     [java]     at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)




Where my remove function is:
    private static void remove(IndexedTableAdmin admin, Index index) {
        try {
            admin.removeIndex(Bytes.toBytes(index.tableName), index.indexName);
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }


If I try to make another index with the same name I get this:

     [java] 10/01/31 14:49:30 INFO zookeeper.ClientCnxn: Attempting connection 
to server localhost/127.0.0.1:2181                                              
                     
     [java] 10/01/31 14:49:30 INFO zookeeper.ClientCnxn: Priming connection to 
java.nio.channels.SocketChannel[connected local=/127.0.0.1:42141 
remote=localhost/127.0.0.1:2181]    
     [java] 10/01/31 14:49:30 INFO zookeeper.ClientCnxn: Server connection 
successful                                                                      
                         
     [java] 10/01/31 14:49:30 WARN tableindexed.IndexedTableAdmin: Adding index 
to existing table [orders], this may take a long time                           
                    
     [java] 10/01/31 14:49:30 WARN tableindexed.IndexedTableAdmin: Not putting 
table in readonly, if its being written to, the index may get out of sync       
                     
     [java] org.apache.hadoop.hbase.TableExistsException: 
org.apache.hadoop.hbase.TableExistsException: 
orders-O_ORDERDATE_O_ORDERPRIORITY_O_ORDERKEY_index                         
     [java]     at 
org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:793)            
                                                                                
 
     [java]     at 
org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:757)            
                                                                                
 
     [java]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
                                                                                
                    
     [java]     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)   
                                                                                
 
     [java]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                                                                            
     [java]     at java.lang.reflect.Method.invoke(Method.java:597)             
                                                                                
                    
     [java]     at 
org.apache.hadoop.hbase.ipc.HBaseRPC$Server.call(HBaseRPC.java:648)             
                                                                                
 
     [java]     at 
org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:915)       
                                                                                
 
     [java]
     [java]     at 
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
     [java]     at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
     [java]     at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
     [java]     at 
java.lang.reflect.Constructor.newInstance(Constructor.java:513)
     [java]     at 
org.apache.hadoop.hbase.RemoteExceptionHandler.decodeRemoteException(RemoteExceptionHandler.java:94)
     [java]     at 
org.apache.hadoop.hbase.client.HBaseAdmin.createTableAsync(HBaseAdmin.java:208)
     [java]     at 
org.apache.hadoop.hbase.client.HBaseAdmin.createTable(HBaseAdmin.java:165)
     [java]     at 
org.apache.hadoop.hbase.client.tableindexed.IndexedTableAdmin.addIndex(IndexedTableAdmin.java:125)
     [java]     at hbase.query.builder.IndexGenerator.createIndex(Unknown 
Source)
     [java]     at hbase.query.builder.IndexGenerator.createIndexes(Unknown 
Source)
     [java]     at hbase.query.builder.IndexGenerator.main(Unknown Source)
     [java]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     [java]     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     [java]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [java]     at java.lang.reflect.Method.invoke(Method.java:597)
     [java]     at 
org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:217)
     [java]     at 
org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:152)
     [java]     at org.apache.tools.ant.taskdefs.Java.run(Java.java:764)
     [java]     at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:218)
     [java]     at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:132)
     [java]     at org.apache.tools.ant.taskdefs.Java.execute(Java.java:105)
     [java]     at 
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
     [java]     at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
     [java]     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [java]     at java.lang.reflect.Method.invoke(Method.java:597)
     [java]     at 
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
     [java]     at org.apache.tools.ant.Task.perform(Task.java:348)
     [java]     at org.apache.tools.ant.Target.execute(Target.java:357)
     [java]     at org.apache.tools.ant.Target.performTasks(Target.java:385)
     [java]     at 
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
     [java]     at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
     [java]     at 
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
     [java]     at 
org.apache.tools.ant.Project.executeTargets(Project.java:1189)
     [java]     at org.apache.tools.ant.Main.runBuild(Main.java:758)
     [java]     at org.apache.tools.ant.Main.startAnt(Main.java:217)
     [java]     at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
     [java]     at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)


Moreover, if I try to remove the indexed table manually from HBase I get this:

NativeException: org.apache.hadoop.hbase.client.RegionOfflineException: region 
offline: orders-O_ORDERDATE_O_ORDERPRIORITY_O_ORDERKEY_index,,1264637081006
        from org/apache/hadoop/hbase/client/HConnectionManager.java:658:in 
`locateRegionInMeta'
        from org/apache/hadoop/hbase/client/HConnectionManager.java:594:in 
`locateRegion'
        from org/apache/hadoop/hbase/client/HConnectionManager.java:557:in 
`locateRegion'
        from org/apache/hadoop/hbase/client/HTable.java:127:in `<init>'
        from org/apache/hadoop/hbase/client/HTable.java:105:in `<init>'




________________________________
From: Stack <[email protected]>
To: [email protected]
Sent: Sat, January 30, 2010 9:38:22 PM
Subject: Re: removing incomplete indexes

Sorry, can you say more?  Which indices and whats the full stacktrace
on the NPE?
Thanks,
St.Ack

On Fri, Jan 29, 2010 at 12:31 PM, Adrian Popescu
<[email protected]> wrote:
> Hello,
>
> I am wondering if there is a way of removing *incomplete* indexes after I 
> stopped the process of building them in the middle; if I try to remove it I 
> get NullPointerException, as the index is not there, but on the other hand I 
> cannot build the same index again, as I receive the opposite exception that 
> this index name was already taken (TableExistsException). Is there a way to 
> force the removal ?
>
> Thank you,
> Adrian
>
>
>



      

Reply via email to