Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
HBase >> mail # user >> Coprocessor execution


Copy link to this message
-
Re: Coprocessor execution
Hello,

Any info about specific numbers (number of regions vs response time,
etc) will help.

Btw, for rowcount, you should use FirstKeyOnlyFilter.
And in your code, you should add a callback to sum individual Region
side results (though that is not related to response time, but with
your rowcount final result).
Thanks,
Himanshu

On Wed, Mar 21, 2012 at 2:48 AM, raghavendhra rahul
<[EMAIL PROTECTED]> wrote:
> This is my coprocessor end point
>
> public class RowcountEndpoint extends BaseEndpointCoprocessor implements
>        RowcountProtocol {
>
>    @Override
>    public long getRowcount() throws IOException {
>        Scan scan = new Scan();
>        scan.setCaching(100);
>        scan.setCacheBlocks(false);
>        RegionCoprocessorEnvironment env > (RegionCoprocessorEnvironment)getEnvironment();
>        InternalScanner scanner = env.getRegion().getScanner(scan);
>        long result = 0;
>        try{
>            List<KeyValue> val = new ArrayList<KeyValue>();
>            boolean done = false;
>            do{
>                val.clear();
>                done = scanner.next(val);
>                result+=1;
>            }while(done);
>        }
>        finally{
>            scanner.close();
>        }
>        return result;
>    }
> }
>
>
> This is my client
>
> public class RowClient {
>    public Map<byte[], Long> getcount(String name) throws Throwable {
>
>        Configuration conf = HBaseConfiguration.create();
>        HTable table = new HTable(conf, name);
>        Map<byte[], Long> res;
>        try {
>            res = table.coprocessorExec(RowcountProtocol.class, null, null,
>                    new Batch.Call<RowcountProtocol, Long>() {
>                        @Override
>                        public Long call(RowcountProtocol counter)
>                                throws IOException {
>                            return counter.getRowcount();
>                        }
>                    });
>        } finally {
>
>        }
>        return res;
>    }