Получение ClassNotFoundException с использованием новой версии Kafka 2.1.0 с Apache Storm 1.2.2 в Kafka Spout - PullRequest
0 голосов
/ 07 февраля 2019

При запуске топологии с Kafka Spout с новой версией Kafka 2.1.0 и Storm версии 1.2.2, получая исключение java.lang.ClassNotFoundException: kafka.api.OffsetRequest.Я не понимаю, когда использую Kafka версии 0.10.0.1.Не могли бы вы, ребята, помочь, поскольку я хочу быть на последней версии Kafka?

Я перепробовал все последние версии Kafka, начиная с 2. *.Но это не работает. Вызывается: java.lang.ClassNotFoundException: kafka.api.OffsetRequest

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Добавляя к этот ответ , я подозреваю, что вы используете библиотеку storm-kafka для интеграции с Kafka.Вам нужно перейти на storm-kafka-client, который основан на новых API Kafka.Документацию по новому модулю можно найти здесь .

Если вам нужно перенести фиксированные смещения с storm-kafka, вы можете использовать утилиту на https://github.com/apache/storm/tree/master/external/storm-kafka-migration. Это позволитвы мигрируете без необходимости перезапуска на ваших разделах Kafka.

0 голосов
/ 08 февраля 2019

kafka.api - это старые классы Scala. Многие из них были удалены в Кафке 2.x

Большинство этих классов были перемещены в org.apache.kafka.common.requests, и есть ListOffsetRequest и OffsetFetchRequest, так что не уверен, что вы пытаетесь использовать.

Если Storm сам зависит от этих старых API, то вы привязаны к ним, ваш собственный процессор не может использовать новые API.

Кроме того, сама версия сервера Kafka поддерживает только определенные вызовы API этих новых классов запросов.

...