You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Kirill Shabunov <e2...@yahoo.com> on 2009/02/20 19:40:31 UTC

Secondary Indexes problem.

Hi!

I am trying to use the new secondary indexing feature (HBASE-883) on 
Hadoop/HBase 0.19.0. The org.apache.hadoop.hbase.client.tableindexed 
package description instructs to do the following:

"To enable the indexing, modify hbase-site.xml to turn on the 
IndexedRegionServer. This is done by setting hbase.regionserver.class to 
org.apache.hadoop.hbase.ipc.IndexedRegionInterface and 
hbase.regionserver.impl  to 
org.apache.hadoop.hbase.regionserver.tableindexed.IndexedRegionServer"

I fixed my hbase-site.xml accordingly. Now HBase does not start. This is 
what I get in the logs (same thing in both master and region):

2009-02-20 21:13:16,511 INFO org.apache.hadoop.ipc.HBaseServer: IPC 
Server handler 6 on 60020, call 
getProtocolVersion(org.apache.hadoop.hbase.ipc.IndexedRegionInterface, 
15) from 213.221.54.5:48893: error: java.io.IOException: Unknown 
protocol to name node: org.apache.hadoop.hbase.ipc.IndexedRegionInterface
java.io.IOException: Unknown protocol to name node: 
org.apache.hadoop.hbase.ipc.IndexedRegionInterface
	at 
org.apache.hadoop.hbase.regionserver.HRegionServer.getProtocolVersion(HRegionServer.java:2140)
	at 
org.apache.hadoop.hbase.regionserver.transactional.TransactionalRegionServer.getProtocolVersion(TransactionalRegionServer.java:92)
	at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
	at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.hadoop.hbase.ipc.HBaseRPC$Server.call(HBaseRPC.java:632)
	at 
org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:895)

I checked the code. My first guess is IndexedRegionServer should override
    public long getProtocolVersion(final String protocol, final long 
clientVersion)
similar to TransactionalRegionServer.

Did anybody see this problem? What do you think?

Thanks a lot in advance,
Kirill

Re: Secondary Indexes problem.

Posted by stack <st...@duboce.net>.
Open an issue in apache JIRA.  Here's a link:
https://issues.apache.org/jira/secure/CreateIssue!default.jspa.  Be sure to
select 'hadoop hbase' as the project.  You may have to make yourself an
account if you want to submit a patch.  Let us know if you can't figure it.

Thanks,
St.Ack

On Sat, Feb 21, 2009 at 1:42 PM, Kirill Shabunov <e2...@yahoo.com> wrote:

> Thanks for the answer!
>
> Yes, I tried to remove hbase.regionserver.class property or set it to
> TransactionalInterface -- the cluster starts in both cases. But my program
> that tries to create a table with an index does not work. :)
>
> I'll be able to get back to this on Tuesday. I am going to try this fix and
> see what happens. If I succeed what is the patch submission procedure?
>
> --Kirill
>
> Clint Morgan wrote:
>
>> Yes, that looks like the right way to fix it.
>>
>> Quick fix to make it work now, I bet you can just remove that
>> hbase.regionserver.class property (or set it to the
>> TransactionalInterface).
>>
>> I see now thats what I had been doing in my deployment. Care to submit a
>> patch with the real fix?
>>
>> -clint
>>
>> On Fri, Feb 20, 2009 at 10:40 AM, Kirill Shabunov <e2...@yahoo.com>
>> wrote:
>>
>>  Hi!
>>>
>>> I am trying to use the new secondary indexing feature (HBASE-883) on
>>> Hadoop/HBase 0.19.0. The org.apache.hadoop.hbase.client.tableindexed
>>> package
>>> description instructs to do the following:
>>>
>>> "To enable the indexing, modify hbase-site.xml to turn on the
>>> IndexedRegionServer. This is done by setting hbase.regionserver.class to
>>> org.apache.hadoop.hbase.ipc.IndexedRegionInterface and
>>> hbase.regionserver.impl  to
>>> org.apache.hadoop.hbase.regionserver.tableindexed.IndexedRegionServer"
>>>
>>> I fixed my hbase-site.xml accordingly. Now HBase does not start. This is
>>> what I get in the logs (same thing in both master and region):
>>>
>>> 2009-02-20 21:13:16,511 INFO org.apache.hadoop.ipc.HBaseServer: IPC
>>> Server
>>> handler 6 on 60020, call
>>> getProtocolVersion(org.apache.hadoop.hbase.ipc.IndexedRegionInterface,
>>> 15)
>>> from 213.221.54.5:48893: error: java.io.IOException: Unknown protocol to
>>> name node: org.apache.hadoop.hbase.ipc.IndexedRegionInterface
>>> java.io.IOException: Unknown protocol to name node:
>>> org.apache.hadoop.hbase.ipc.IndexedRegionInterface
>>>       at
>>>
>>> org.apache.hadoop.hbase.regionserver.HRegionServer.getProtocolVersion(HRegionServer.java:2140)
>>>       at
>>>
>>> org.apache.hadoop.hbase.regionserver.transactional.TransactionalRegionServer.getProtocolVersion(TransactionalRegionServer.java:92)
>>>       at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
>>>       at
>>>
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>       at java.lang.reflect.Method.invoke(Method.java:597)
>>>       at
>>> org.apache.hadoop.hbase.ipc.HBaseRPC$Server.call(HBaseRPC.java:632)
>>>       at
>>> org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:895)
>>>
>>> I checked the code. My first guess is IndexedRegionServer should override
>>>  public long getProtocolVersion(final String protocol, final long
>>> clientVersion)
>>> similar to TransactionalRegionServer.
>>>
>>> Did anybody see this problem? What do you think?
>>>
>>> Thanks a lot in advance,
>>> Kirill
>>>
>>>
>>

Re: Secondary Indexes problem.

Posted by Kirill Shabunov <e2...@yahoo.com>.
Thanks for the answer!

Yes, I tried to remove hbase.regionserver.class property or set it to 
TransactionalInterface -- the cluster starts in both cases. But my 
program that tries to create a table with an index does not work. :)

I'll be able to get back to this on Tuesday. I am going to try this fix 
and see what happens. If I succeed what is the patch submission procedure?

--Kirill

Clint Morgan wrote:
> Yes, that looks like the right way to fix it.
> 
> Quick fix to make it work now, I bet you can just remove that
> hbase.regionserver.class property (or set it to the TransactionalInterface).
> 
> I see now thats what I had been doing in my deployment. Care to submit a
> patch with the real fix?
> 
> -clint
> 
> On Fri, Feb 20, 2009 at 10:40 AM, Kirill Shabunov <e2...@yahoo.com> wrote:
> 
>> Hi!
>>
>> I am trying to use the new secondary indexing feature (HBASE-883) on
>> Hadoop/HBase 0.19.0. The org.apache.hadoop.hbase.client.tableindexed package
>> description instructs to do the following:
>>
>> "To enable the indexing, modify hbase-site.xml to turn on the
>> IndexedRegionServer. This is done by setting hbase.regionserver.class to
>> org.apache.hadoop.hbase.ipc.IndexedRegionInterface and
>> hbase.regionserver.impl  to
>> org.apache.hadoop.hbase.regionserver.tableindexed.IndexedRegionServer"
>>
>> I fixed my hbase-site.xml accordingly. Now HBase does not start. This is
>> what I get in the logs (same thing in both master and region):
>>
>> 2009-02-20 21:13:16,511 INFO org.apache.hadoop.ipc.HBaseServer: IPC Server
>> handler 6 on 60020, call
>> getProtocolVersion(org.apache.hadoop.hbase.ipc.IndexedRegionInterface, 15)
>> from 213.221.54.5:48893: error: java.io.IOException: Unknown protocol to
>> name node: org.apache.hadoop.hbase.ipc.IndexedRegionInterface
>> java.io.IOException: Unknown protocol to name node:
>> org.apache.hadoop.hbase.ipc.IndexedRegionInterface
>>        at
>> org.apache.hadoop.hbase.regionserver.HRegionServer.getProtocolVersion(HRegionServer.java:2140)
>>        at
>> org.apache.hadoop.hbase.regionserver.transactional.TransactionalRegionServer.getProtocolVersion(TransactionalRegionServer.java:92)
>>        at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
>>        at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>        at java.lang.reflect.Method.invoke(Method.java:597)
>>        at
>> org.apache.hadoop.hbase.ipc.HBaseRPC$Server.call(HBaseRPC.java:632)
>>        at
>> org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:895)
>>
>> I checked the code. My first guess is IndexedRegionServer should override
>>   public long getProtocolVersion(final String protocol, final long
>> clientVersion)
>> similar to TransactionalRegionServer.
>>
>> Did anybody see this problem? What do you think?
>>
>> Thanks a lot in advance,
>> Kirill
>>
> 

Re: Secondary Indexes problem.

Posted by Clint Morgan <cl...@troove.net>.
Yes, that looks like the right way to fix it.

Quick fix to make it work now, I bet you can just remove that
hbase.regionserver.class property (or set it to the TransactionalInterface).

I see now thats what I had been doing in my deployment. Care to submit a
patch with the real fix?

-clint

On Fri, Feb 20, 2009 at 10:40 AM, Kirill Shabunov <e2...@yahoo.com> wrote:

> Hi!
>
> I am trying to use the new secondary indexing feature (HBASE-883) on
> Hadoop/HBase 0.19.0. The org.apache.hadoop.hbase.client.tableindexed package
> description instructs to do the following:
>
> "To enable the indexing, modify hbase-site.xml to turn on the
> IndexedRegionServer. This is done by setting hbase.regionserver.class to
> org.apache.hadoop.hbase.ipc.IndexedRegionInterface and
> hbase.regionserver.impl  to
> org.apache.hadoop.hbase.regionserver.tableindexed.IndexedRegionServer"
>
> I fixed my hbase-site.xml accordingly. Now HBase does not start. This is
> what I get in the logs (same thing in both master and region):
>
> 2009-02-20 21:13:16,511 INFO org.apache.hadoop.ipc.HBaseServer: IPC Server
> handler 6 on 60020, call
> getProtocolVersion(org.apache.hadoop.hbase.ipc.IndexedRegionInterface, 15)
> from 213.221.54.5:48893: error: java.io.IOException: Unknown protocol to
> name node: org.apache.hadoop.hbase.ipc.IndexedRegionInterface
> java.io.IOException: Unknown protocol to name node:
> org.apache.hadoop.hbase.ipc.IndexedRegionInterface
>        at
> org.apache.hadoop.hbase.regionserver.HRegionServer.getProtocolVersion(HRegionServer.java:2140)
>        at
> org.apache.hadoop.hbase.regionserver.transactional.TransactionalRegionServer.getProtocolVersion(TransactionalRegionServer.java:92)
>        at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
>        at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>        at java.lang.reflect.Method.invoke(Method.java:597)
>        at
> org.apache.hadoop.hbase.ipc.HBaseRPC$Server.call(HBaseRPC.java:632)
>        at
> org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:895)
>
> I checked the code. My first guess is IndexedRegionServer should override
>   public long getProtocolVersion(final String protocol, final long
> clientVersion)
> similar to TransactionalRegionServer.
>
> Did anybody see this problem? What do you think?
>
> Thanks a lot in advance,
> Kirill
>