hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Clint Morgan <clint.mor...@troove.net>
Subject Re: cannot connect with hbase client
Date Mon, 16 Mar 2009 18:29:21 GMT
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 <cris.daniluk@gmail.com>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 <stack@duboce.net> 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 <cris.daniluk@gmail.com
> >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 <stack@duboce.net> 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 <cris.daniluk@gmail.com
> >> >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!
> >> >>
> >> >
> >>
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message