phoenix jdbc不工作,没有异常和卡住

bd1hkmkf  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(809)

我是phoenix和hbase的新手。hbase表和phoenix视图工作得很好,我可以通过phoenix获取数据。当我访问菲尼克斯的jdbc时,它就停止了。

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服务器有公共互联网ip,所以我在那里写这个ip,这有关系吗?)
它打印“开始…”,不再有任何回应
但当url是“jdbc:phoenix:ip:2181“或”jdbc:phoenix:ip:2181/hbase“
我没有React
当我加上其他词时,例如“jdbc:phoenix:ip:2181/巴拉巴拉“
我得到空指针异常
为什么?
我希望你能理解我所说的:)

yzuktlbb

yzuktlbb1#

复制你的例子,我得到一个 java.net.SocketTimeoutException 60秒后,由 java.net.UnknownHostException: unknown host: <hostname_of_my_zk_server> . 但如果你很匆忙的话(或者如果你有一个习惯的话),也许这就是你所说的“没有回应” hbase-site.xml 具有更大的超时(客户端)。
这个错误似乎与本文中解释的错误类似(最后一节):
在我们的案例中,cdh是在测试vm中运行的,我们遇到了以下问题:http://stackoverflow.com/questions/18428722/hbase-java-client-unknown-host-localhost-localdomain
这是通过将localhost.localdomain添加到cluster1的现有/etc/hosts条目来解决的,该条目已经指向正确的ip地址。
这个答案总结了解决方案。
基本上,您需要在 /etc/hosts 客户端:

<my_cloud_server_ip> <hostname_of_my_cloud_server_ip>

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

相关问题