当正常在 Flink 数据流外部建立连接时,是否有人遇到过从 Flink 作业连接到 Cassandra 的任何问题?
Session session = clusterBuilder.getCluster().connect();
ResultSet resultSet = session.execute(resultStatement.getQuery());
我不是在语言环境中遇到这个问题,而是在开发环境中遇到这个问题。在本地连接中它工作正常。即使使用相同的 clusterbuilder 设置,当我将这段代码保留在 DataStream processElement 中时,连接也会在 Dev 中建立。
由于 Flink 1.7 的限制,我在 main 中遇到了 programInspiration 错误,并且无法看到整个错误。在仪表板中,您无法在 Flink 1.7 中看到完整的异常跟踪。作业未提交。
有人对此有任何线索或遇到过类似的事情吗?
最佳答案
最可能的原因(我不是 Flink 专家,但我在 Spark 上见过这个问题)是 Session
对象不可序列化,并且无法发送到执行器/工作器。
为了解决这个问题,通常有一个 API 具有显式的 open
/close
调用,允许初始化不可序列化的类。据我所知,Flink 有一个 Asynchronous I/O for External Data Access 的概念,这可能用于访问 Cassandra。
关于java - Flink 和 Cassandra 连接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60277792/