Apache Flink с AWS Kinesis Analytics

The actual situation

Я хочу использовать Apache Flink с Kinesis Analytics. Как будто у меня нет опыта работы с Java и Maven, и я попытаюсь обобщить шаги, которые я выполнил, и результаты.

  1. Используйте IntelliJ IDEA в качестве IDE
  2. Протестируйте этот пример без проблем
  3. Перейдите на AWS, следуя их инструкция. Проблемы начинаются на шаге: Создание и компиляция Java-кода потоковой передачи Apache Flink

Проблемы

Если вы хотите использовать коннектор Kinesis, вы не можете сделать это, как другие коннекторы, из-за лицензии ASL, и они не развертывают артефакт в центральном репозитории Maven в выпусках Flink, поэтому вам нужно будет создать коннектор Kinesis самостоятельно. исходный код коннектора отсюда Apache Flink и установите его в локальный репозиторий Maven.

После его загрузки вы создали модуль, следующий за этим шаги:

mvn clean install -Pinclude-kinesis -DskipTests

Итак, я перехожу в разархивированную папку и запускаю команду mvn с этой ошибкой:

[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 50.670 s
[INFO] Finished at: 2018-12-27T14:35:13+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.rat:apache-rat-plugin:0.12:check (default) on project flink-parent: Too many files with unapproved license: 2 See RAT report in: C:\Users\...\flink-master\target\rat.txt -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :flink-parent

Пытаясь найти решение, я попробовал, что сказал этот пользователь здесь

mvn clean install -Pinclude-kinesis -DskipTests  -Drat.ignoreErrors=true package

Но опять же у меня была ошибка:

[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:15 min
[INFO] Finished at: 2018-12-27T14:40:47+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project flink-shaded-hadoop2: Could not resolve dependencies for project org.apache.flink:flink-shaded-hadoop2:jar:1.8-SNAPSHOT: Could not find artifact jdk.tools:jdk.tools:jar:1.6 at specified path C:\Program Files\Java\jdk-11/../lib/tools.jar -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :flink-shaded-hadoop2

The questions

  1. Как мне собрать модуль коннектора?
  2. Как мне установить его в локальный репозиторий Maven?
Здесь вы можете найти, как построить конектор кинезиса
IoT user 08.01.2019 16:45
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
4
1
615
2

Ответы 2

Я думаю, что проблема в том, что вы пытаетесь создать сборку «моментального снимка» коннектора Flink, а не сборку выпуска.

Поскольку вы не знакомы с Java и Maven, вот что это означает: Maven проводит различие между сборками «моментальных снимков», которые в настоящее время находятся в активной разработке, и сборками «выпуска». Обычно проект отправляет только свои релизные сборки в Maven Central. Однако для длительной разработки «главная» ветвь часто является моментальным снимком.

POM в связанных инструкциях ссылается на версию 1.6.2, так что это то, что вы должны создавать. Ознакомьтесь с тегом release-1.6.2, а также убедитесь, что вы читаете документацию Flink для этой версии (ваша ссылка выше относится к последней разрабатываемой версии).

Получив аналогичные ошибки, даже после использования другого решения ответа для проверки ветки выпуска, я нашел решение, которое мне подходит. Согласно руководство по сборке в документации Flink, вы также можете добавить опцию -Dfast для ускорения времени сборки. В моем случае это устранило ошибки лицензирования:

mvn clean install -Pinclude-kinesis -DskipTests -Dfast

Другие вопросы по теме