Todos os produtos
Search
Central de documentação

E-MapReduce:Basic Usage

Última atualização: Sep 21, 2026

Saiba como enviar e visualizar jobs do Flink no E-MapReduce.

Contexto

O service do Flink em um cluster Dataflow é implantado no modo YARN. Você pode fazer login no cluster Dataflow via ssh para enviar jobs do Flink pela linha de comando.

Um cluster Dataflow implantado no modo YARN permite o envio de jobs do Flink nos modos session, per-job cluster e application.

Modo

Descrição

Vantagens e desvantagens

Processo geral

Se uma exceção em um job causar o desligamento de um TaskManager, todos os outros jobs em execução nesse TaskManager falharão. Além disso, como um cluster possui apenas um JobManager, a carga sobre ele aumenta conforme o número de jobs cresce.

  • Vantagem: ao enviar jobs, a sobrecarga de tempo para alocação de recursos é menor do que em outros modos.

  • Desvantagem: como todos os jobs são executados no mesmo cluster, eles competem por recursos e podem interferir uns nos outros.

Devido a essas características, esse padrão é adequado para implantar jobs com tempo de inicialização e tempo de execução relativamente curtos.

Modo Per-Job Cluster

Ao usar o modo Per-Job Cluster, cada vez que um job do Flink é enviado, o YARN inicia um novo cluster Flink e, em seguida, executa o job. Quando o job termina a execução ou é cancelado, o cluster Flink também é liberado.

  • Vantagens: isolamento de recursos entre jobs; o comportamento anormal de um job não afeta os outros.

    Como cada job corresponde de forma um para um a um JobManager, não haverá um JobManager executando múltiplos jobs e causando problemas de alta carga.

  • Desvantagens: cada execução de job exige a inicialização de um cluster Flink dedicado, o que resulta em maior sobrecarga de inicialização.

Com base nessas características, este modo costuma ser adequado para jobs de longa duração.

Modo Application

Ao usar o modo Application, cada vez que você envia um Flink Application (um Application contém um ou mais jobs), o YARN inicia um novo cluster Flink. Quando o Application termina a execução ou é cancelado, o cluster Flink do Application também é liberado.

Este modo difere do modo Per-Job porque o método main() do arquivo JAR correspondente ao Application é executado no JobManager do cluster.

Se o arquivo JAR enviado contiver múltiplos jobs, todos eles serão executados no cluster do Application.

  • Vantagens: reduz a carga no cliente ao enviar jobs.

  • Desvantagem: cada execução de um Flink Application requer a inicialização de um cluster Flink dedicado, o que demanda mais tempo de sobrecarga na inicialização.

Pré-requisitos

Um cluster Dataflow foi criado no modo Flink. Para mais informações, consulte crie um cluster.

envie e visualize jobs do Flink

Nota

Este tópico usa o exemplo TopSpeedWindowing do Flink. Este exemplo é um job de streaming de longa duração.

Escolha um dos três modos a seguir para enviar e visualizar jobs:

Modo Session

  1. Conecte-se ao nó mestre do cluster via ssh. Para mais informações, consulte Log on to the master node of a cluster.

  2. execute o comando a seguir para iniciar uma sessão do YARN.

    yarn-session.sh --detached

    Após a execução bem-sucedida do comando, o sistema retorna um ID de aplicação. Por exemplo, application_1750137174986_0001. Nas seções a seguir, esse ID é referenciado como <application_XXXX_YY>.

    mr.aliyuncs.com:33879 of application 'application_1750137174986_0001'.
    JobManager Web Interface: http://core-1-1.c-1f6ec9xxx.cn-hangzhou.emr.aliyuncs.com:33879
    2025-06-17 13:19:20,152 INFO  org.apache.flink.yarn.cli.FlinkYarnSessionCli                [] - The Flink YARN session cluster has been started in detached mode. In order to stop Flink gracefully, use the following command:
    $ echo "stop" | ./bin/yarn-session.sh -id application_1750137174986_0001
    If this should not be possible, then you can also kill Flink via YARN's web interface or via:
    $ yarn application -kill application_1750137174986_0001
    Note that killing Flink might not clean up all job artifacts and temporary files.
  3. execute o comando a seguir para enviar o job.

    flink run --detached /opt/apps/FLINK/flink-current/examples/streaming/TopSpeedWindowing.jar

    Depois que o job é enviado, o sistema retorna uma mensagem semelhante à seguinte.

    [root@master-1-1(172.17.xxx.xxx) ~]# flink run --detached /opt/apps/FLINK/flink-current/examples/streaming/TopSpeedWindowing.jar
    SLF4J: Class path contains multiple SLF4J bindings.
    SLF4J: Found binding in [jar:file:/opt/apps/FLINK/flink-1.17.2-1.0.10/lib/log4j-slf4j-impl-2.17.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: Found binding in [jar:file:/opt/apps/HADOOP-COMMON/hadoop-3.2.1-1.3.2-alinux3/share/hadoop/common/lib/slf4j-log4j12-1.7.25.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]
    2025-06-17 13:29:00,205 INFO  org.apache.flink.yarn.cli.FlinkYarnSessionCli                [] - Found Yarn properties file under /tmp/.yarn-properties-root.
    2025-06-17 13:29:00,205 INFO  org.apache.flink.yarn.cli.FlinkYarnSessionCli                [] - Found Yarn properties file under /tmp/.yarn-properties-root.
    Executing example with default input data.
    Use --input to specify file input.
    Printing result to stdout. Use --output to specify output path.
    2025-06-17 13:29:00,667 WARN  org.apache.flink.yarn.configuration.YarnLogConfigUtil        [] - The configuration directory ('/etc/taihao-apps/flink-conf') already contains a LOG4J config file.If you want to use logback, then please delete or rename the log configuration file.
    2025-06-17 13:29:00,864 INFO  org.apache.hadoop.yarn.client.RMProxy                        [] - Connecting to ResourceManager at master-1-1.c-1f6ec9192d1528ec.cn-hangzhou.emr.aliyuncs.com/172.17.xxx.xxx:8032
    2025-06-17 13:29:01,061 INFO  org.apache.hadoop.yarn.client.AHSProxy                       [] - Connecting to Application History server at master-1-1.c-1f6ec9192d1528ec.cn-hangzhou.emr.aliyuncs.com/172.17.xxx.xxx:10200
    2025-06-17 13:29:01,072 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
    2025-06-17 13:29:01,208 INFO  org.apache.flink.yarn.YarnClusterDescriptor                  [] - Found Web Interface core-1-1.c-1f6ecxxx.cn-hangzhou.emr.aliyuncs.com:33879 of application 'application_1750137174986_0001'.
    Job has been submitted with JobID 3785db18d371326758d7843dd2a1xxx

    Na mensagem, 3785db18d371326758d7843dd2a1**** é o ID do job. Nas seções a seguir, esse ID é referenciado como <jobId>.

  4. execute o comando a seguir para visualizar o status do job.

    flink list -t yarn-session -Dyarn.application.id=<application_XXXX_YY>

    Uma mensagem semelhante à seguinte é retornada.

    ------------------ Running/Restarting Jobs -------------------
    16.06.2025 18:20:55 : 3785db18d371326758d7843dd2a1**** : CarTopSpeedWindowingExample (RUNNING)

    Você também pode visualizar o status do job na interface web. Para mais informações, consulte visualize o status do job na interface web.

  5. execute o comando a seguir para parar o job.

    flink cancel -t yarn-session -Dyarn.application.id=<application_XXXX_YY> <jobId>

Modo Per-job cluster

  1. Conecte-se ao nó mestre do cluster via ssh. Para mais informações, consulte Log on to the master node of a cluster.

  2. execute o comando a seguir para enviar o job.

    flink run -t yarn-per-job --detached /opt/apps/FLINK/flink-current/examples/streaming/TopSpeedWindowing.jar

    Depois que o job é enviado, o sistema retorna uma mensagem semelhante à seguinte.

    $ yarn application -kill application_1750125819948_0003
    Note that killing Flink might not clean up all job artifacts and temporary files.
    2025-06-17 10:44:46,268 INFO  org.apache.flink.yarn.YarnClusterDescriptor                 [] - Found Web Interface core-1-1.c-b9693c.xxx.cn-hangzhou.emr.aliyuncs.com:38037 of application 'application_1750125819948_0003'.
    Job has been submitted with JobID 451aded93de19d6cd238ed3b466xxx
    You have new mail in /var/spool/mail/root

    Na mensagem, application_1750125819948_**** é o ID da aplicação, referenciado como <application_XXXX_YY> nas seções a seguir. f5f980ac631192b02548235f1bbe**** é o ID do job, referenciado como <jobId> nas seções a seguir.

  3. execute o comando a seguir para visualizar o status do job.

    flink list -t yarn-per-job -Dyarn.application.id=<application_XXXX_YY>

    Você também pode visualizar o status do job na interface web. Para mais informações, consulte visualize o status do job na interface web.

  4. execute o comando a seguir para parar o job.

    flink cancel -t yarn-per-job -Dyarn.application.id=<application_XXXX_YY> <jobId>

Modo Application

  1. Conecte-se ao nó mestre do cluster via ssh. Para mais informações, consulte Log on to the master node of a cluster.

  2. execute o comando a seguir para enviar o job.

    flink run-application -t yarn-application /opt/apps/FLINK/flink-current/examples/streaming/TopSpeedWindowing.jar

    Depois que o job é enviado, o sistema retorna uma mensagem semelhante à seguinte.

    [root@master-1-1(172.17.xxx.xxx) ~]# flink run-application -t yarn-application /opt/apps/FLINK/flink-current/examples/streaming/TopSpeedWindowing.jar
    SLF4J: Class path contains multiple SLF4J bindings.
    SLF4J: Found binding in [jar:file:/opt/apps/FLINK/flink-1.17.2-1.0.10/lib/log4j-slf4j-impl-2.17.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: Found binding in [jar:file:/opt/apps/HADOOP-COMMON/hadoop-3.2.1-1.3.2-alinux3/share/hadoop/common/lib/slf4j-log4j12-1.7.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]
    2025-06-17 10:57:05,106 INFO  org.apache.flink.yarn.cli.FlinkYarnSessionCli                [] - Found Yarn properties file under /tmp/.yarn-properties-root.
    2025-06-17 10:57:05,106 INFO  org.apache.flink.yarn.cli.FlinkYarnSessionCli                [] - Found Yarn properties file under /tmp/.yarn-properties-root.
    2025-06-17 10:57:05,233 WARN  org.apache.flink.yarn.configuration.YarnLogConfigUtil        [] - The configuration directory ('/etc/taihao-apps/flink-conf') already contains a LOG4J config file.If you want to use logback, then please delete or rename the log configuration file.
    2025-06-17 10:57:05,453 INFO  org.apache.hadoop.yarn.client.RMProxy                       [] - Connecting to ResourceManager at master-1-1.c-b9693c1xxx.cn-hangzhou.emr.aliyuncs.com/172.17.xxx.xxx:8032
    2025-06-17 10:57:05,604 INFO  org.apache.hadoop.yarn.client.AHSProxy                      [] - Connecting to Application History server at master-1-1.c-b9693xxx
    3c131faf601f.cn-hangzhou.emr.aliyuncs.com/172.17.108.111:10200
    2025-06-17 10:57:05,612 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
    2025-06-17 10:57:05,724 INFO  org.apache.hadoop.conf.Configuration                        [] - found resource resource-types.xml at file:/etc/taihao-apps/hadoop-conf/resource-types.xml
    2025-06-17 10:57:05,776 INFO  org.apache.flink.yarn.YarnClusterDescriptor                  [] - The configured JobManager memory is 1600 MB. YARN will allocate 1664 MB to make up an integer multiple of its minimum allocation memory (128 MB, configured via 'yarn.scheduler.minimum-allocation-mb'). The extra 64 MB may not be used by Flink.
    2025-06-17 10:57:05,776 INFO  org.apache.flink.yarn.YarnClusterDescriptor                  [] - The configured TaskManager memory is 1728 MB. YARN will allocate 1792 MB to make up an integer multiple of its minimum allocation memory (128 MB, configured via 'yarn.scheduler.minimum-allocation-mb'). The extra 64 MB may not be used by Flink.
    2025-06-17 10:57:05,776 INFO  org.apache.flink.yarn.YarnClusterDescriptor                  [] - Cluster specification: ClusterSpecification{masterMemoryMB=1600, taskManagerMemoryMB=1728, slotsPerTaskManager=1}
    2025-06-17 10:57:10,219 INFO  org.apache.flink.yarn.YarnClusterDescriptor                  [] - Cannot use kerberos delegation token manager, no valid kerberos credentials provided.
    2025-06-17 10:57:10,227 INFO  org.apache.flink.yarn.YarnClusterDescriptor                  [] - Submitting application master application_1750125819948_0004
    2025-06-17 10:57:10,271 INFO  org.apache.hadoop.yarn.client.api.impl.YarnClientImpl        [] - Submitted application application_1750125819948_0004
    2025-06-17 10:57:10,271 INFO  org.apache.flink.yarn.YarnClusterDescriptor                  [] - Waiting for the cluster to be allocated
    2025-06-17 10:57:10,278 INFO  org.apache.flink.yarn.YarnClusterDescriptor                  [] - Deploying cluster, current state ACCEPTED
    2025-06-17 10:57:17,825 INFO  org.apache.flink.yarn.YarnClusterDescriptor                  [] - YARN application has been deployed successfully.
    2025-06-17 10:57:17,825 INFO  org.apache.flink.yarn.YarnClusterDescriptor                  [] - Found Web Interface core-1-1.c-b9693c1xxx.cn-hangzhou.emr.aliyuncs.com:42563 of application 'application_1750125819948_0004'.

    Na mensagem, application_1750125819948_0004 é o ID da aplicação YARN do job do Flink enviado. Nas seções a seguir, esse ID é referenciado como <application_XXXX_YY>.

  3. execute o comando a seguir para visualizar o status do job.

    flink list -t yarn-application -Dyarn.application.id=<application_XXXX_YY>

    Uma mensagem semelhante à seguinte é retornada. Na mensagem, 4db32b5339e6d64de2a1096c4762**** é o <jobId> do job.

    ------------------ Running/Restarting Jobs -------------------
    16.06.2025 18:20:55 : 4db32b5339e6d64de2a1096c4762**** : CarTopSpeedWindowingExample (RUNNING)

    Você também pode visualizar o status do job na interface web. Para mais informações, consulte visualize o status do job na interface web.

  4. execute o comando a seguir para parar o job.

    flink cancel -t yarn-application -Dyarn.application.id=<application_XXXX_YY> <jobId>

especifique as configurações do job

O Flink oferece três maneiras de especificar as configurações do job:

  • especifique os valores de configuração no código do seu job. Para mais informações, consulte Configuração do Flink.

  • Ao enviar um job com o comando flink run, use a flag -D para especificar os valores de configuração. Por exemplo, flink run-application -t yarn-application -D state.backend=rocksdb....

  • especifique os valores de configuração no arquivo /etc/taihao-apps/flink-conf/flink-conf.yaml.

Se você não especificar as configurações usando esses métodos, o Flink usará os valores padrão. Para mais informações sobre os parâmetros de configuração, consulte o site oficial do Apache Flink.

Verifique o status do job na interface web

  1. Acesse a interface web.

    1. Faça login no console do E-MapReduce.

    2. No painel de navegação à esquerda, selecione EMR on ECS.

    3. Na barra de navegação superior, selecione uma região e um grupo de recursos conforme necessário.

    4. Na página EMR on ECS, clique em Cluster ID do cluster de destino.

    5. clique em guia Access Links and Ports.

    6. Na página Access Links and Ports, clique no link da linha YARN UI.

      Para mais informações, consulte Access the web UIs of open-source components.

  2. clique em um ID de aplicação.

    Na página All Applications do Hadoop YARN ResourceManager, encontre a aplicação chamada Flink per-job cluster e clique em seu Application ID (por exemplo, application_1628232179762_0002).

  3. clique em link da Tracking URL.

    Na seção Application Overview, o link da Tracking URL é exibido como ApplicationMaster.

    A página do Apache Flink Dashboard é aberta e exibe o status do job.

Documentos relacionados

Para mais informações sobre o Flink no YARN, consulte Apache Hadoop YARN.