我一直在尝试从java代码连接到我的EMR集群以运行presto查询。到目前为止,我创建了一个"maven项目",并在"pom.xml"中添加了"presto dependancy"。我一直在为该程序推荐此链接
https://gist.github.com/nagataka/2c2d9fa49b03e8556faf85345b43f59c
我有两个问题:
1.( 如何使用用户名和密码连接到 EMR 集群,如上述参考中使用的"conn = DriverManager.getConnection(DB_URL, USER, PASS(;"。因为我使用".ppk 密钥"来验证连接。我不知道在这种情况下如何给出钥匙。
2.( 如何在 Presto 上运行一个简单的"显示表;"查询。
以下是我的程序:
package presto.presto_sample;
import java.net.URI;
import java.net.URISyntaxException;
import java.sql.*;
/**
* Hello world!
*
*/
public class App
{
static final String JDBC_DRIVER = "com.facebook.presto.jdbc.PrestoDriver";
static final String DB_URL = "jdbc:presto://ec2-18-191-128-219.us-east-2.compute.amazonaws.com:8889/hive/default";
public static void main( String[] args )
{
System.out.println( "Hello World!" );
}
}
Properties properties = new Properties();
properties.setProperty("user", "test");
properties.setProperty("password", "secret");
Connection connection = DriverManager.getConnection(url, properties);
我想ppk可以是另一个集合属性
请参阅如何使用 Java API 执行 Presto 查询?
无需在连接字符串属性中传递 PPK 密钥。您的代码可能不起作用,因为防火墙可能会阻止您连接到服务器。要解决此问题,您必须在主安全组中添加入站规则以允许访问您的 IP。 请参阅此内容以添加入站规则,无法使用 Java JDBC 从 AWS EMR 上的 Presto 进行连接/查询
要签出表格: 从您正在使用的引用程序中设置字符串对象"SQL",并将其值设置为 "显示来自 Hive.default 的表"(例如(,或者如果您在连接属性中设置了目录和架构名称,则只需将其设置为"显示表"。