flink1.11 执行任务控制台日志怎么没有 application ID 呀?
在 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,则不会在控制台上看到输出。
通常情况下,Apache Flink 会输出日志,包括作业 ID 和 TaskManager 的相关信息,如 Node、TaskID、TaskName、Operator 等。但是,由于某些原因,您可能无法在控制台上看到 Application ID。
如果您想要获取 Application ID,请尝试以下方法:
在命令行界面中运行 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
您还可以使用 JMX 组件(Java Management Extensions,Java 管理扩展)来获取 Application ID。首先,需要在 TaskManager 中安装 JMX 组件,然后使用 JConsole 或其他 JMX 客户端连接到 TaskManager,并查看 MBeans。
如果您想在 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());
在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了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。