Todos os produtos
Search
Central de documentação

E-MapReduce:Use JDBC para se conectar ao Trino

Última atualização: Jun 27, 2026

Conecte-se a um banco de dados Trino em um cluster E-MapReduce (EMR) com o driver JDBC do Trino para executar consultas complexas, analisar dados ou integrar resultados a aplicações Java.

Limites de uso

Para acessar o cluster EMR, verifique se a sua rede e o cluster EMR estão na mesma VPC.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Um cluster EMR com o serviço Trino instalado

  • Acesso de rede ao cluster EMR a partir da máquina que executa a aplicação Java (mesma VPC)

  • Maven (se usar o Maven para gerenciar dependências)

Adicione a dependência do driver JDBC

Adicione a dependência correta do driver JDBC ao arquivo pom.xml conforme a versão do seu cluster EMR.

Versão do EMR

Versão do componente

Dependência Maven

Classe do driver

Série EMR 3.X: V3.38.0 e posterior

Série EMR 5.X: V5.5.0 e posterior

3XX

groupId: io.trino

artifactId: trino-jdbc

io.trino.jdbc.TrinoDriver

Série EMR 3.X: V3.25.0–V3.37.X

Série EMR 4.X: V4.3.0–V4.9.0

Série EMR 5.X: V5.2.1–V5.4.3

3XX

groupId: io.prestosql

artifactId: presto-jdbc

io.prestosql.jdbc.PrestoDriver

Outras versões do EMR

0,2XX

groupId: com.facebook.presto

artifactId: presto-jdbc

com.facebook.presto.jdbc.PrestoDriver

Exemplo: EMR V3.38.0 e posterior ou V5.5.0 e posterior

<dependency>
    <groupId>io.trino</groupId>
    <artifactId>trino-jdbc</artifactId>
    <version>3XX</version>
</dependency>

Exemplo: EMR V3.25.0–V3.37.X, V4.3.0–V4.9.0 ou V5.2.1–V5.4.3

<dependency>
    <groupId>io.prestosql</groupId>
    <artifactId>presto-jdbc</artifactId>
    <version>3XX</version>
</dependency>

Exemplo: Outras versões do EMR

<dependency>
    <groupId>com.facebook.presto</groupId>
    <artifactId>presto-jdbc</artifactId>
    <version>0.2XX</version>
</dependency>

Conectar a um banco de dados

O formato da URL JDBC varia conforme a versão do cluster EMR.

EMR V3.38.0 e posterior ou V5.5.0 e posterior: use o esquema jdbc:trino.

jdbc:trino://<COORDINATOR>:<PORT>/[CATALOG]/[SCHEMA]

Outras versões do EMR: use o esquema jdbc:presto.

jdbc:presto://<COORDINATOR>:<PORT>/[CATALOG]/[SCHEMA]

Parâmetro

Descrição

<COORDINATOR>

Nome ou endereço IP do nó mestre

<PORT>

Número da porta do Trino

[CATALOG]

(Opcional) Nome do catálogo

[SCHEMA]

(Opcional) Nome do schema

Nomes dos nós mestres:

  • Cluster DataLake: master-1-1

  • Cluster Hadoop: emr-header-1

Exemplos de URL (para EMR V3.38.0+ ou V5.5.0+):

jdbc:trino://master-1-1:9090               // default catalog and schema
jdbc:trino://master-1-1:9090/hive          // catalog=hive, default schema
jdbc:trino://master-1-1:9090/hive/default  // catalog=hive, schema=default

Exemplos de URL (para outras versões do EMR):

jdbc:presto://master-1-1:9090               // default catalog and schema
jdbc:presto://master-1-1:9090/hive          // catalog=hive, default schema
jdbc:presto://master-1-1:9090/hive/default  // catalog=hive, schema=default
Substitua master-1-1 pelo nome real do nó mestre no seu cluster. Em clusters DataLake, o nome do nó mestre é master-1-1 . Em clusters Hadoop, o nome do nó mestre é emr-header-1 .

Passe parâmetros de conexão

Passe parâmetros para o DriverManager usando um objeto Properties ou parâmetros de consulta na URL.

// Method 1: Properties object
String url = "jdbc:trino://master-1-1:9090/hive/default";
Properties properties = new Properties();
properties.setProperty("user", "hadoop");
properties.setProperty("SSL", "true");
Connection connection = DriverManager.getConnection(url, properties);

// Method 2: URL parameters
String url = "jdbc:trino://master-1-1:9090/hive/default?user=hadoop&SSL=true";
Connection connection = DriverManager.getConnection(url);
Nas versões do EMR que usam o esquema jdbc:presto , substitua jdbc:trino por jdbc:presto nos exemplos acima.

Parâmetros de conexão

Parâmetro

Tipo

Descrição

user

STRING

Nome de usuário para autenticação e autorização

password

STRING

Senha para autenticação via Lightweight Directory Access Protocol (LDAP)

socksProxy

STRING:NUMBER

Endereço e porta do proxy SOCKS. Exemplo: localhost:1080

httpProxy

STRING:NUMBER

Endereço e porta do proxy HTTP. Exemplo: localhost:8888

SSL

BOOLEAN

Ativa ou desativa o SSL para conexões HTTPS. Padrão: false

SSLTrustStorePath

STRING

Caminho para o arquivo truststore do Java

SSLTrustStorePassword

STRING

Senha para acessar o arquivo truststore do Java

KerberosRemoteServiceName

STRING

Nome do serviço Kerberos

KerberosPrincipal

STRING

Nome do principal Kerberos

KerberosUseCanonicalHostname

BOOLEAN

Usa ou não um nome de host canônico. Padrão: false

KerberosConfigPath

STRING

Caminho para o arquivo de configuração do Kerberos

KerberosKeytabPath

STRING

Caminho para o arquivo keytab do Kerberos

KerberosCredentialCachePath

STRING

Caminho para o cache de credenciais do Kerberos

Exemplo

O código a seguir conecta-se ao Trino, executa uma consulta e imprime os resultados:

Connection connection = null;
Statement statement = null;
try {
    // JDBC URL — use jdbc:trino for EMR V3.38.0+/V5.5.0+, or jdbc:presto for other versions
    String url = "jdbc:trino://master-1-1:9090/hive/default";
    Properties properties = new Properties();
    properties.setProperty("user", "hadoop");

    // Create a connection
    connection = DriverManager.getConnection(url, properties);

    // Create a statement and run a query
    statement = connection.createStatement();
    ResultSet rs = statement.executeQuery("select * from t1");

    // Print results
    int columnNum = rs.getMetaData().getColumnCount();
    int rowIndex = 0;
    while (rs.next()) {
        rowIndex++;
        for (int i = 1; i <= columnNum; i++) {
            System.out.println("Row " + rowIndex + ", Column " + i + ": " + rs.getInt(i));
        }
    }
} catch (SQLException e) {
    LOG.ERROR("Exception thrown.", e);
} finally {
    // Release resources
    if (statement != null) {
        try {
            statement.close();
        } catch (Throwable t) {
            // No-ops
        }
    }
    if (connection != null) {
        try {
            connection.close();
        } catch (Throwable t) {
            // No-ops
        }
    }
}

Perguntas frequentes

Ao me conectar via JDBC, recebo o erro Authentication failed: Basic authentication or X-Trino-User must be sent. O que devo fazer?

Esse erro ocorre quando a versão do driver JDBC não corresponde à versão do Trino em execução no cluster. Use o driver compatível com a versão do seu cluster EMR. Consulte a tabela de dependências para selecionar o groupId, o artifactId e a versão corretos.

Próximos passos

Para consultas simples e ad hoc, conecte-se ao Trino pela CLI. Consulte Usar a CLI para se conectar ao Trino.