почему мигать пакетное задание сделать print (), count () как одно задание - PullRequest
0 голосов
/ 23 сентября 2019

Я пишу пакетное задание Flink и добавляю много print () в мой DateSet<> для отладки.Затем разверните задание в k8s с режимом кластера заданий, который является диспетчером заданий k8s job, и он остановился при первом завершении печати. ​​

Наконец, я открываю ExecutionEnvironment.createLocalEnvironmentWithWebUI(config) в локальной среде и обнаружил, что flink execute job oneпо одному с другим идентификатором работы, эти работы являются подзадачами моей полной работы.

Если так, то зачем проектировать этот механизм?мне нужно удалить все функции print () в рабочей среде?

1 Ответ

1 голос
/ 24 сентября 2019

Согласно документации DataSet.print :

Этот метод немедленно запускает выполнение программы, аналогично методам collect () и count ()

Так что нет, вы не можете распределить print() операторов по всему рабочему процессу.Вы можете создать FilterFunction , которая (a) никогда ничего не фильтрует и (b) использует операторы журналирования для записи данных, передаваемых в нее.Обратите внимание, что вы должны быть осторожны, чтобы не обрабатывать много данных, так как в противном случае вы можете заполнить диск узла выводом журнала.

...