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 <[email protected]> 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