2016-12-26 8 views
0

EMR에서 하이브 테이블을 쿼리하기 위해 Presto를 사용하고 있습니다. presto 드라이버를 초기화하고 연결을 가져 오지만 해당 연결에서 쿼리를 실행하려고하면 오류가 발생합니다. 서버가 연결을 거부했습니다 : http://aws.address/v1/statement.Presto jdbc driver를 사용하는 하이브의 쿼리 테이블 - "Server refused connection"오류로 실패했습니다.

하이브/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(); 
     } 
    } 
} 

답변

0

AWS의 presto 드라이버에 도달하려면 '포트 전달'명령 (ssh)을 사용해야했습니다.