Yes, I just want to limit the scan with the table by the table row key.
And I don't pass the startRow and endRow in GetList method.
I just pass the startRow and endRow to coprocessorExec method.
My Code is as below:
>>>>> results = table.coprocessorExec(IEndPoint_SA.class, startrow, endrow,
>>>>> new Batch.Call<IEndPoint_SA,Hashtable<String,Hashtable>>() {
>>>>> public Hashtable<String,Hashtable> call(IEndPoint_SA
>> instance)throws IOException{
>>>>> Hashtable<String,Hashtable> s = null;
>>>>> try {
>>>>> s=instance.GetList();
>>>>> } catch (ParseException e) {
>>>>> // TODO Auto-generated catch block
>>>>> e.printStackTrace();
>>>>> }
>>>>> return s;
>>>>> }
>>>>> });
Thanks a lot.
Best Regards / 商祺
郭伟 Guo Wei
在 2013-4-20,上午12:17,Gary Helmling <[email protected]> 写道:
> As others mention HBASE-6870 is about coprocessorExec() always scanning the
> full .META. table to determine region locations. Is this what you mean or
> are you talking about your coprocessor always scanning your full user table?
>
> If you want to limit the scan within regions in your user table, you'll
> need to pass startRow and endRow as parameters to your instance.GetList()
> method. Then when you create the region scanner in your coprocessor code,
> you'll need to set the start and end row yourself in order to limit the
> rows scanned.
>
>
> On Fri, Apr 19, 2013 at 5:59 AM, Ted Yu <[email protected]> wrote:
>
>> Please upgrade to 0.94.6.1 which is more stable.
>>
>> Cheers
>>
>> On Apr 19, 2013, at 4:58 AM, GuoWei <[email protected]> wrote:
>>
>>>
>>> We use base 0.94.1 in our production environment.
>>>
>>>
>>> Best Regards / 商祺
>>> 郭伟 Guo Wei
>>>
>>> 在 2013-4-19,下午6:01,Ted Yu <[email protected]> 写道:
>>>
>>>> Which hbase version are you using ?
>>>>
>>>> Thanks
>>>>
>>>> On Apr 19, 2013, at 2:49 AM, GuoWei <[email protected]> wrote:
>>>>
>>>>> Hello,
>>>>>
>>>>> We use HBase core processor endpoint to process realtime data. But
>> when I use coreprocessorExec method to scan table and pass startRow and
>> endRow. It always scan all table instead of the result between the startRow
>> and endRow.
>>>>>
>>>>> my code.
>>>>>
>>>>> results = table.coprocessorExec(IEndPoint_SA.class, startrow, endrow,
>>>>> new Batch.Call<IEndPoint_SA,Hashtable<String,Hashtable>>() {
>>>>> public Hashtable<String,Hashtable> call(IEndPoint_SA
>> instance)throws IOException{
>>>>> Hashtable<String,Hashtable> s = null;
>>>>> try {
>>>>> s=instance.GetList();
>>>>> } catch (ParseException e) {
>>>>> // TODO Auto-generated catch block
>>>>> e.printStackTrace();
>>>>> }
>>>>> return s;
>>>>> }
>>>>> });
>>>>>
>>>>>
>>>>>
>>>>> Best Regards / 商祺
>>>>> 郭伟 Guo Wei
>>>>> -----------------------------------------------------
>>>>
>>>
>>