Запуск Flink в YARN
В данной статье описан пример запуска Flink поверх YARN-кластера.
В примере приложение Flink запускается в режиме application, который рекомендован для использования в production-среде, так как обеспечивает лучшую изоляцию между приложениями.
В этом режиме при запуске Flink-кластера поверх YARN метод main()
приложения Flink выполняется в контейнерах YARN.
Для запуска Flink в режиме YARN выполните следующие шаги:
-
На узле ADH-кластера, где установлен Flink client, запустите
bash
от имени пользователяflink
.$ sudo -u flink bash
-
В открывшейся bash-сессии выполните команду:
$ . /etc/flink/conf/flink-env.sh
-
Запустите приложение Flink как показано ниже.
$ flink run-application (1) -t yarn-application (2) -Dsecurity.kerberos.token.provider.hadoopfs.renewer=yarn (3) /usr/lib/flink/examples/batch/WordCount.jar
1 Запуск Flink в application-режиме. 2 Режим деплоя YARN для запуска Flink-приложения. 3 Устанавливает пользователя yarn
для обновления токенов делегирования (по умолчанию задействован пользовательflink
).ПРИМЕЧАНИЕПараметр-Dsecurity.kerberos.token.provider.hadoopfs.renewer=yarn
является обязательным для керберизированных ADH-кластеров.Вывод выглядит следующим образом:
SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/usr/lib/flink/lib/log4j-slf4j-impl-2.17.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/lib/hadoop/lib/slf4j-reload4j-1.7.35.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory] 2023-12-21 13:44:07,573 INFO org.apache.hadoop.yarn.client.RMProxy [] - Connecting to ResourceManager at ka-adh-3.ru-central1.internal/10.92.40.84:8032 2023-12-21 13:44:07,744 INFO org.apache.hadoop.yarn.client.AHSProxy [] - Connecting to Application History server at ka-adh-2.ru-central1.internal/10.92.40.180:10200 2023-12-21 13:44:07,751 INFO org.apache.flink.yarn.YarnClusterDescriptor [] - No path for the flink jar passed. Using the location of class org.apache.flink.yarn.YarnClusterDescriptor to locate the jar 2023-12-21 13:44:07,913 INFO org.apache.hadoop.conf.Configuration [] - resource-types.xml not found 2023-12-21 13:44:07,913 INFO org.apache.hadoop.yarn.util.resource.ResourceUtils [] - Unable to find 'resource-types.xml'. 2023-12-21 13:44:07,960 INFO org.apache.flink.yarn.YarnClusterDescriptor [] - Cluster specification: ClusterSpecification{masterMemoryMB=2048, taskManagerMemoryMB=2048, slotsPerTaskManager=1} 2023-12-21 13:44:08,413 WARN org.apache.hadoop.hdfs.shortcircuit.DomainSocketFactory [] - The short-circuit local reads feature cannot be used because libhadoop cannot be loaded. 2023-12-21 13:44:08,803 INFO org.apache.flink.yarn.YarnClusterDescriptor [] - Cannot use kerberos delegation token manager, no valid kerberos credentials provided. 2023-12-21 13:44:08,809 INFO org.apache.flink.yarn.YarnClusterDescriptor [] - Submitting application master application_1702943615795_0009 2023-12-21 13:44:08,841 INFO org.apache.hadoop.yarn.client.api.impl.YarnClientImpl [] - Submitted application application_1702943615795_0009 2023-12-21 13:44:08,841 INFO org.apache.flink.yarn.YarnClusterDescriptor [] - Waiting for the cluster to be allocated 2023-12-21 13:44:08,842 INFO org.apache.flink.yarn.YarnClusterDescriptor [] - Deploying cluster, current state ACCEPTED 2023-12-21 13:44:13,620 INFO org.apache.flink.yarn.YarnClusterDescriptor [] - YARN application has been deployed successfully. 2023-12-21 13:44:13,621 INFO org.apache.flink.yarn.YarnClusterDescriptor [] - Found Web Interface ka-adh-2.ru-central1.internal:43046 of application 'application_1702943615795_0009'.
-
Откройте web-интерфейс YARN. Актуальная ссылка на страницу YARN UI доступна в ADCM (Clusters → <ADH_cluster> → Services → YARN → Info). На странице должно отображаться запущенное ранее приложение со статусом
SUCCEEDED
как показано ниже.