使用Presto jdbc驱动程序在Hive中查询表 - 与"服务器拒绝连接失败"错误

时间:2016-12-26 08:42:52

标签: amazon-web-services hive amazon-emr presto

我正在使用Presto来查询EMR中的Hive表。我初始化presto驱动程序并获得连接,但是当我尝试在该连接上执行查询时,我收到一个错误:服务器拒绝连接:http://aws.address/v1/statement

在使用之前是否需要设置Hive / AWS凭据?我该怎么办?

public void init() {
    try {
        Class.forName("com.facebook.presto.jdbc.PrestoDriver");
        if(connection == null)
            connection = DriverManager.getConnection(url,username,password);
            // url = "jdbc:presto://aws.address:8889/hive/default"
        } catch (ClassNotFoundException | SQLException e) {
            // TOD: handle exception
            e.printStackTrace();
        }
    }

public void executeMyQuery() {
    if(connection == null) {
        connection = driver.getConnection();
    }

    ResultSet resultSet = null;
    Statement stmt = connection.createStatement();

    try {
        resultSet = stmt.executeQuery(query);

    } catch (Exception e) {
        logger.error("Failed to execute query, with error: ",e);
    } finally {
        if(resultSet != null) {
            try {
                resultSet.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(stmt != null){
            stmt.close();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我需要使用'port forwarding'命令(ssh)才能访问AWS中的presto驱动程序。