Hi Anoop, Sorry, i am unable to understand what you mean by "have to modify the table calling Admin API??". Am i missing some other calls in my code?
Thanks, Anil Gupta On Thu, Oct 18, 2012 at 9:43 PM, Anoop Sam John <anoo...@huawei.com> wrote: > > > >hAdmin.getTableDescriptor(Bytes.toBytes(tableName)).addCoprocessor(className, > new Path("hdfs://hbasecluster/tmp/hbase_cdh4.jar"), > Coprocessor.PRIORITY_USER,map); > > Anil, > > Don't you have to modify the table calling Admin API?? !!!!! Not seeing > that code here... > > -Anoop- > > ________________________________________ > From: anil gupta [anilgupt...@gmail.com] > Sent: Friday, October 19, 2012 2:46 AM > To: user@hbase.apache.org > Subject: Re: Unable to add co-processor to table through HBase api > > Hi Folks, > > Still, i am unable to add the co-processors through HBase client api. This > time i tried loading the coprocessor by providing the jar path along with > parameters. But, it failed. > I was able to add the same coprocessor to the table through HBase shell. > I also dont see any logs regarding adding coprocessors in regionservers > when i try to add the co-processor through api.I strongly feel that HBase > client api for adding coprocessor seems to be broken. Please let me know if > the code below seems to be problematic. > > Here is the code i used to add the coprocessor through HBase api: > private static void modifyTable() throws IOException > { > Configuration conf = HBaseConfiguration.create(); > HBaseAdmin hAdmin = new HBaseAdmin(conf); > String tableName = "txn"; > hAdmin.disableTable(tableName); > if(!hAdmin.isTableEnabled(tableName)) > { > System.out.println("Trying to add coproc to table"); // using err so > that it's easy to read this on eclipse console. > HashMap<String, String> map = new HashMap<String,String>(); > map.put("arg1", "batchdate"); > String className = > "com.intuit.ihub.hbase.poc.coprocessor.observer.IhubTxnRegionObserver"; > > > hAdmin.getTableDescriptor(Bytes.toBytes(tableName)).addCoprocessor(className, > new Path("hdfs://hbasecluster/tmp/hbase_cdh4.jar"), > Coprocessor.PRIORITY_USER,map); > > if( > > hAdmin.getTableDescriptor(Bytes.toBytes(tableName)).hasCoprocessor(className) > ) > { > System.err.println("YIPPPPPPPPPIEEEEE!!!!!!!"); > } > hAdmin.enableTable(tableName); > > } > hAdmin.close(); > } > > Thanks, > Anil Gupta > > On Wed, Oct 17, 2012 at 9:27 PM, Ramkrishna.S.Vasudevan < > ramkrishna.vasude...@huawei.com> wrote: > > > Do let me know if you are stuck up. May be I did not get your actual > > problem. > > > > All the best. > > > > Regards > > Ram > > > > > -----Original Message----- > > > From: anil gupta [mailto:anilgupt...@gmail.com] > > > Sent: Wednesday, October 17, 2012 11:34 PM > > > To: user@hbase.apache.org > > > Subject: Re: Unable to add co-processor to table through HBase api > > > > > > Hi Ram, > > > > > > The table exists and I don't get any error while running the program(i > > > would get an error if the table did not exist). I am running a > > > distributed > > > cluster. > > > > > > Tried following additional ways also: > > > > > > 1. I tried loading the AggregationImplementation coproc. > > > 2. I also tried adding the coprocs while the table is enabled. > > > > > > > > > Also had a look at the JUnit test cases and could not find any > > > difference. > > > > > > I am going to try adding the coproc along with jar in Hdfs and see what > > > happens. > > > > > > Thanks, > > > Anil Gupta > > > > > > On Tue, Oct 16, 2012 at 11:44 PM, Ramkrishna.S.Vasudevan < > > > ramkrishna.vasude...@huawei.com> wrote: > > > > > > > I tried out a sample test class. It is working properly. I just > > > have a > > > > doubt whether you are doing the > > > > Htd.addCoprocessor() step before creating the table? Try that way > > > hope it > > > > should work. > > > > > > > > Regards > > > > Ram > > > > > > > > > -----Original Message----- > > > > > From: anil gupta [mailto:anilgupt...@gmail.com] > > > > > Sent: Wednesday, October 17, 2012 4:05 AM > > > > > To: user@hbase.apache.org > > > > > Subject: Unable to add co-processor to table through HBase api > > > > > > > > > > Hi All, > > > > > > > > > > I would like to add a RegionObserver to a HBase table through HBase > > > > > api. I > > > > > don't want to put this RegionObserver as a user or system co- > > > processor > > > > > in > > > > > hbase-site.xml since this is specific to a table. So, option of > > > using > > > > > hbase > > > > > properties is out. I have already copied the jar file in the > > > classpath > > > > > of > > > > > region server and restarted the cluster. > > > > > > > > > > Can any one point out the problem in following code for adding the > > > > > co-processor to the table: > > > > > private void modifyTable(String name) throws IOException > > > > > { > > > > > Configuration conf = HBaseConfiguration.create(); > > > > > HBaseAdmin hAdmin = new HBaseAdmin(conf); > > > > > hAdmin.disableTable("txn_subset"); > > > > > if(!hAdmin.isTableEnabled("txn_subset")) > > > > > { > > > > > System.err.println("Trying to add coproc to table"); // using > > > err > > > > > so > > > > > that it's easy to read this on eclipse console. > > > > > > > > > > > > > hAdmin.getTableDescriptor(Bytes.toBytes("txn_subset")).addCoprocessor(" > > > > > com.intuit.hbase.poc.coprocessor.observer.IhubTxnRegionObserver"); > > > > > if( > > > > > > > > hAdmin.getTableDescriptor(Bytes.toBytes("txn_subset")).hasCoprocessor(" > > > > > com.intuit.hbase.poc.coprocessor.observer.IhubTxnRegionObserver") > > > > > ) > > > > > { > > > > > System.err.println("YIPPPPPPPPPIEEEEE!!!!!!!"); > > > > > } > > > > > hAdmin.enableTable("ihub_txn_subset"); > > > > > } > > > > > hAdmin.close(); > > > > > }* > > > > > * > > > > > -- > > > > > Thanks & Regards, > > > > > Anil Gupta > > > > > > > > > > > > > > > > > -- > > > Thanks & Regards, > > > Anil Gupta > > > > > > > -- > Thanks & Regards, > Anil Gupta > -- Thanks & Regards, Anil Gupta