When starting up hbase, you need to tell it to spin up transactional region servers (impl, not just ipc interface)
from hbase.client.transactional package.html javadoc: <p> To enable transactions, modify hbase-site.xml to turn on the TransactionalRegionServer. This is done by setting <i>hbase.regionserver.class</i> to <i>org.apache.hadoop.hbase.ipc.TransactionalRegionInterface</i> and <i>hbase.regionserver.impl </i> to <i>org.apache.hadoop.hbase.regionserver.transactional.TransactionalRegionServer</i> BTW, Ive got some fixes for the transactional stuff (possible memory leak, bug when splitting) that I'll have a patch for this week. -clint On Mon, Mar 16, 2009 at 6:19 AM, Cris Daniluk <[email protected]>wrote: > Removed TransactionalRegionInterface from hbase-site.xml and > restarted. I can start up without errors, connect to the web > interfaces of the region and master servers, and connect via the hbase > client. > > I just can't connect when I specify TransactionalRegionInterface. The > Jackrabbit client is requesting it in its startup: > > config.set("hbase.regionserver.class", > "org.apache.hadoop.hbase.ipc.TransactionalRegionInterface"); > config.set("hbase.regionserver.impl", > > "org.apache.hadoop.hbase.regionserver.transactional.TransactionalRegionServer"); > > I'm guessing I missed something in getting the server to use > TransactionalRegionInterface, but not sure what? > > On Mon, Mar 16, 2009 at 9:04 AM, stack <[email protected]> wrote: > > Its odd in that we're picking up the transactional hbase's ipc rather > than > > 'standard' hbase. > > > > Can you try first outside of jackrabbit? What happens if you run the > hbase > > shell? Does it connect OK? > > > > St.Ack > > > > > > > > On Mon, Mar 16, 2009 at 5:01 AM, Cris Daniluk <[email protected] > >wrote: > > > >> I haven't configured anything on the server side whatsoever.. just > >> hbase.root and master. Is it possible I'm using it on the client-side, > >> but not the server-side? I found no docs on how to set it on the > >> server side, and my client is the jackrabbit sandbox driver. It is a > >> journaled implementation, so I assume by extension it is using the > >> transactional client. > >> > >> Cris > >> > >> On Mon, Mar 16, 2009 at 7:52 AM, stack <[email protected]> wrote: > >> > You are running the transactional hbase subclass intentionally? > >> > > >> > If so, could it be that you are not using the transactional client to > >> match? > >> > > >> > St.Ack > >> > > >> > On Sun, Mar 15, 2009 at 9:13 AM, Cris Daniluk <[email protected] > >> >wrote: > >> > > >> >> I'm running a pseudo-distributed (for the moment) Hadoop server with > >> >> HBase on the same server running with 1 master and 1 region. HBase is > >> >> successfully talking to HDFS, has created the hbase directory, etc. > In > >> >> addition, the master/region server are talking just fine. When I try > >> >> to connect with the HBase client, I see the following client-side > >> >> error: > >> >> > >> >> java.io.IOException: java.io.IOException: Unknown protocol to name > >> >> node: org.apache.hadoop.hbase.ipc.TransactionalRegionInterface > >> >> at > >> >> > >> > org.apache.hadoop.hbase.regionserver.HRegionServer.getProtocolVersion(HRegionServer.java:2140) > >> >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > >> >> at > >> >> > >> > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > >> >> 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) > >> >> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > >> >> Method) > >> >> at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown > >> >> Source) > >> >> at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown > >> >> Source) > >> >> at java.lang.reflect.Constructor.newInstance(Unknown Source) > >> >> at > >> >> > >> > org.apache.hadoop.hbase.RemoteExceptionHandler.decodeRemoteException(RemoteExceptionHandler.java:95) > >> >> at > >> >> > >> > org.apache.hadoop.hbase.client.HConnectionManager$TableServers.getHRegionConnection(HConnectionManager.java:729) > >> >> at > >> >> > >> > org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRootRegion(HConnectionManager.java:773) > >> >> at > >> >> > >> > org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:448) > >> >> at > >> >> > >> > org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:423) > >> >> at > >> >> > >> > org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegionInMeta(HConnectionManager.java:498) > >> >> at > >> >> > >> > org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:457) > >> >> at > >> >> > >> > org.apache.hadoop.hbase.client.HConnectionManager$TableServers.relocateRegion(HConnectionManager.java:430) > >> >> at > >> >> > >> > org.apache.hadoop.hbase.client.HConnectionManager$TableServers.getRegionLocation(HConnectionManager.java:289) > >> >> at > >> >> > >> > org.apache.hadoop.hbase.client.ServerCallable.instantiateServer(ServerCallable.java:57) > >> >> at > >> >> > >> > org.apache.hadoop.hbase.client.ScannerCallable.instantiateServer(ScannerCallable.java:66) > >> >> at > >> >> > >> > org.apache.hadoop.hbase.client.HConnectionManager$TableServers.getRegionServerWithRetries(HConnectionManager.java:827) > >> >> at > >> >> > org.apache.hadoop.hbase.client.MetaScanner.metaScan(MetaScanner.java:56) > >> >> at > >> >> > org.apache.hadoop.hbase.client.MetaScanner.metaScan(MetaScanner.java:30) > >> >> at > >> >> > >> > org.apache.hadoop.hbase.client.HConnectionManager$TableServers.listTables(HConnectionManager.java:311) > >> >> at > >> >> > >> > org.apache.hadoop.hbase.client.HConnectionManager$TableServers.tableExists(HConnectionManager.java:264) > >> >> at > >> >> > >> > org.apache.hadoop.hbase.client.HBaseAdmin.tableExists(HBaseAdmin.java:108) > >> >> at > >> >> > >> > org.apache.jackrabbit.hadoop.HBasePersistenceManager.init(HBasePersistenceManager.java:104) > >> >> at > >> >> > >> > org.apache.jackrabbit.core.RepositoryImpl.createPersistenceManager(RepositoryImpl.java:1339) > >> >> ... > >> >> 2009-03-15 11:54:06,387 DEBUG stacks[main] > >> >> > >> >> > >> > org.apache.hadoop.hbase.ipc.HBaseClient$Connection.sendParam(HBaseClient.java:466): > >> >> IPC Client (47) connection to /10.10.115.21:60000 from an unknown > user > >> >> sending #32 > >> >> 2009-03-15 11:54:06,409 DEBUG stacks[IPC Client (47) connection to > >> >> /10.10.115.21:60000 from an unknown user] > >> >> > >> >> > >> > org.apache.hadoop.hbase.ipc.HBaseClient$Connection.receiveResponse(HBaseClient.java:501): > >> >> IPC Client (47) connection to /10.10.115.21:60000 from an unknown > user > >> >> got value #32 > >> >> > >> >> On the server side, I see: > >> >> > >> >> 2009-03-15 11:54:05,278 INFO org.apache.hadoop.ipc.HBaseServer: IPC > >> >> Server handler 7 on 60020, call > >> >> > >> >> > >> > getProtocolVersion(org.apache.hadoop.hbase.ipc.TransactionalRegionInterface, > >> >> 15) from 10.178.0.52:64001: error: java.io.IOException: Unknown > >> >> protocol to name node: > >> >> org.apache.hadoop.hbase.ipc.TransactionalRegionInterface > >> >> java.io.IOException: Unknown protocol to name node: > >> >> org.apache.hadoop.hbase.ipc.TransactionalRegionInterface > >> >> at > >> >> > >> > org.apache.hadoop.hbase.regionserver.HRegionServer.getProtocolVersion(HRegionServer.java:2140) > >> >> 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'm using Hadoop 0.19.1 with HBase 0.19.0. It was hard to debug to > see > >> >> why it is sending the subinterface name instead of the interface name > >> >> (HRegionInterface), so I can't tell if it is a bug on my end, HBase's > >> >> end or something in between. Any help would be appreciated! > >> >> > >> > > >> > > >
