Squirrel 设置连接到 Phoenix - HBASE: 错误 java.util.concurrent.ExecutionException: java.lang.RuntimeExcepti

Posted

技术标签:

【中文标题】Squirrel 设置连接到 Phoenix - HBASE: 错误 java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.lang.NoSuchMethodError:【英文标题】:Squirrel Setup to connect to Phoenix - HBASE: Error java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.lang.NoSuchMethodError: 【发布时间】:2015-06-13 11:58:30 【问题描述】:

我是 Hbase & phoenix 的新手。我正在尝试使用 Squirrel 客户端通过 Phoenix JDBC 驱动程序连接到 HBASE。不知何故,我似乎遇到了一个奇怪的错误,运行时抱怨 NoSuchMethod 异常。我已将相关的客户端jarphoenix-4.4.0-HBase-1.0-client放入Squirrel的lib文件夹中,并成功注册驱动。当我尝试连接时,我得到了这个似乎有点奇怪的异常。我已经提取了 jar 并看到方法 getCurrentUser() 确实存在于 org/apache/hadoop/security/UserGroupInformation.class 文件中。

java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.lang.NoSuchMethodError: org.apache.hadoop.security.UserGroupInformation.getCurrentUser()Lorg/apache/hadoop/security/UserGroupInformation;
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:202)
at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.awaitConnection(OpenConnectionCommand.java:132)
at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.access$100(OpenConnectionCommand.java:45)
at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand$2.run(OpenConnectionCommand.java:115)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

【问题讨论】:

【参考方案1】:

我终于发现了它。 hadoop-0.20.2-core.jar 和 phoenix-4.4.0-HBase-1.0-client.jar 有共同的重叠类,它们位于 Squirrel 客户端的 lib 文件夹中。 hadoop-0.20.2-core.jar 需要连接到 hive,而 phoenix 客户端 jar 需要连接到 hbase。

每当我需要连接到其中一个或另一个时,我必须在启动 squirrel 客户端时从 lib 文件夹中排除其中一个。

【讨论】:

以上是关于Squirrel 设置连接到 Phoenix - HBASE: 错误 java.util.concurrent.ExecutionException: java.lang.RuntimeExcepti的主要内容,如果未能解决你的问题,请参考以下文章

使用 SQuirrel SQL 连接到 SQL Server

无法使用 JDBC 连接到 Phoenix

无法使用 SQuirreL 连接到 MySQL 数据库

Phoenix和SQuirrel安装详解

无法使用 squirrel-sql 连接到 docker 中的 oracle db

squirrel sql client 连接phoenix