gpt4 book ai didi

hadoop - phoenix jdbc 不工作,没有异常并卡住

转载 作者:可可西里 更新时间:2023-11-01 16:36:33 25 4
gpt4 key购买 nike

我是 phoenix 的新手,hbase.hbase 表和 phoenix View 运行良好,我可以通过 phoenix 获取数据。当我访问 jdbc 到 phoenix 时,它卡住了。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Phoenix {
private static String driver = "org.apache.phoenix.jdbc.PhoenixDriver";
public static void main(String[] args) throws SQLException {
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Statement stmt = null;
ResultSet rs = null;
System.out.println("start...");
Connection con = DriverManager.getConnection("jdbc:phoenix:[my_cloud_server_ip]:2181");
System.out.println(con);
con.close();
}
}

(只有一个 zookeeper 服务器有公共(public)互联网 ip,所以我把这个 ip 写在那里,这有关系吗?)

它打印“开始...”并且不再有任何响应

但是当 url 是“jdbc:phoenix:ip:2181”或“jdbc:phoenix:ip:2181/hbase”时

我没有收到回复

当我添加一些其他词时,例如“jdbc:phoenix:ip:2181/balabala”

我得到空指针异常

为什么?

我希望你能明白我说的:)

最佳答案

重现你的例子,我得到一个 java.net.SocketTimeoutException 60 秒后,由 java.net.UnknownHostException: unknown host: <hostname_of_my_zk_server> 引起.但如果您赶时间(或者如果您有自定义 hbase-site.xml 客户端超时时间较长),也许这就是您所谓的“无响应”。

这个错误似乎与 this article 中解释的一样(末尾的 Zookeeper 部分):

As in our case CDH was running in a test VM, we encountered this issue: http://stackoverflow.com/questions/18428722/hbase-java-client-unknown-host-localhost-localdomain

That was worked around by adding localhost.localdomain to the existing /etc/hosts entry for cluster1, which was already pointing to the right IP address.

This answer在 SO 上总结了解决方案。

基本上,您需要在 /etc/hosts 中添加一个条目客户端:

<my_cloud_server_ip> <hostname_of_my_cloud_server_ip>

此外,您需要有一个 hbase-site.xml客户端(您可以使用服务器上的客户端作为基础)。

关于hadoop - phoenix jdbc 不工作,没有异常并卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51498170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com