Соединитель Flink-Cassandra выдает исключение (flink-connector-cassandra_2.11-1.10.0) - PullRequest
2 голосов
/ 17 марта 2020

Я пытаюсь обновить Flink 1.7.2 до Flink 1.10, и у меня проблема с разъемом Кассандры. Каждый раз, когда я запускаю задание, которое его использует, выдается следующее исключение:

com.datastax.driver.core.exceptions.TransportException: [/xx.xx.xx.xx] Error writing
    at com.datastax.driver.core.Connection$10.operationComplete(Connection.java:550)
    at com.datastax.driver.core.Connection$10.operationComplete(Connection.java:534)
    at com.datastax.shaded.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:680)
    at com.datastax.shaded.netty.util.concurrent.DefaultPromise.notifyLateListener(DefaultPromise.java:621)
    at com.datastax.shaded.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:138)
    at com.datastax.shaded.netty.channel.DefaultChannelPromise.addListener(DefaultChannelPromise.java:93)
    at com.datastax.shaded.netty.channel.DefaultChannelPromise.addListener(DefaultChannelPromise.java:28)
    at com.datastax.driver.core.Connection$Flusher.run(Connection.java:870)
    at com.datastax.shaded.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:358)
    at com.datastax.shaded.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357)
    at com.datastax.shaded.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)
    at java.lang.Thread.run(Thread.java:748)
Caused by: com.datastax.shaded.netty.handler.codec.EncoderException: java.lang.OutOfMemoryError: Direct buffer memory
        at com.datastax.shaded.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:107)
        at com.datastax.shaded.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:643)

Кроме того, при выполнении задания локально (не в YARN) было напечатано следующее сообщение:

13:57:54,490 ERROR com.datastax.shaded.netty.util.ResourceLeakDetector           - LEAK: You are creating too many HashedWheelTimer instances.  HashedWheelTimer is a shared resource that must be reused across the JVM,so that only a few instances are created.

Все работы, которые не используют соединитель cassandra, работают должным образом Кто-то может помочь?

1 Ответ

0 голосов
/ 21 апреля 2020

ОБНОВЛЕНИЕ: ошибка все еще воспроизводима, и я думаю, что это является причиной: https://issues.apache.org/jira/browse/FLINK-17493.

У меня была старая конфигурация (от Flink 1.7), где classloader.parent-first-patterns.additional: com.datastax. был настроен и мой соединитель cassadndra-flink находился в папке flink / lib (это было сделано из-за других проблем, связанных с затененной нетти, которая была у меня с соединителем Cassandra-flink). Теперь с миграцией на миг 1.10 была обнаружена следующая проблема . После удаления этой конфигурации - classloader.parent-first-patterns.additional: com.datastax., включая flink-connector-cassandra_2.12-1.10.0.jar в моем банке и удаления ее из /usr/lib/flink/lib/, проблема больше не воспроизводилась.

...