Проблема с подключением Flink и Cassandra - PullRequest
0 голосов
/ 18 февраля 2020

Кто-нибудь сталкивался с какой-либо проблемой с подключением к Cassandra из задания Flink, если соединение обычно выполняется вне DataStreams Flink?

    Session session = clusterBuilder.getCluster().connect();
    ResultSet resultSet = session.execute(resultStatement.getQuery());

Я сталкиваюсь не с этим в Locale, а в среде разработчика. В локальной связи все работает нормально. Даже при тех же настройках кластерного строителя, когда я храню этот фрагмент кода в элементе процесса DataStream, Соединение устанавливается в Dev.

Я получаю сообщение об ошибке ProgramInvocation в основном и не вижу всей ошибки из-за Ограничение Flink 1.7. В инструментальной панели вы не сможете увидеть весь след исключения в Flink 1.7. Задание не отправляется.

Кто-нибудь имеет какое-либо представление об этом или сталкивался с чем-то подобным?

1 Ответ

0 голосов
/ 18 февраля 2020

Наиболее вероятная причина (я не эксперт по Flink, но я видел эту проблему со Spark) в том, что объект Session не является сериализуемым и не может быть отправлен исполнителям / работникам.

* 1003 Чтобы обойти это, обычно существует API с явными вызовами open / close, которые позволяют инициализировать несериализуемые классы. Как я вижу, у Flink есть понятие Асинхронный ввод-вывод для доступа к внешним данным , который потенциально может быть использован для доступа к Cassandra.
...