开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

flink1.11 执行任务控制台日志怎么没有 application ID 呀?

flink1.11 执行任务控制台日志怎么没有 application ID 呀?

展开
收起
三分钟热度的鱼 2023-11-08 21:18:27 95 0
3 条回答
写回答
取消 提交回答
  • 在 Flink 1.11 中,默认情况下,TaskManager 和 JobManager 启动时并不会输出应用 ID 等相关信息。您可以通过设置 logback.xml 文件或者直接指定 JVM 参数的方式,启用详细的日志输出:

    方法一:

    编辑 flink-conf.yaml 文件,在 logging 中添加以下内容:

    logging:
      level:
        org.apache.flink: DEBUG
        org.apache.flink.runtime.jobmanager: DEBUG
        org.apache.flink.runtime.taskexecutor: DEBUG
    

    这样就可以看到 TaskManager 和 JobManager 启动时的日志输出了。

    方法二:

    直接在启动命令中添加以下 JVM 参数:

    -Dlogback.configurationFile=logback-console.xml -Dlog.file=flink.log -Dlogback.level.org.apache.flink=DEBUG -Dlogback.level.org.apache.flink.runtime.jobmanager=DEBUG -Dlogback.level.org.apache.flink.runtime.taskexecutor=DEBUG
    

    这样也可以让 Flink 输出详细日志信息。

    请注意,这种方法只适用于启动 JobManager 和 TaskManager 使用 console sink 的情况,如果启用了 file sink,则不会在控制台上看到输出。

    2023-11-09 22:04:58
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    通常情况下,Apache Flink 会输出日志,包括作业 ID 和 TaskManager 的相关信息,如 Node、TaskID、TaskName、Operator 等。但是,由于某些原因,您可能无法在控制台上看到 Application ID。
    如果您想要获取 Application ID,请尝试以下方法:

    1. 使用 CLI

    在命令行界面中运行 Flink 作业时,可以通过使用 -d 参数开启调试模式,以获取更多的日志信息。例如:

    ./bin/flink run -d -m yarn-cluster -yn 4 -ys 4 -p 1 -c com.example.MyFlinkProgram target/myFlinkJob.jar -Dtaskmanager.memory.process.size=2048m
    
    1. 使用 JMX 组件

    您还可以使用 JMX 组件(Java Management Extensions,Java 管理扩展)来获取 Application ID。首先,需要在 TaskManager 中安装 JMX 组件,然后使用 JConsole 或其他 JMX 客户端连接到 TaskManager,并查看 MBeans。

    1. 使用 Flink API

    如果您想在 Flink 作业中获取 Application ID,请使用 Flink API。您可以使用 org.apache.flink.api.common.JobSubmissionResult 对象,以获取 Application ID。

    final JobClient jobClient = getExecutionEnvironment().execute("MyFlinkJob");
    jobClient.getJobExecutionResult();
    System.out.println(jobClient.getJobID());
    
    1. 使用 Web UI
    2023-11-09 13:21:29
    赞同 展开评论 打赏
  • 在Flink 1.11中,默认情况下,控制台日志不会显示application ID。这是因为在Flink 1.11之前,application ID主要用于任务调度和任务管理,而在控制台日志中显示application ID并不会带来太大的实际价值。

    如果你想在控制台日志中显示application ID,可以在启动Flink任务时,通过添加-Dlog.applicationId=true的参数来实现。例如:

    ./bin/start-local.sh -Dlog.applicationId=true
    

    这样,你就可以在控制台日志中看到application ID了。

    2023-11-09 10:07:42
    赞同 1 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载