Secondary index
----------------
Key: HBASE-1303
URL: https://issues.apache.org/jira/browse/HBASE-1303
Project: Hadoop HBase
Issue Type: Bug
Components: regionserver
Affects Versions: 0.19.1
Reporter: Ken Weiner
HBase does not start up when configured to use the IndexedRegionServer with the
following properties in hbase-site.xml
{code:xml}
<property>
<name>hbase.regionserver.class</name>
<value>org.apache.hadoop.hbase.ipc.IndexedRegionInterface</value>
<description>Indexing is enabled for this hbase server. </description>
</property>
<property>
<name>hbase.regionserver.impl</name>
<value>org.apache.hadoop.hbase.regionserver.tableindexed.IndexedRegionServer</value>
<description>Indexing is enabled for this hbase server.</description>
</property>
{code}
This results in the following exception in the log:
{noformat}
2009-03-31 12:33:35,993 INFO org.apache.hadoop.ipc.HBaseServer: IPC Server
handler 8 on 45026, call
getProtocolVersion(org.apache.hadoop.hbase.ipc.IndexedRegionInterface, 16) from
127.0.0.1:60854: 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:2146)
at
org.apache.hadoop.hbase.regionserver.transactional.TransactionalRegionServer.getProtocolVersion(TransactionalRegionServer.java:92)
at sun.reflect.GeneratedMethodAccessor5.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:912)
2009-03-31 12:33:35,994 WARN org.apache.hadoop.hbase.master.BaseScanner: Scan
ROOT region
java.io.IOException: java.io.IOException: Unknown protocol to name node:
org.apache.hadoop.hbase.ipc.IndexedRegionInterface
at
org.apache.hadoop.hbase.regionserver.HRegionServer.getProtocolVersion(HRegionServer.java:2146)
at
org.apache.hadoop.hbase.regionserver.transactional.TransactionalRegionServer.getProtocolVersion(TransactionalRegionServer.java:92)
at sun.reflect.GeneratedMethodAccessor5.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:912)
{noformat}
There is also a mailing list post on this problem:
http://markmail.org/message/6pugle5uegiijjbc?q=Secondary+Indexes+problem
I think the solution is to implement {{public long getProtocolVersion(final
String protocol, final long clientVersion)}} in
{{org.apache.hadoop.hbase.regionserver.tableindexed.IndexedRegionServer}} as
follows:
{code:java}
@Override
public long getProtocolVersion(final String protocol, final long
clientVersion)
throws IOException {
if (protocol.equals(IndexedRegionInterface.class.getName())) {
return HBaseRPCProtocolVersion.versionID;
}
return super.getProtocolVersion(protocol, clientVersion);
}
{code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.