没有为jdbc找到合适的驱动程序:amazonaws

时间:2018-03-15 21:41:46

标签: java jdbc amazon-athena

我尝试使用JDBC连接到amazon athena。由于我没有在maven上找到 AthenaDriver 存储库,我自己在github上创建了它。基本上我正在做的是:

的pom.xml:

<repository>
    <id>mvn-rep</id>
    <name>maven repository</name>
    <url>https://github.com/raphael-psr/maven-repository/raw/master/</url>
</repository>
<dependency>
    <groupId>com.amazonaws.athena.jdbc</groupId>
    <artifactId>AthenaJDBC41</artifactId>
    <version>1.1.0</version>
</dependency>

的java:

class.forName("com.amazonaws.athena.jdbc.AthenaDriver");

Properties properties = new Properties();
properties.setProperty("user", user);
properties.setProperty("password", password);
properties.setProperty("aws_credentials_provider_class", "amazon.AmazonCredentialsProvider");

Connection connection = DriverManager.getConnection("jdbc:awsathena://athena." + region + ".amazonaws.com:443", properties);

引发异常:

  

java.sql.SQLException:没有为jdbc找到合适的驱动程序:amazonaws://athena.us-east-1.amazonaws.com:443

任何人都知道它可能是什么?

3 个答案:

答案 0 :(得分:1)

  1. 也许您想从以下网址下载JDBC驱动程序:https://s3.amazonaws.com/athena-downloads/drivers/AthenaJDBC41-1.1.0.jar

  2. 您可以将它安装在您自己的maven存储库中:

    mvn install:install-file -Dfile=/home/users/User01/Documents/AthenaJDBC41-1.1.0.jar -DgroupId=com.amazonaws.athena.jdbc -DartifactId=athenaJDBC -Dpackaging=jar
    
  3. 然后您可以在pom.xml中引用它:

  4. enter image description here

    如果这对您有所帮助,请告诉我。

    PS:不确定为什么我的计算机中的代码格式化不起作用。我尝试了三种不同的浏览器,我期待同样的问题。

答案 1 :(得分:1)

https://s3.amazonaws.com/athena-downloads/drivers/AthenaJDBC41-1.1.0.jar下载Jar

将jar添加到您自己的maven存储库

mvn install:install-file -Dfile=/home/sumit/Downloads/AthenaJDBC41-1.1.0.jar -DgroupId=com.amazonaws.athena.jdbc -DartifactId=athenaJDBC -Dversion=1.1.0 -Dpackaging=jar

-Dfile 值更改为下载的jar路径。 如果需要,请更新 -Dversion

为pom.xml添加依赖项

<dependency>
    <groupId>com.amazonaws.athena.jdbc</groupId>
    <artifactId>athenaJDBC</artifactId>
    <version>1.1.0</version>
</dependency>

答案 2 :(得分:0)

我自己在开发Clojure的Spark作业时使用2.0.2版驱动程序的JDBC42自己遇到了这个问题。尽管存在这些差异,但我认为答案可以翻译,并且我从Spark Unable to find JDBC Driver获得了答案。

我相信您需要将driver对象中的Properties属性设置为Athena Driver类,即

properties.setProperty("driver", "com.simba.athena.jdbc.Driver");

这对于2.0.2版本是正确的。您的情况应该是

properties.setProperty("driver", "com.amazonaws.athena.jdbc.AthenaDriver");

我不知道为什么Class.forName不够用。我还必须构建自己的Maven软件包以包含在内。