首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >菲尼克斯/HBase在Windows上抛出NoSuchMethodError: sun.misc.Unsafe.putLong

菲尼克斯/HBase在Windows上抛出NoSuchMethodError: sun.misc.Unsafe.putLong
EN

Stack Overflow用户
提问于 2020-11-18 19:07:28
回答 1查看 393关注 0票数 0

我们的产品使用Phoenix JDBC驱动程序来连接HBase,它在Linux上运行良好。我想在Windows上运行它,但连接失败。

我尝试从IntelliJ Idea的数据库连接,但由于相同的错误而失败。我曾经在Idea中连接到另一个HBase安装,它在7月份在那里工作得很好。但它也失败了,并出现了相同的错误。

代码语言:javascript
复制
2020-11-18 11:36:54,835 [ 119005]   INFO - .DatabaseConnectionEstablisher - Connecting to: jdbc:phoenix:dev.internal:2181:/hbase-unsecure 
2020-11-18 11:36:57,362 [ 121532]   WARN - .DatabaseConnectionEstablisher - Connecting to: jdbc:phoenix:dev.internal:2181:/hbase-unsecure 
2020-11-18 11:36:57,364 [ 121534]   WARN - .DatabaseConnectionEstablisher - [08004][103] ERROR 103 (08004): Unable to establish connection. 
2020-11-18 11:36:57,368 [ 121538]   WARN - ic.GenericDatabaseErrorHandler - ERROR 103 (08004): Unable to establish connection. 

java.sql.SQLException: ERROR 103 (08004): Unable to establish connection.
at org.apache.phoenix.exception.SQLExceptionCode$Factory$1.newException(SQLExceptionCode.java:542)
at org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:150)
at org.apache.phoenix.query.ConnectionQueryServicesImpl.openConnection(ConnectionQueryServicesImpl.java:460)
at org.apache.phoenix.query.ConnectionQueryServicesImpl.access$400(ConnectionQueryServicesImpl.java:292)
at  at org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:76)
at org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:3077)
at org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:255)
at org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.createConnection(PhoenixEmbeddedDriver.java:142)
at org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:221)

Caused by: java.lang.NoSuchMethodError: 'void sun.misc.Unsafe.putLong(java.lang.Object, int, long)'
at org.apache.hadoop.hbase.util.UnsafeAccess.putLong(UnsafeAccess.java:248)
at org.apache.hadoop.hbase.util.Bytes$ConverterHolder$UnsafeConverter.putLong(Bytes.java:1489)
at org.apache.hadoop.hbase.util.Bytes.putLong(Bytes.java:788)
at org.apache.hadoop.hbase.client.ClientIdGenerator.generateClientId(ClientIdGenerator.java:51)
at org.apache.hadoop.hbase.client.PerClientRandomNonceGenerator.<init>(PerClientRandomNonceGenerator.java:37)
at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.<init>(ConnectionManager.java:698)
at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.<init>(ConnectionManager.java:649)

Idea对sun.misc.Unsafe进行了反编译,结果如下:

代码语言:javascript
复制
@Deprecated
public void putLong(Object o, int offset, long x) {
    putLong(o, (long)offset, x);
}

环境:

代码语言:javascript
复制
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)

Idea中的类路径:

代码语言:javascript
复制
echo %HADOOP_HOME%
C:\dev\core\jdbc\winutils

echo %PATH%
C:\WINDOWS\system32;C:\dev\core\jdbc\winutils\bin;

JDBC文件夹:

代码语言:javascript
复制
16.11.2020  17:05    <DIR>          winutils
08.07.2020  12:43            20 764 hbase-annotations-1.1.0.jar
08.07.2020  12:43         1 239 829 hbase-client-1.1.0.jar
08.07.2020  12:43           523 263 hbase-common-1.1.0.jar
08.07.2020  12:23           489 884 log4j-1.2.17.jar
17.12.2019  07:12       109 750 805 phoenix-4.15.0-HBase-1.5-client.jar
08.07.2020  12:16         3 074 133 phoenix-core-4.4.0-HBase-1.1.jar
08.07.2020  12:35        55 186 484 phoenix-shaded-4.4.0-HBase-1.1-1.jar
08.07.2020  12:48           533 455 protobuf-java-2.5.0.jar
08.07.2020  12:21            25 962 slf4j-api-1.6.4.jar
08.07.2020  12:21             8 869 slf4j-log4j12-1.7.5.jar
08.07.2020  12:50           792 964 zookeeper-3.4.6.jar

如何修复它?

EN

回答 1

Stack Overflow用户

发布于 2021-09-08 14:24:06

我需要在主机名(或IP)之前添加thin:url=http://来解决这个问题。

我在DBeaver Windows客户端也遇到了类似的错误,问题是错误地构造了jdbc URL。我使用的是从Phoenix的安装目录中获得的瘦客户机jar。

如果没有添加,jdbc URL就缺少这一部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64891859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档