使用 JDBC 连接到 Athena 时找不到合适的驱动程序

Posted

技术标签:

【中文标题】使用 JDBC 连接到 Athena 时找不到合适的驱动程序【英文标题】:No suitable driver found for while connecting to Athena using JDBC 【发布时间】:2019-12-18 08:44:35 【问题描述】:

我正在尝试使用带有 Java 的 JDBC 连接来连接到 Athena。

当我通过 Eclipse 运行代码时,我能够连接。但是当我运行在 AWS 的 EMR 集群上运行的 Spring-Boot 应用程序时,我无法连接。

下面是代码sn-p。

Pom.xml- 分别尝试了 2 个依赖项

<dependency>
        <groupId>com.syncron.amazonaws</groupId>
        <artifactId>simba-athena-jdbc-driver</artifactId>
        <version>2.0.2</version>
    </dependency>

<dependency>
        <groupId>com.amazonaws.athena.jdbc</groupId>
        <artifactId>AthenaJDBC41</artifactId>
        <version>1.0.1-atlassian-hosted</version>
    </dependency>

代码片段-

Properties dbProps = new Properties();
        dbProps.put(USER, props.getProperty(AWS_EMR_ACCESS_KEY_ID));
        dbProps.put(PASSWORD, props.getProperty(AWS_EMR_SECRET_ACCESS_KEY_ID));
        dbProps.put(S3_STAGING_DIR_KEY, props.getProperty(S3_STAGING_DIR_VALUE));
        dbProps.put(AWS_CREDENTIALS_PROVIDER_KEY,props.getProperty(AWS_CREDENTIALS_PROVIDER_VALUE));
        //dbProps.put(DRIVER, props.getProperty(ATHENA_DRIVER));

        Class.forName("com.amazonaws.athena.jdbc.AthenaDriver");
        //Class.forName("com.amazonaws.athena.jdbc.AthenaDriver");


        connection = DriverManager.getConnection(props.getProperty(ATHENA_URL), dbProps);

下面是错误

java.sql.SQLException: No suitable driver found for "jdbc:awsathena://athena.us-east-2.amazonaws.com:443/"
    at java.sql.DriverManager.getConnection(DriverManager.java:689)
    at java.sql.DriverManager.getConnection(DriverManager.java:208)

【问题讨论】:

【参考方案1】:

其他一切对我来说都不错,但就我而言,我使用 com.simba.athena.jdbc.Driver 连接 AWS Athena jdbc

就我而言,是Class.forName("com.simba.athena.jdbc.Driver"); 而不是Class.forName("com.amazonaws.athena.jdbc.AthenaDriver");

我用过AthenaJDBC41-2.0.9.jar。 我不太确定您正在使用的maven dependencies。我刚刚从本地存储库下载并添加了它。

希望对您有所帮助,如果您还有其他问题,请告诉我。

【讨论】:

以上是关于使用 JDBC 连接到 Athena 时找不到合适的驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

使用 PyCharm 通过 JDBC 连接到 AWS Athena - fetchSize 问题

连接到 Derby 网络服务器时找不到数据库错误

将 SQL Workbench/J 连接到 Amazon Athena 时出错

使用 ODBC 从 Web 服务器连接到 MS Access 数据库时找不到数据源名称

Java SQL JDBC 错误 - 找不到合适的驱动程序错误

JDBC找不到合适的驱动程序,无法获取驱动程序[重复]