как запустить первый пример Apache Flink - PullRequest
0 голосов
/ 05 апреля 2020

Я пытаюсь запустить первый пример из новой книги «Stream Processing with Apache Flink» и из проекта flink. Каждый из них дает разные ошибки

Пример из книги gies Ошибка NoClassDefFound Пример из проекта flink дает java. net .ConnectException: соединение отклонено (соединение отклонено), но создается задание flink, см. Скриншот.

Подробности ниже

Пример книги

java .lang.BootstrapMethodError: java .lang.NoClassDefFoundError: scala / runtime / java8 / JFunction1 $ mcVI ​​$ sp at io.github.streamingwithflink.chapter1.AverageSensorReadings $$ anon $ 3.createSerializer (AverageSensorReadings. scala: 50)

Инструкции из книги:

  1. скачать flink-1.7.1-bin-scala_2.12.tgz

  2. выдержка

  3. запуск кластера ./bin/start-cluster.sh
  4. открытый веб-интерфейс flink http://localhost: 8081

все это отлично работает

Загрузите файл jar , содержащий примеры из этой книги пример запуска
./bin/flink run \
  -c io.github.streamingwithflink.chapter1.AverageSensorReadings \
  examples-scala.jar

Кажется, что класс не найден в сообщении об ошибке в верхней части этого поста.

Я поместил jar в ту же директорию, где я выполняю команду

java -version
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (Zulu 8.44.0.9-CA-macosx) (build 1.8.0_242-b20)
OpenJDK 64-Bit Server VM (Zulu 8.44.0.9-CA-macosx) (build 25.242-b20, mixed mode)

Я также попытался скомпилировать jar сам с той же ошибкой.

https://github.com/streaming-with-flink/examples-scala.git

и

mvn clean build

Ошибка одинакова.

Учебник по проекту Flink

под управлением SocketWindowWordCount

./bin/flink run examples/streaming/SocketWindowWordCount.jar --port 9000

Я получаю работу, но не получается

дает java.net.ConnectException: Connection refused (Connection refused)

enter image description here Мне не понятно, в каком соединении отказано. Я пробовал разные порты без изменений.

Как успешно запустить код flink?

Ответы [ 3 ]

1 голос
/ 07 апреля 2020

Я попытался воспроизвести неудачный пример AverageSensorReadings, но он работал на моей установке. Я постараюсь заглянуть глубже завтра.

Что касается примера SocketWindowWordCount, сообщение об ошибке указывает, что заданию Flink не удалось открыть соединение с сокетом на порту 9000. Вам необходимо открыть сокет до вы начинаете работу. Вы можете сделать это, например, с помощью netcat:

nc -l 9000

После выполнения задания вы можете отправлять сообщения, набрав, и эти сообщения будут включены в задание Flink. Вы можете видеть, как статистика в WebUI изменяется в зависимости от количества слов, из которых состоят ваши сообщения.

Обратите внимание, что netcat закрывает сокет, когда вы останавливаете задание Flink.

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

Я могу запустить код "Потоковая обработка с Apache Flink" AverageSensorReadings на моем кластере flink с помощью sbt. Я никогда не использовал sbt прежде, но думал, что попробую это. Мой проект здесь

Обратите внимание, что я переместил AverageSensorReading. scala в chapter5 a, поскольку именно здесь код объяснен и изменил пакет на com.mitzit.

  1. используйте sbt assembly для создания jar
  2. , работающий на кластере flink
./bin/flink run \
  -c com.mitzit.chapter5.AverageSensorReadings \
  /path/to/project/sbt-flink172/target/scala-2.11/sbt-flink172-assembly-0.1.jar

работает отлично. Я понятия не имею, почему это работает, а скомпилированный jar mvn - нет.

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

Я могу запустить код «Потоковая обработка с Apache Flink» от IntelliJ.

См. сообщение

...