我想通过JDBC连接Presto DB。
String sql="Select * from mysql.infsci2711toturial.Person";
String url="jdbc:presto://localhost:8080/catalog";//Under catalog folder, there is my mysql.properties file.
Connection connection=null;
try{
connection=DriverManager.getConnection(url, "root", null);
Statement stmt=connection.createStatement();
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()){
System.out.println(rs.getString(1));
}
}catch(SQLException ex){
System.out.println(Arrays.toString(((URLClassLoader) ClassLoader.getSystemClassLoader()).getURLs()));
ex.printStackTrace();
System.out.println("wrong connection!");
}
eclipse中的问题是: 找不到合适的jdbc驱动程序:presto:// localhost:8080 / catalog 我试图将presto-jdbc-0.93.jar放在WEB-INF / lib下。但是不解决这个问题。如何解决这个问题呢。我需要设置Maven吗?怎么样?
答案 0 :(得分:2)
添加“Class.forName(”com.facebook.presto.jdbc.PrestoDriver“);” 并且presto需要JDK 1.8。所以将JRE更新为1.8。
答案 1 :(得分:0)
问题包括两部分:
1-寻找合适的connetor。 2-找到正确的连接URL。
就我而言,我需要在AWS EMR上连接到Presto,以下内容对我有用:
在maven dependancies中包含presto-jdbc驱动程序
<!-- https://mvnrepository.com/artifact/com.facebook.presto/presto-jdbc -->
<dependency>
<groupId>com.facebook.presto</groupId>
<artifactId>presto-jdbc</artifactId>
<version>0.198</version>
</dependency>
在类路径中包含驱动程序类:
final String JDBC_DRIVER = "com.facebook.presto.jdbc.PrestoDriver";
Class.forName(JDBC_DRIVER);
使用正确的连接网址:
final String DB_URL = "jdbc:presto://Your_ec2_ip_address:8889/hive/default";
确保服务器上已打开 8889 端口
conn = DriverManager.getConnection(DB_URL, "hadoop", "");
希望这有帮助。