Coprocessors are only in trunk and will be part of 0.92. If you want to use them now you'll have to build hbase from source yourself.
-- Lars Xian Woo <[email protected]> schrieb: >Excuse me, I‘ve got a question here. Can we use coprocessor in hbase-0.90-*? >I've heard of a saying that we can't use coprocessor until >the hbase-0.91-*. And is there any possible way to get the hbase-0.91-* >release or even after that? >Thanks. >With regards. > >Woo > >2011/8/11 Himanshu Vashishtha <[email protected]> > >> Client side batch processing is done at RegionServer level, i.e., all >> Action >> objects are grouped together per RS basis and send in one RPC. Once the >> batch arrives at a RS, it gets distributed across corresponding Regions, >> and >> these Action objects are processed, one by one. This include Coprocessor's >> Exec objects too. >> So, a coprocessor is working at a "Region" level granularity. >> >> If you want to take some action (process bunch of rows of another table >> from >> a CP), one can get a HTable instance from Environment instance of a >> Coprocessor, and use the same mechanism as used by the client side. >> Will that help in your use-case? >> >> Thanks, >> Himanshu >> >> >> On Wed, Aug 10, 2011 at 11:46 PM, lars hofhansl <[email protected]> >> wrote: >> >> > Here's another coprocessor question... >> > >> > From the client we batch operations in order to reduce the number of >> round >> > trips. >> > Currently there is no way (that I can find) to make use of those batches >> in >> > coprocessors. >> > >> > This is an issue when, for example, sets of puts and gets are (partially) >> > forwarded to another table by the coprocessor. >> > Right now this would need to use many single puts/deletes/gets from the >> > various {pre|post}{put|delete|get} hooks. >> > >> > There is no useful demarcation; other than maybe waiting a few >> miliseconds, >> > which is awkward. >> > >> > >> > Of course this forwarding could be done directly from the client, put >> then >> > what's the point of coprocessors? >> > >> > I guess there could either be a {pre|post}Multi on RegionObserver >> (although >> > HRegionServer.multi does a lot of munging). >> > Or maybe a general {pre|post}Request with no arguments - in which case it >> > would be at least possible to write code in the coprocessor >> > to collect the puts/deletes/etc through the normal single >> > prePut/preDelete/etc hooks and then batch-process them in postRequest(). >> > >> > -- Lars >> > >>
