Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Phoenix/HBase在Windows上抛出NoSuchMethodError:sun.misc.Unsafe.putLong_Java_Hbase_Phoenix - Fatal编程技术网

Java Phoenix/HBase在Windows上抛出NoSuchMethodError:sun.misc.Unsafe.putLong

Java Phoenix/HBase在Windows上抛出NoSuchMethodError:sun.misc.Unsafe.putLong,java,hbase,phoenix,Java,Hbase,Phoenix,我们的产品使用Phoenix JDBC驱动程序连接HBase,在Linux上运行良好。我想在Windows上运行它,但连接失败 我试图从IntelliJ Idea的数据库连接,但在同一个错误上失败。我曾经在Idea中连接到另一个HBase安装,该安装在7月份运行良好。但它也失败了,出现了同样的错误 2020-11-18 11:36:54,835 [ 119005] INFO - .DatabaseConnectionEstablisher - Connecting to: jdbc:phoe

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

我试图从IntelliJ Idea的数据库连接,但在同一个错误上失败。我曾经在Idea中连接到另一个HBase安装,该安装在7月份运行良好。但它也失败了,出现了同样的错误

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)
环境:

OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
Idea中的类路径:

JDBC文件夹:

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
16.11.2020 17:05 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
2019年12月17日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-Shadded-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

如何修复它?

您使用的是什么版本的Phoenix?在您的JDBC文件夹列表中,您似乎混合了来自不同Phoenix版本(4.4和4.15)的JAR。我创建了一个微不足道的JDBC应用程序,但它也失败了。它在具有不兼容Phoenix驱动程序的服务器上失败。所以我把客户端降级到4.4,它开始工作了。但不是在我的机器上。后来我发现HBase正在监听环回。一旦我们将它切换到0.0.0.1,它也可以在windows上运行。但我仍然无法让这个想法奏效。
echo %HADOOP_HOME%
C:\dev\core\jdbc\winutils

echo %PATH%
C:\WINDOWS\system32;C:\dev\core\jdbc\winutils\bin;
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