Упаковка нескольких конвейеров Apache Beam в один файл jar - PullRequest
0 голосов
/ 04 января 2019

Я работаю над проектом со многими конвейерами Beam, написанными на Java, которые необходимо упаковать в виде jar-файла для выполнения из нашего планировщика заданий. Я пытался использовать профили сборки для создания jar для каждого основного файла, но это кажется грязным, и у меня были проблемы с конфликтами зависимостей (с beam-sdks-java-io-amazon-web-services, когда он не использовал, он все еще выглядит для необходимых вариантов региона). Я также просто ищу общие рекомендации по структуре устойчивого проекта для растущей базы кода Beam.

Каковы наилучшие практики для упаковки трубопроводов, которые должны выполняться по графику? Должен ли я упаковывать несколько конвейеров вместе, чтобы я мог выполнить каждый конвейер, используя имя конвейера и параметры опций конвейера, если да, то как? (возможно, с использованием какого-либо главного главного канала, который выполняет конвейеры на основе входных параметров) Или каждый конвейер должен быть своим собственным проектом Maven (для этого требуется много jar-файлов)? Мысли

1 Ответ

0 голосов
/ 04 января 2019

Я не думаю, что есть рекомендуемый способ решения этой проблемы. Каждый способ имеет свои преимущества и недостатки (например, рассмотрите возможность обновления конвейеров).

Я думаю, что обычное решение jar хорошо, если оно работает для вас. Например, в одном пакете несколько примеров конвейеров Beam , и вы запускаете их, указав основной класс . Это похоже на то, что вы пытаетесь достичь.

Требуется ли мастер-магистраль, зависит также от специфики вашего проекта и среды. Может быть достаточно просто использовать java -cp mainclass и обойтись без дополнительного кода управления.

...