I can attach the code that I tried. Here as the HTD is getting modified we may need to call modifyTable(). My testclass did try this while doing creation of table itself.
I will attach shortly. Regards Ram > -----Original Message----- > From: anil gupta [mailto:[email protected]] > Sent: Friday, October 19, 2012 10:29 AM > To: [email protected] > Subject: Re: Unable to add co-processor to table through HBase api > > 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 <[email protected]> > wrote: > > > > > > > > >hAdmin.getTableDescriptor(Bytes.toBytes(tableName)).addCoprocessor(cla > ssName, > > 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 [[email protected]] > > Sent: Friday, October 19, 2012 2:46 AM > > To: [email protected] > > 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(clas > sName, > > new Path("hdfs://hbasecluster/tmp/hbase_cdh4.jar"), > > Coprocessor.PRIORITY_USER,map); > > > > if( > > > > > hAdmin.getTableDescriptor(Bytes.toBytes(tableName)).hasCoprocessor(clas > sName) > > ) > > { > > System.err.println("YIPPPPPPPPPIEEEEE!!!!!!!"); > > } > > hAdmin.enableTable(tableName); > > > > } > > hAdmin.close(); > > } > > > > Thanks, > > Anil Gupta > > > > On Wed, Oct 17, 2012 at 9:27 PM, Ramkrishna.S.Vasudevan < > > [email protected]> 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:[email protected]] > > > > Sent: Wednesday, October 17, 2012 11:34 PM > > > > To: [email protected] > > > > 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 < > > > > [email protected]> 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:[email protected]] > > > > > > Sent: Wednesday, October 17, 2012 4:05 AM > > > > > > To: [email protected] > > > > > > 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
