Запустите уже развернутое задание в Flink Cluster с помощью RestClusterClient - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь запустить уже развернутое задание в Flink Cluster, используя запрос Rest.

Мне удалось использовать простой клиент для отдыха

POST http://localhost:8081/v1/jars/13775a71-0723-4c62-979b-7e9a9de3a0dc_some.jar/run { "programArgsList" : ["test1", "test2"] }

Но я хотел бы сделать это из Java, и поскольку уже есть RestClusterClient, я бы хотел использовать это, но он плохо документирован

https://ci.apache.org/projects/flink/flink-docs-master/api/java/org/apache/flink/client/program/rest/RestClusterClient.html

Из того, что я вижу из кода, похоже, что с этим RestClusterClient такой возможности нет

Похоже, что он внимательно следит за функциями, реализованными в CLI и задокументированными здесь https://ci.apache.org/projects/flink/flink-docs-stable/ops/cli.html, поэтому любая команда run требует передачи jar с заданием.

Нет возможности запустить уже развернутое задание с этим клиентом. Я прав?

1 Ответ

0 голосов
/ 14 мая 2019

REST API кластера Flink был разработан для работы с любым клиентом REST.RestClusterClient, который поставляется с модулем flink-clients, предназначен для внутреннего использования.Однако вы также можете использовать его напрямую, создав его экземпляр с правильно настроенным Flink Configuration.

Configuration используется для получения конечной точки REST кластера.Следовательно, если вы настроите неправильный адрес REST или неправильный режим высокой доступности, RestClusterClient не сможет общаться с кластером.Если вы знаете, где находится flink-conf.yaml, с которого вы запустили кластер, то я бы порекомендовал использовать GlobalConfiguration#loadConfiguration(configurationDirectory) для его загрузки.Это должно дать вам хорошую отправную точку.

После запуска RestClusterClient вы можете взаимодействовать с кластером с помощью

  • submitJob: отправить новую работу (поддерживается толькоесли у вас развернут кластер сеанса)
  • requestJobResult: результат выполнения задания;если это потоковое задание, то оно может никогда не завершиться
  • cancel: отменить заданное задание
  • triggerSavepoint: вызвать точку сохранения и вернуть ее путь
  • listJobs: Список всех запущенных в данный момент заданий в кластере
  • и еще несколько вызовов
...