从WebLogic 12c连接到HBase

时间:2013-06-14 15:44:26

标签: hbase jaas weblogic12c

我们正在尝试从部署到WebLogic 12c的WebApp连接到HBase服务器。

WebApp使用包含HBase客户端连接代码的jar文件。此代码通过HTablePool实例连接到HBase,当第一次发出HTable请求时,该实例被延迟初始化为:

public HTableInterface getTable(String tableName) {

    if (pool == null) {

        logger.info("Initializing connection to HBase");

        final Configuration config = HBaseConfiguration.create();

        config.set("hbase.zookeeper.quorum", "<HBaseHost>");

        pool = new HTablePool(config, Integer.MAX_VALUE);

        logger.info("HTable pool created");

    }

    return = pool.getTable(tableName);


}

从JUnit调用此代码时工作正常(即不将其部署到WebLogic)。但是,它部署到WL并从WebApp调用,抛出以下异常(请注意,我用,等等替换了所有特定的连接细节。

  

信息:启动客户端连接,connectString =:2181 sessionTimeout = 180000 watcher = hconnection   2013年6月14日17:28:06 org.apache.zookeeper.ClientCnxn $ SendThread startConnect   信息:打开与服务器/:2181的套接字连接   13/06/14 17:28:06 INFO zookeeper.RecoverableZooKeeper:这个过程的标识符是6504 @   2013年6月14日17:28:06 org.apache.zookeeper.ClientCnxn $ SendThread运行   警告:会话0x0表示服务器空,意外错误,关闭套接字连接并尝试重新连接   java.lang.IllegalArgumentException:未注册可以处理名为Client的配置的配置           在com.bea.common.security.jdkutils.JAASConfiguration.getAppConfigurationEntry(JAASConfiguration.java:130)           在org.apache.zookeeper.client.ZooKeeperSaslClient。(ZooKeeperSaslClient.java:92)           在org.apache.zookeeper.ClientCnxn $ SendThread.startConnect(ClientCnxn.java:938)           在org.apache.zookeeper.ClientCnxn $ SendThread.run(ClientCnxn.java:973)   13/06/14 17:28:07 WARN zookeeper.RecoverableZooKeeper:可能是瞬态的ZooKeeper异常:org.apache.zookeeper.KeeperException $ ConnectionLossExce   ption:KeeperErrorCode = / hbase / master的ConnectionLoss   13/06/14 17:28:07 INFO util.RetryCounter:在重试#1之前睡觉2000毫秒......

看起来我们可能缺少一些额外的JAAS配置来允许来自WL的传出连接?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

好的,所以经过一些谷歌搜索后我们发现这是由于:

https://issues.apache.org/jira/browse/ZOOKEEPER-1696

不使用SASL时WebLogic / Zookeeper组合的问题。

上面的Zookeeper Jira链接到Zookeeper源的修复程序,遗憾的是我们无法使用,因为我们必须使用Cloudera CDH 4.2.2

我们很可能会切换到JBoss。至少JBoss 5(我们可以运行的最低版本)没有显示这个问题。我们还将尝试JBoss 6&amp; 7,看看会发生什么。

接受这个作为答案,希望它对某人有用。