从WebLogic 12c连接到HBase

从WebLogic 12c连接到HBase,hbase,jaas,weblogic12c,Hbase,Jaas,Weblogic12c,我们正在尝试从部署到WebLogic 12c的WebApp连接到HBase服务器 WebApp使用包含HBase客户端连接代码的jar文件。此代码通过HTablePool实例连接到HBase,当发出HTable的第一个请求时,HTablePool的初始化如下: public HTableInterface getTable(String tableName) { if (pool == null) { logger.info("Initializing connect

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

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

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);


}
公共HTableInterface getTable(字符串tableName){ 如果(池==null){ logger.info(“初始化与HBase的连接”); 最终配置config=HBaseConfiguration.create(); config.set(“hbase.zookeeper.quorum”,”); pool=新的HTablePool(配置,Integer.MAX_值); logger.info(“创建了HTable池”); } 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信息zookeeper.RecoverableZooKeeper:此进程的标识符为6504@ 2013年6月14日17:28:06 org.apache.zookeeper.ClientCnxn$SendThread运行 警告:服务器null的会话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警告zookeeper.RecoverableZooKeeper:可能是暂时的zookeeper异常:org.apache.zookeeper.KeeperException$ConnectionLossException option:keeperrorcode=ConnectionLoss for/hbase/master 13/06/14 17:28:07 INFO util.RetryCounter:重试前休眠2000毫秒#1

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


如果有任何帮助,我们将不胜感激。

好的,在谷歌搜索了一段时间后,我们发现这是由于:

不使用SASL时WebLogic/Zookeeper组合出现问题

上面的Zookeeper Jira链接到Zookeeper源代码的修复程序,不幸的是我们不能使用它,因为我们必须使用Cloudera CDH 4.2.2运行

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

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

查看此线程是否有帮助: