Flink on YARN常见问题之: 客户端疑难问题排查思路是什么?
当客户端日志无法正常定位时,可以修改 log4j 配置文件将日志级别由 INFO 改 为 DEBUG 后重新运行,看是否有 DEBUG 日志可以帮助排查问题。对于一些没有 日志或日志信息不完整的问题,可能需要开展代码级调试,修改源码重新打包替换 的方式太过繁琐,推荐使用 Java 字节码注入工具 Byteman(详细语法说明请参考: Byteman Document),使用示例: (1) 编写调试脚本,例如打印 Flink 实际使用的 Client 类,以下脚本表示在 CliFrontend#getActiveCustomCommandLine 函数退出时打印其返回值;
RULE test
CLASS org.apache.flink.client.cli.CliFrontend
METHOD getActiveCustomCommandLine
AT EXIT
IF TRUE
DO traceln("------->CliFrontend#getActiveCustomCommandLine return: "+$!);
ENDRULE
(2) 设置环境变量,使用 byteman javaagent:
export BYTEMAN_HOME=/path/to/byte-home
export TRACE_SCRIPT=/path/to/script
export JVM_ARGS=”-javaagent:${BYTEMAN_HOME}/lib/byteman.jar=script:${TRACE_
SCRIPT}”
(3) 运行测试命令 bin/flink run -m yarn-cluster -p 1 ./examples/streaming/WordCount.jar ,控制台将输出内容:
------->CliFrontend#getActiveCustomCommandLine return: org.apache.flink.yarn.cli.
FlinkYarnSessionCli@25ce9dc4
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。