使用Java API访问phoenix报错?求大佬解答-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

使用Java API访问phoenix报错?求大佬解答

2018-11-08 11:39:37 5448 5

代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class Phoenix {
public static void main(String[] args) {
try {
//指明使用的driverClass
Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");
System.out.println("驱动获取成功");
//建立连接
System.out.println("开始建立连接");
Connection connection = DriverManager.getConnection("jdbc:phoenix:hadoopslave3");
System.out.println("连接建立完成");
PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM "MAPBARTRAVEL"");
ResultSet resultSet = preparedStatement.executeQuery();
while (resultSet.next()){
System.out.println(resultSet.getString("NAME"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
pom.xml配置文件

org.apache.phoenix
phoenix-core
4.14.0-HBase-1.2

报错信息:
org.apache.phoenix.exception.PhoenixIOException: Can't get the locations
at org.apache.phoenix.util.ServerUtil.parseServerException(ServerUtil.java:144)
at org.apache.phoenix.query.ConnectionQueryServicesImpl.ensureTableCreated(ConnectionQueryServicesImpl.java:1197)
at org.apache.phoenix.query.ConnectionQueryServicesImpl.createTable(ConnectionQueryServicesImpl.java:1491)
at org.apache.phoenix.schema.MetaDataClient.createTableInternal(MetaDataClient.java:2717)
at org.apache.phoenix.schema.MetaDataClient.createTable(MetaDataClient.java:1114)
at org.apache.phoenix.compile.CreateTableCompiler$1.execute(CreateTableCompiler.java:192)
at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:408)
at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:391)
at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:389)
at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:378)
at org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:1806)
at org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:2528)
at org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:2491)
at org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:76)
at org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:2491)
at org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:255)
at org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.createConnection(PhoenixEmbeddedDriver.java:150)
at org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:221)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:270)
at Phoenix.main(Phoenix.java:14)
Caused by: org.apache.hadoop.hbase.client.RetriesExhaustedException: Can't get the locations
at org.apache.hadoop.hbase.client.RpcRetryingCallerWithReadReplicas.getRegionLocations(RpcRetryingCallerWithReadReplicas.java:319)
at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:156)
at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:60)
at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:210)
at org.apache.hadoop.hbase.client.ClientScanner.call(ClientScanner.java:327)
at org.apache.hadoop.hbase.client.ClientScanner.nextScanner(ClientScanner.java:302)
at org.apache.hadoop.hbase.client.ClientScanner.initializeScannerInConstruction(ClientScanner.java:167)
at org.apache.hadoop.hbase.client.ClientScanner.(ClientScanner.java:162)
at org.apache.hadoop.hbase.client.HTable.getScanner(HTable.java:797)
at org.apache.hadoop.hbase.MetaTableAccessor.fullScan(MetaTableAccessor.java:602)
at org.apache.hadoop.hbase.MetaTableAccessor.tableExists(MetaTableAccessor.java:366)
at org.apache.hadoop.hbase.client.HBaseAdmin.tableExists(HBaseAdmin.java:406)
at org.apache.phoenix.query.ConnectionQueryServicesImpl.ensureTableCreated(ConnectionQueryServicesImpl.java:1097)
... 20 more

取消 提交回答
全部回答(5)
  • 不语奈何
    2019-09-02 14:56:08
    推荐

    后台试试能不能连接。可以的话在运行下代码

    0 0
  • 游客xvul4sv6antjk
    2019-12-17 20:45:34

    你好,这个问题你是怎么解决的呢,我现在遇到和你一样的报错信息

    0 0
  • 1897401498820969
    2019-12-13 17:21:46

    你好,请问下这个问题解决了吗?我也遇见了,感觉像是host配置不对导致的。

    0 0
  • hiekay
    2019-07-17 23:12:57

    错误信息: 系统找不到指定的路径

    0 0
  • hbase小能手
    2019-07-17 23:12:57

    检查下你的hbase集群状态是不是正常, 可以用hbase client链接看一下

    0 0
添加回答
相关问答

1

回答

Java 支持的4 种不同的访问权限分别是什么呀?

2022-04-03 17:12:34 1005浏览量 回答数 1

0

回答

java中如何根据多个键从TreeMap中检索数据,有没有性能最优的做法?

2021-11-07 22:59:20 757浏览量 回答数 0

0

回答

请问在java类中的方法参数上使用final关键字,是否对性能有所影响?

2021-11-12 17:17:11 164浏览量 回答数 0

0

回答

java中TreeMap与HashMap性能哪个更好,使用场景有哪些?

2021-11-12 17:06:43 768浏览量 回答数 0

1

回答

请问java调用数据库存储过程性能较慢,该如何优化呢?

2021-11-07 14:38:11 567浏览量 回答数 1

0

回答

Java性能调优,使用java设置XML节点的属性性能最优的做法是什么?

2021-11-12 17:07:32 677浏览量 回答数 0

0

回答

java中将HashMap与ConcurrentHashMap集合对象合并性能最优方法的是什么?

2021-11-07 22:59:20 210浏览量 回答数 0

1

回答

请问java 应用程序执行分组查询数据库表时性能非常慢,该如何优化呢?

2021-11-07 14:38:07 328浏览量 回答数 1

0

回答

Java性能调优,java中对字符串进行反转操作,有没有性能更快的做法?

2021-11-07 21:35:53 506浏览量 回答数 0

0

回答

请问对java中的字节数组进行解压操作,有没有性能更快的方法?

2021-11-07 13:24:26 134浏览量 回答数 0
+关注
hbase小能手
HBase是一个分布式的、面向列的开源数据库,一个结构化数据的分布式存储系统。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。阿里云HBase技术团队共同探讨HBase及其生态的问题。
文章
问答
问答排行榜
最热
最新
相关电子书
更多
MySQL Java开发实战
立即下载
The state of SQL-on-Hadoop in the Cloud
立即下载
Security & Governance using Apache Ranger & Apache Atlas
立即下载