从Tomcat 6 Servlet远程连接到Hbase

时间:2012-10-01 11:35:18

标签: tomcat hadoop amazon-ec2 hbase

我不是Hbase的专家,并且已经通过Hbase远程连接的线程剥离,但没有运气。

我在EC2实例(Ubuntu 10.4)上运行Hbase / Hadoop单一群集。我也在另一个ec 2实例的tomcat6服务器上运行servlet。该计划是让servlet写入和读取远程Hbase实例。 servlet正在运行一个带有一些java例程(ServletContextListener)的contextlistener。

现在,如果我将java例程作为可运行的jar而不是servlet运行,那么一切都很好。它连接到Hbase并从表写入/读取。但是在tomcat6上,它只是在尝试连接到Hbase实例时冻结。

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

我可以telnet HBase实例。在servlet中我包含了hbase-site.xml。但正如您从日志中看到的那样,zookkeeper.quorum以及端口号都会被提取。所有必需的端口都在Hbase实例上打开。

有些东西告诉我tomcat6政策配置是罪魁祸首。但是我没有在catalina日志中看到任何东西。我还缺少其他日志,还是可以引导我找到正确的日志?

有人遇到过同样的问题吗?

非常感谢提前。

0 个答案:

没有答案