You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Mouradk <mo...@googlemail.com> on 2012/10/01 15:54:18 UTC

Failure connecting to Hbase remotely from Tomcat 6 Servlet

Hello,

This is my first post so apologies if I am breaking some etiquette.

I am not an expert on Hbase and have been flaying through threads of Hbase remote connection but with no luck solving my problem.

I am running a Hbase/Hadoop single cluster on an EC2 instance (Ubuntu 10.4). I am also running a servlet on a tomcat6 server in another ec2 instance. The plan is for the servlet to write and read to the remote Hbase instance. The servlet is running a context listener with some java routines (ServletContextListener).

Now if I run the java project as a runnable jar instead of a servlet all is fine. It connects to Hbase and writes/reads from table. But on tomcat6 it just freezes when attempting to connect to the Hbase instance.

2012-10-01 11:11:40,751 [Timer-4] INFO  com.myApp.foundation.access.HBaseHandler  initialise(..) - Initialisation HbaseHandler configuration ...
2012-10-01 11:11:40,763 [Timer-4] DEBUG org.apache.hadoop.conf.Configuration  <init>(..) - java.io.IOException: config()
    at org.apache.hadoop.conf.Configuration.<init>(Configuration.java:211)
    at org.apache.hadoop.conf.Configuration.<init>(Configuration.java:198)
    at org.apache.hadoop.hbase.HBaseConfiguration.<init>(HBaseConfiguration.java:33)
    at com.myApp.foundation.access.HBaseHandler.initialise(HBaseHandler.java:507)
    at com.myApp.foundation.access.HBaseHandler.<init>(HBaseHandler.java:53)
    at com.myApp.foundation.access.HBaseHandler.getInstance(HBaseHandler.java:500)
    at com.myApp.foundation.hbase.StorableRow.<clinit>(StorableRow.java:40)
    at com.myApp.foundation.entities.Article.storeToHbase(Article.java:257)
    at com.myApp.task.impl.HBaseArticlePersisterTask.process(HBaseArticlePersisterTask.java:101)
    at com.myApp.foundation.task.QueueTask.performTask(QueueTask.java:101)
    at com.myApp.runner.impl.HBasePersisterRunner$1.run(HBasePersisterRunner.java:46)
    at java.util.TimerThread.mainLoop(Timer.java:512)
    at java.util.TimerThread.run(Timer.java:462)

2012-10-01 11:11:40,803 [Timer-4] INFO  com.myApp.foundation.access.HBaseHandler  initialise(..) - Config resource zookeeper.quorum: ip-10-10-10-10.eu-west-1.compute.internal

2012-10-01 11:11:40,803 [Timer-4] INFO  com.myApp.foundation.access.HBaseHandler  initialise(..) - Config resource zookeeper.clientPort: 2181

2012-10-01 11:11:40,804 [Timer-4] INFO  com.myApp.foundation.access.HBaseHandler  initialise(..) - Config resource hbase.master.info.port: 60010

2012-10-01 11:11:40,804 [Timer-4] INFO  com.myApp.foundation.access.HBaseHandler  initialise(..) - Config resource hbase.master.info.bindAddress: ip-10-10-10-10.eu-west-1.compute.internal
I can telnet the HBase instance. In the servlet I included the hbase-site.xml. But as you can see from the log, the zookkeeper.quorum is getting picked up as well as the port number. All necessary ports are open on the Hbase instance.

Something is telling me tomcat6 policy configuration is to blame. But I don't see anything in the catalina logs. Are there any other logs I am missing or could guide me to the right logs? Anywhere I can track if Zookeeper is receiving any requests?

Has someone experienced the same problem?

Many thanks in advance.

Mourad

Re: Failure connecting to Hbase remotely from Tomcat 6 Servlet

Posted by mlanciau <ml...@gmail.com>.
Hello Mouradk

I think if the jar works well, there is no problem with HBase so be free to
reply directly on my email : mlanciau [at] gmail.

The hbase-site.xml must not be in the lib folder, but rather in a folder in
your build path.

If you don't have log, perhaps you can send me some code !

Regards

2012/10/1 Mouradk <mo...@googlemail.com>

> Hi,
>
> Thanks for you reply. I am trying to connect to Hbase running on a remote
> ec2 instance from a web app in tomcat running in a different ec2 instance.
> My Hbase handler lives in a jar of a another project  (foundation) in it's
> src folder. While debugging, the HBaseConfiguration picks up the properties
> from that base-site.xml file. This "foundation" project is bundled in the
> lib folder of the web application and referenced to it.
>
> Initially, I added the hbase-site.xml in the lib folder of the web app
> (WEB-INF/lib) but it' not being used there. I have just added the
> hbase-site.xml in tomcat conf folder along side context.xml and server.xml
> files (this is the place?)
>
> I restarted tomcat but this did not solve the problem. What I can't figure
> out is not getting anything in the logs, I can't trace an error or
> exception, to put me in the right direction. Is there something in the
> policy files that need to be set as well?
>
> is running a web app with ServletContextListener needs some permissions?
>
> Many thanks for your help,
>
> Mouradk
>
> On 1 Oct 2012, at 16:06, mlanciau <ml...@gmail.com> wrote:
>
> > Hello Mouradk,
> >
> > I use tomcat + HBase and I have no problem. (And it's really cool !)
> > I do not change any tomcat policy, just add the lib in WEB-INF/lib/ and
> the
> > hbase-site.xml in a conf folder (in the tomcat build path).
> >
> > How do you add the hbase-site.xml ?
> >
> > Regards.
> >
> > 2012/10/1 Mouradk <mo...@googlemail.com>
> >
> >> Hello,
> >>
> >> This is my first post so apologies if I am breaking some etiquette.
> >>
> >> I am not an expert on Hbase and have been flaying through threads of
> Hbase
> >> remote connection but with no luck solving my problem.
> >>
> >> I am running a Hbase/Hadoop single cluster on an EC2 instance (Ubuntu
> >> 10.4). I am also running a servlet on a tomcat6 server in another ec2
> >> instance. The plan is for the servlet to write and read to the remote
> Hbase
> >> instance. The servlet is running a context listener with some java
> routines
> >> (ServletContextListener).
> >>
> >> Now if I run the java project as a runnable jar instead of a servlet all
> >> is fine. It connects to Hbase and writes/reads from table. But on
> tomcat6
> >> it just freezes when attempting to connect to the Hbase instance.
> >>
> >> 2012-10-01 11:11:40,751 [Timer-4] INFO
> >> com.myApp.foundation.access.HBaseHandler  initialise(..) -
> Initialisation
> >> HbaseHandler configuration ...
> >> 2012-10-01 11:11:40,763 [Timer-4] DEBUG
> >> org.apache.hadoop.conf.Configuration  <init>(..) - java.io.IOException:
> >> config()
> >>    at
> org.apache.hadoop.conf.Configuration.<init>(Configuration.java:211)
> >>    at
> org.apache.hadoop.conf.Configuration.<init>(Configuration.java:198)
> >>    at
> >>
> org.apache.hadoop.hbase.HBaseConfiguration.<init>(HBaseConfiguration.java:33)
> >>    at
> >>
> com.myApp.foundation.access.HBaseHandler.initialise(HBaseHandler.java:507)
> >>    at
> >> com.myApp.foundation.access.HBaseHandler.<init>(HBaseHandler.java:53)
> >>    at
> >>
> com.myApp.foundation.access.HBaseHandler.getInstance(HBaseHandler.java:500)
> >>    at
> com.myApp.foundation.hbase.StorableRow.<clinit>(StorableRow.java:40)
> >>    at
> com.myApp.foundation.entities.Article.storeToHbase(Article.java:257)
> >>    at
> >>
> com.myApp.task.impl.HBaseArticlePersisterTask.process(HBaseArticlePersisterTask.java:101)
> >>    at
> com.myApp.foundation.task.QueueTask.performTask(QueueTask.java:101)
> >>    at
> >>
> com.myApp.runner.impl.HBasePersisterRunner$1.run(HBasePersisterRunner.java:46)
> >>    at java.util.TimerThread.mainLoop(Timer.java:512)
> >>    at java.util.TimerThread.run(Timer.java:462)
> >>
> >> 2012-10-01 11:11:40,803 [Timer-4] INFO
> >> com.myApp.foundation.access.HBaseHandler  initialise(..) - Config
> resource
> >> zookeeper.quorum: ip-10-10-10-10.eu-west-1.compute.internal
> >>
> >> 2012-10-01 11:11:40,803 [Timer-4] INFO
> >> com.myApp.foundation.access.HBaseHandler  initialise(..) - Config
> resource
> >> zookeeper.clientPort: 2181
> >>
> >> 2012-10-01 11:11:40,804 [Timer-4] INFO
> >> com.myApp.foundation.access.HBaseHandler  initialise(..) - Config
> resource
> >> hbase.master.info.port: 60010
> >>
> >> 2012-10-01 11:11:40,804 [Timer-4] INFO
> >> com.myApp.foundation.access.HBaseHandler  initialise(..) - Config
> resource
> >> hbase.master.info.bindAddress: ip-10-10-10-10.eu-west-1.compute.internal
> >> I can telnet the HBase instance. In the servlet I included the
> >> hbase-site.xml. But as you can see from the log, the zookkeeper.quorum
> is
> >> getting picked up as well as the port number. All necessary ports are
> open
> >> on the Hbase instance.
> >>
> >> Something is telling me tomcat6 policy configuration is to blame. But I
> >> don't see anything in the catalina logs. Are there any other logs I am
> >> missing or could guide me to the right logs? Anywhere I can track if
> >> Zookeeper is receiving any requests?
> >>
> >> Has someone experienced the same problem?
> >>
> >> Many thanks in advance.
> >>
> >> Mourad
> >
> >
> >
> >
> > --
> > Maxime LANCIAUX
> > http://maximelanciauxbi.blogspot.fr/
>
>


-- 
Maxime LANCIAUX
http://maximelanciauxbi.blogspot.fr/

Re: Failure connecting to Hbase remotely from Tomcat 6 Servlet

Posted by Mouradk <mo...@googlemail.com>.
Hi,

Thanks for you reply. I am trying to connect to Hbase running on a remote ec2 instance from a web app in tomcat running in a different ec2 instance. My Hbase handler lives in a jar of a another project  (foundation) in it's src folder. While debugging, the HBaseConfiguration picks up the properties from that base-site.xml file. This "foundation" project is bundled in the lib folder of the web application and referenced to it.

Initially, I added the hbase-site.xml in the lib folder of the web app (WEB-INF/lib) but it' not being used there. I have just added the hbase-site.xml in tomcat conf folder along side context.xml and server.xml files (this is the place?)

I restarted tomcat but this did not solve the problem. What I can't figure out is not getting anything in the logs, I can't trace an error or exception, to put me in the right direction. Is there something in the policy files that need to be set as well?

is running a web app with ServletContextListener needs some permissions?

Many thanks for your help,

Mouradk 

On 1 Oct 2012, at 16:06, mlanciau <ml...@gmail.com> wrote:

> Hello Mouradk,
> 
> I use tomcat + HBase and I have no problem. (And it's really cool !)
> I do not change any tomcat policy, just add the lib in WEB-INF/lib/ and the
> hbase-site.xml in a conf folder (in the tomcat build path).
> 
> How do you add the hbase-site.xml ?
> 
> Regards.
> 
> 2012/10/1 Mouradk <mo...@googlemail.com>
> 
>> Hello,
>> 
>> This is my first post so apologies if I am breaking some etiquette.
>> 
>> I am not an expert on Hbase and have been flaying through threads of Hbase
>> remote connection but with no luck solving my problem.
>> 
>> I am running a Hbase/Hadoop single cluster on an EC2 instance (Ubuntu
>> 10.4). I am also running a servlet on a tomcat6 server in another ec2
>> instance. The plan is for the servlet to write and read to the remote Hbase
>> instance. The servlet is running a context listener with some java routines
>> (ServletContextListener).
>> 
>> Now if I run the java project as a runnable jar instead of a servlet all
>> is fine. It connects to Hbase and writes/reads from table. But on tomcat6
>> it just freezes when attempting to connect to the Hbase instance.
>> 
>> 2012-10-01 11:11:40,751 [Timer-4] INFO
>> com.myApp.foundation.access.HBaseHandler  initialise(..) - Initialisation
>> HbaseHandler configuration ...
>> 2012-10-01 11:11:40,763 [Timer-4] DEBUG
>> org.apache.hadoop.conf.Configuration  <init>(..) - java.io.IOException:
>> config()
>>    at org.apache.hadoop.conf.Configuration.<init>(Configuration.java:211)
>>    at org.apache.hadoop.conf.Configuration.<init>(Configuration.java:198)
>>    at
>> org.apache.hadoop.hbase.HBaseConfiguration.<init>(HBaseConfiguration.java:33)
>>    at
>> com.myApp.foundation.access.HBaseHandler.initialise(HBaseHandler.java:507)
>>    at
>> com.myApp.foundation.access.HBaseHandler.<init>(HBaseHandler.java:53)
>>    at
>> com.myApp.foundation.access.HBaseHandler.getInstance(HBaseHandler.java:500)
>>    at com.myApp.foundation.hbase.StorableRow.<clinit>(StorableRow.java:40)
>>    at com.myApp.foundation.entities.Article.storeToHbase(Article.java:257)
>>    at
>> com.myApp.task.impl.HBaseArticlePersisterTask.process(HBaseArticlePersisterTask.java:101)
>>    at com.myApp.foundation.task.QueueTask.performTask(QueueTask.java:101)
>>    at
>> com.myApp.runner.impl.HBasePersisterRunner$1.run(HBasePersisterRunner.java:46)
>>    at java.util.TimerThread.mainLoop(Timer.java:512)
>>    at java.util.TimerThread.run(Timer.java:462)
>> 
>> 2012-10-01 11:11:40,803 [Timer-4] INFO
>> com.myApp.foundation.access.HBaseHandler  initialise(..) - Config resource
>> zookeeper.quorum: ip-10-10-10-10.eu-west-1.compute.internal
>> 
>> 2012-10-01 11:11:40,803 [Timer-4] INFO
>> com.myApp.foundation.access.HBaseHandler  initialise(..) - Config resource
>> zookeeper.clientPort: 2181
>> 
>> 2012-10-01 11:11:40,804 [Timer-4] INFO
>> com.myApp.foundation.access.HBaseHandler  initialise(..) - Config resource
>> hbase.master.info.port: 60010
>> 
>> 2012-10-01 11:11:40,804 [Timer-4] INFO
>> com.myApp.foundation.access.HBaseHandler  initialise(..) - Config resource
>> hbase.master.info.bindAddress: ip-10-10-10-10.eu-west-1.compute.internal
>> I can telnet the HBase instance. In the servlet I included the
>> hbase-site.xml. But as you can see from the log, the zookkeeper.quorum is
>> getting picked up as well as the port number. All necessary ports are open
>> on the Hbase instance.
>> 
>> Something is telling me tomcat6 policy configuration is to blame. But I
>> don't see anything in the catalina logs. Are there any other logs I am
>> missing or could guide me to the right logs? Anywhere I can track if
>> Zookeeper is receiving any requests?
>> 
>> Has someone experienced the same problem?
>> 
>> Many thanks in advance.
>> 
>> Mourad
> 
> 
> 
> 
> -- 
> Maxime LANCIAUX
> http://maximelanciauxbi.blogspot.fr/


Re: Failure connecting to Hbase remotely from Tomcat 6 Servlet

Posted by Jean-Marc Spaggiari <je...@spaggiari.org>.
Same here.

Working with Tomcat and HBase with no issue.

Have you tried to connect to HBase from the server with a standalone
application?

JM

2012/10/1, mlanciau <ml...@gmail.com>:
> Hello Mouradk,
>
> I use tomcat + HBase and I have no problem. (And it's really cool !)
> I do not change any tomcat policy, just add the lib in WEB-INF/lib/ and the
> hbase-site.xml in a conf folder (in the tomcat build path).
>
> How do you add the hbase-site.xml ?
>
> Regards.
>
> 2012/10/1 Mouradk <mo...@googlemail.com>
>
>> Hello,
>>
>> This is my first post so apologies if I am breaking some etiquette.
>>
>> I am not an expert on Hbase and have been flaying through threads of
>> Hbase
>> remote connection but with no luck solving my problem.
>>
>> I am running a Hbase/Hadoop single cluster on an EC2 instance (Ubuntu
>> 10.4). I am also running a servlet on a tomcat6 server in another ec2
>> instance. The plan is for the servlet to write and read to the remote
>> Hbase
>> instance. The servlet is running a context listener with some java
>> routines
>> (ServletContextListener).
>>
>> Now if I run the java project as a runnable jar instead of a servlet all
>> is fine. It connects to Hbase and writes/reads from table. But on tomcat6
>> it just freezes when attempting to connect to the Hbase instance.
>>
>> 2012-10-01 11:11:40,751 [Timer-4] INFO
>>  com.myApp.foundation.access.HBaseHandler  initialise(..) -
>> Initialisation
>> HbaseHandler configuration ...
>> 2012-10-01 11:11:40,763 [Timer-4] DEBUG
>> org.apache.hadoop.conf.Configuration  <init>(..) - java.io.IOException:
>> config()
>>     at
>> org.apache.hadoop.conf.Configuration.<init>(Configuration.java:211)
>>     at
>> org.apache.hadoop.conf.Configuration.<init>(Configuration.java:198)
>>     at
>> org.apache.hadoop.hbase.HBaseConfiguration.<init>(HBaseConfiguration.java:33)
>>     at
>> com.myApp.foundation.access.HBaseHandler.initialise(HBaseHandler.java:507)
>>     at
>> com.myApp.foundation.access.HBaseHandler.<init>(HBaseHandler.java:53)
>>     at
>> com.myApp.foundation.access.HBaseHandler.getInstance(HBaseHandler.java:500)
>>     at
>> com.myApp.foundation.hbase.StorableRow.<clinit>(StorableRow.java:40)
>>     at
>> com.myApp.foundation.entities.Article.storeToHbase(Article.java:257)
>>     at
>> com.myApp.task.impl.HBaseArticlePersisterTask.process(HBaseArticlePersisterTask.java:101)
>>     at
>> com.myApp.foundation.task.QueueTask.performTask(QueueTask.java:101)
>>     at
>> com.myApp.runner.impl.HBasePersisterRunner$1.run(HBasePersisterRunner.java:46)
>>     at java.util.TimerThread.mainLoop(Timer.java:512)
>>     at java.util.TimerThread.run(Timer.java:462)
>>
>> 2012-10-01 11:11:40,803 [Timer-4] INFO
>>  com.myApp.foundation.access.HBaseHandler  initialise(..) - Config
>> resource
>> zookeeper.quorum: ip-10-10-10-10.eu-west-1.compute.internal
>>
>> 2012-10-01 11:11:40,803 [Timer-4] INFO
>>  com.myApp.foundation.access.HBaseHandler  initialise(..) - Config
>> resource
>> zookeeper.clientPort: 2181
>>
>> 2012-10-01 11:11:40,804 [Timer-4] INFO
>>  com.myApp.foundation.access.HBaseHandler  initialise(..) - Config
>> resource
>> hbase.master.info.port: 60010
>>
>> 2012-10-01 11:11:40,804 [Timer-4] INFO
>>  com.myApp.foundation.access.HBaseHandler  initialise(..) - Config
>> resource
>> hbase.master.info.bindAddress: ip-10-10-10-10.eu-west-1.compute.internal
>> I can telnet the HBase instance. In the servlet I included the
>> hbase-site.xml. But as you can see from the log, the zookkeeper.quorum is
>> getting picked up as well as the port number. All necessary ports are
>> open
>> on the Hbase instance.
>>
>> Something is telling me tomcat6 policy configuration is to blame. But I
>> don't see anything in the catalina logs. Are there any other logs I am
>> missing or could guide me to the right logs? Anywhere I can track if
>> Zookeeper is receiving any requests?
>>
>> Has someone experienced the same problem?
>>
>> Many thanks in advance.
>>
>> Mourad
>
>
>
>
> --
> Maxime LANCIAUX
> http://maximelanciauxbi.blogspot.fr/
>

Re: Failure connecting to Hbase remotely from Tomcat 6 Servlet

Posted by mlanciau <ml...@gmail.com>.
Hello Mouradk,

I use tomcat + HBase and I have no problem. (And it's really cool !)
I do not change any tomcat policy, just add the lib in WEB-INF/lib/ and the
hbase-site.xml in a conf folder (in the tomcat build path).

How do you add the hbase-site.xml ?

Regards.

2012/10/1 Mouradk <mo...@googlemail.com>

> Hello,
>
> This is my first post so apologies if I am breaking some etiquette.
>
> I am not an expert on Hbase and have been flaying through threads of Hbase
> remote connection but with no luck solving my problem.
>
> I am running a Hbase/Hadoop single cluster on an EC2 instance (Ubuntu
> 10.4). I am also running a servlet on a tomcat6 server in another ec2
> instance. The plan is for the servlet to write and read to the remote Hbase
> instance. The servlet is running a context listener with some java routines
> (ServletContextListener).
>
> Now if I run the java project as a runnable jar instead of a servlet all
> is fine. It connects to Hbase and writes/reads from table. But on tomcat6
> it just freezes when attempting to connect to the Hbase instance.
>
> 2012-10-01 11:11:40,751 [Timer-4] INFO
>  com.myApp.foundation.access.HBaseHandler  initialise(..) - Initialisation
> HbaseHandler configuration ...
> 2012-10-01 11:11:40,763 [Timer-4] DEBUG
> org.apache.hadoop.conf.Configuration  <init>(..) - java.io.IOException:
> config()
>     at org.apache.hadoop.conf.Configuration.<init>(Configuration.java:211)
>     at org.apache.hadoop.conf.Configuration.<init>(Configuration.java:198)
>     at
> org.apache.hadoop.hbase.HBaseConfiguration.<init>(HBaseConfiguration.java:33)
>     at
> com.myApp.foundation.access.HBaseHandler.initialise(HBaseHandler.java:507)
>     at
> com.myApp.foundation.access.HBaseHandler.<init>(HBaseHandler.java:53)
>     at
> com.myApp.foundation.access.HBaseHandler.getInstance(HBaseHandler.java:500)
>     at com.myApp.foundation.hbase.StorableRow.<clinit>(StorableRow.java:40)
>     at com.myApp.foundation.entities.Article.storeToHbase(Article.java:257)
>     at
> com.myApp.task.impl.HBaseArticlePersisterTask.process(HBaseArticlePersisterTask.java:101)
>     at com.myApp.foundation.task.QueueTask.performTask(QueueTask.java:101)
>     at
> com.myApp.runner.impl.HBasePersisterRunner$1.run(HBasePersisterRunner.java:46)
>     at java.util.TimerThread.mainLoop(Timer.java:512)
>     at java.util.TimerThread.run(Timer.java:462)
>
> 2012-10-01 11:11:40,803 [Timer-4] INFO
>  com.myApp.foundation.access.HBaseHandler  initialise(..) - Config resource
> zookeeper.quorum: ip-10-10-10-10.eu-west-1.compute.internal
>
> 2012-10-01 11:11:40,803 [Timer-4] INFO
>  com.myApp.foundation.access.HBaseHandler  initialise(..) - Config resource
> zookeeper.clientPort: 2181
>
> 2012-10-01 11:11:40,804 [Timer-4] INFO
>  com.myApp.foundation.access.HBaseHandler  initialise(..) - Config resource
> hbase.master.info.port: 60010
>
> 2012-10-01 11:11:40,804 [Timer-4] INFO
>  com.myApp.foundation.access.HBaseHandler  initialise(..) - Config resource
> hbase.master.info.bindAddress: ip-10-10-10-10.eu-west-1.compute.internal
> I can telnet the HBase instance. In the servlet I included the
> hbase-site.xml. But as you can see from the log, the zookkeeper.quorum is
> getting picked up as well as the port number. All necessary ports are open
> on the Hbase instance.
>
> Something is telling me tomcat6 policy configuration is to blame. But I
> don't see anything in the catalina logs. Are there any other logs I am
> missing or could guide me to the right logs? Anywhere I can track if
> Zookeeper is receiving any requests?
>
> Has someone experienced the same problem?
>
> Many thanks in advance.
>
> Mourad




-- 
Maxime LANCIAUX
http://maximelanciauxbi.blogspot.fr/