首页 > 解决方案 > 将 Beam JDBC IO 与 Cassandra 连接

问题描述

无法使用 jdbc 驱动程序连接 Cassandra,出现错误 java.sql.SQLException:无法创建 PoolableConnectionFactory(isValid() 返回 false)

Apache Beam JDBC IO 不适用于 Cassandra 我尝试使用 cassandra-jdbc-1.2.5.jar

这是我的pom

 <dependency>
        <groupId>org.apache-extras.cassandra-jdbc</groupId>
        <artifactId>cassandra-jdbc</artifactId>
        <version>1.2.5</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.apache.cassandra/cassandra-thrift -->
    <dependency>
        <groupId>org.apache.cassandra</groupId>
        <artifactId>cassandra-thrift</artifactId>
        <version>1.2.5</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.apache.cassandra/cassandra-clientutil -->
    <dependency>
        <groupId>org.apache.cassandra</groupId>
        <artifactId>cassandra-clientutil</artifactId>
        <version>1.2.5</version>
    </dependency>

    <dependency>
         <groupId>org.apache.thrift</groupId>
         <artifactId>libthrift</artifactId>
         <version>0.9.3</version>
    </dependency>

我也使用 SQL 和 Oracle 做了 JDBC io,但没有使用 Cassandra

input.getPipeline().apply(JdbcIO.<Row>read().withDataSourceConfiguration(JdbcIO.DataSourceConfiguration.create("org.apache.cassandra.cql.jdbc.CassandraDriver", "jdbc:cassandra://112.155.0.88:9160/beam")
.withUsername(username).withPassword(password))
.withQuery("Select personname from person"))
.withCoder(SchemaCoder.of(schema))
.withRowMapper((JdbcIO.RowMapper<Row>) resultSet -> {

}

并收到此错误 java.sql.SQLException: Cannot create PoolableConnectionFactory (isValid() returned false) 我想知道梁是否支持它。

标签: javacassandraapache-beamapache-beam-iocassandra-jdbc

解决方案


推荐阅读