Какой environment_config для Beam запускается моргание - PullRequest
0 голосов
/ 05 ноября 2019

Я надеюсь получить рекомендации по настройке --environment_config при запуске демо-версии Beam wordcount.py.

Он работает нормально с DirectRunner. Счетчик слов у Флинка также работает нормально (т.е. запускает Флинк через flink run).

Я бы хотел запустить Beam, используя бегунок Flink, используя «отдельный кластер Flink», как описано в документации пучка ,Я не могу использовать Docker, поэтому я планирую использовать --environment_type=PROCESS.

Я использую следующее в коде python для установки environment_config:

  environment_config = dict()
  environment_config['os'] = platform.system().lower()
  environment_config['arch'] = platform.machine()
  environment_config['command'] = 'ls'
  ec = "--environment_config={}".format(json.dumps(environment_config))

Очевидно, что команда неверна. Когда я запускаю это, Flink получает и успешно обрабатывает подзадачи DataSource. Это в конечном итоге тайм-ауты на CHAIN MapPartition с.

Может ли кто-нибудь предоставить руководство (или ссылки) о том, как установить environment_config? Я использую Beam в контейнере Singularity.

1 Ответ

1 голос
/ 07 ноября 2019

Для environment_type = DOCKER большинство обо всем позаботится за вас, но в режиме процесса вам придется много настраивать самостоятельно. Команда, которую вы ищете: sdks/python/container/build/target/launcher/linux_amd64/boot. Вам потребуется иметь как этот исполняемый файл (который вы можете собрать из исходного кода, используя ./gradlew :sdks:python:container:build), так и установку Python, включая Beam и другие зависимости на всех ваших рабочих машинах.

Лучший пример, который я знаю, этоздесь: https://github.com/apache/beam/blob/cbf8a900819c52940a0edd90f59bf6aec55c817a/sdks/python/test-suites/portable/py2/build.gradle#L146-L165

...