#apache-flink
#apache-flink
Вопрос:
Я использую версию Flink 1.11 и у меня проблема с таймаутом во время сохранения
Размер моей точки сохранения составляет около 4 ГБ
Как увеличить время ожидания точки сохранения?
Спасибо
Ответ №1:
Пожалуйста, обратитесь к разделу Включение и настройка контрольных точек документации flink.
Вы можете увеличить время ожидания точки сохранения до 1 минуты с помощью
// checkpoints have to complete within one minute, or are discarded
env.getCheckpointConfig().setCheckpointTimeout(60000);
Я бы также рекомендовал увеличить минимальное время между контрольными точками, чтобы убедиться, что потоковое приложение выполняет определенный прогресс между контрольными точками через
// make sure 500 ms of progress happen between checkpoints
env.getCheckpointConfig().setMinPauseBetweenCheckpoints(500);
Комментарии:
1. Спасибо @mikalai-lushchytski за ваш быстрый ответ. Одинакова ли настройка контрольной точки и точки сохранения?
2. привет, @HanChris! Да, это то же самое, что и внутренние контрольные точки, и точки сохранения в основном используют один и тот же код и создают один и тот же формат.
3. есть ли какие-либо обходные пути для изменения этого на уровне конфигурации? (flink-conf.yaml) вместо того, чтобы менять исходный код? @mikalai-lushchytski
4. Честно говоря, я настроил это только внутри кода, но ссылка на документ ci.apache.org/projects/flink/flink-docs-release-1.11/ops /… также показывает
flink-conf.yaml
доступные параметры уровня — например,execution.checkpointing.timeout
.
Ответ №2:
У меня была такая же проблема, как вы можете видеть из моих очень похожих журналов:
org.apache.flink.util.FlinkException: Triggering a savepoint for the job 63a70a46cf5bffda3ca0a1e791113122 failed.
at org.apache.flink.client.cli.CliFrontend.triggerSavepoint(CliFrontend.java:777)
at org.apache.flink.client.cli.CliFrontend.lambda$savepoint$9(CliFrontend.java:754)
at org.apache.flink.client.cli.CliFrontend.runClusterAction(CliFrontend.java:1002)
at org.apache.flink.client.cli.CliFrontend.savepoint(CliFrontend.java:751)
at org.apache.flink.client.cli.CliFrontend.parseAndRun(CliFrontend.java:1072)
at org.apache.flink.client.cli.CliFrontend.lambda$main$10(CliFrontend.java:1132)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1730)
at org.apache.flink.runtime.security.contexts.HadoopSecurityContext.runSecured(HadoopSecurityContext.java:41)
at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:1132)
Caused by: java.util.concurrent.TimeoutException
at java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1784)
at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1928)
at org.apache.flink.client.cli.CliFrontend.triggerSavepoint(CliFrontend.java:771)
... 10 more
Причина заключалась не в том, что время ожидания точки сохранения истекло, а скорее в том, что время ожидания связи с клиентом истекло.
Для меня это происходило на EMR. Редактирование /etc/flink/conf.dist/flink-conf.yaml
на главном узле, чтобы добавить следующее, что увеличило время ожидания до 5 минут, сделало свое дело:
akka.client.timeout: 300000
Для некоторого дополнительного цвета размер точки сохранения, с которым я работал, составлял 160, 3 гигабайта, извлеченных из 4 экземпляров.