Flink作业提交错误,如何定位
1.在Flink作业管理页面,将鼠标悬停到提交失败的作业状态上,查看失败的简要信息。
常见的失败原因可能包括:
−CU资源不足:需扩容队列。
−生成jar包失败:检查SQL语法及UDF等。
2.如果信息不足以定位或者是调用栈错误,可以进一步单击作业名称,进入到作业详情页面,选择“提交日志”页签,查看作业提交日志。
Flink作业运行异常,如何定位
1.在“Flink作业”管理页面,对应作业“操作”列单击“编辑”按钮,在作业运行界面确认作业是否勾选“保存作业日志”参数。
−是,则执行3。
−否,则运行日志不会转储OBS桶,需要先执行2保存作业运行日志。
2.在作业运行界面勾选“保存作业日志”,在“OBS桶”参数选择存储运行日志的OBS桶。单击“启动”重新运行作业。作业重新运行完成后再执行3及后续步骤。
3.在Flink作业列表单击对应作业名称,进入作业详情页面,选择“运行日志”页签。
4.单击OBS桶,获取对应作业的完整运行日志。
5.下载最新“jobmanager.log”文件,搜索“RUNNING to FAILED”关键字,通过上下文的错误栈,确认失败原因。
6.如果“jobmanager.log”文件中的信息不足以定位,可以在运行日志中找到对应的“taskmanager.log”日志,搜索“RUNNING to FAILED”关键字,确认失败原因。
Flink作业重启后,如何判断是否可以从checkpoint直接恢复
Flink作业重启后,可以从两个角度判断是否可以从checkpoint直接恢复:
- 调整或者增加优化参数、并行度,修改Flink SQL语句、Flink Jar作业等操作,无法从checkpoint直接恢复。
- 仅修改“单TM所占CU数”参数时,可以从checkpoint直接恢复。
如何处理作业的OBS Bucket没有授权?
用户在执行一个作业,提示OBS Bucket没有授权时,用户需要进行如下操作:
1.在“全局配置 ”>“服务授权”页面配置“Tenant Administrator(全局服务)”权限。
2.单击“作业管理”,找到操作的作业名称。
3.单击“操作”列表中的“编辑”,进入“作业编辑”页面。
4.用户需要在该作业的“作业编辑”页面进行“运行参数配置”。
a.选择“开启Checkpoint”或“保存作业日志”。
b.选择“OBS桶”。
c.单击“OBS授权”。
DLI Flink作业提交运行后(已选择保存作业日志到OBS桶),提交运行失败的情形(例如:jar包冲突),有时日志不会写到OBS桶中
DLI Flink作业提交或运行失败时,对应生成的作业日志保存方式,包含以下三种情况:
- 提交失败,只会在submit-client下生成提交日志。
- 运行失败且在1分钟内的日志,可以直接在管理控制台页面查看,具体如下:
在“作业管理”>“Flink作业”页面,单击对应的作业名称,进入作业详情页面,单击“运行日志”可以查看实时日志。
- 运行失败且超过1分钟(日志转储周期1分钟),会在application_xx下生成运行日志。
另外,由于DLI服务端已经内置了Flink的依赖包,并且基于开源社区版本做了安全加固。为了避免依赖包兼容性问题或日志输出及转储问题,打包时请注意排除以下文件:
- 系统内置的依赖包,或者在Maven或者Sbt构建工具中将scope设为provided
- 日志配置文件(例如l:“log4j.properties”或者“logback.xml”等)
- 日志输出实现类JAR包(例如:log4j等)
在此基础上,taskmanager.log会随日志文件大小和时间滚动。
访问FlinkUI/SparkUI页面无法正常显示怎么办?
问题现象
访问FlinkUI/SparkUI页面无法正常显示,打开页面返回信息不全。
根因分析
根据分析发现队列为按需队列,运行作业的时候会重新创建集群,大概需要10分钟左右才能完成集群创建。在集群创建完成之前,访问FlinkUI会导致缓存空的projectID,从而导致无法访问。出现该问题可能原因是由于集群未创建。
解决方案
建议将队列更换为专属队列,空闲状态下集群不会被释放。或者提交作业等一段时间之后在查看FlinkUI。
Jobmanager与Taskmanager心跳超时,导致Flink作业异常怎么办?
问题现象
Jobmanager与Taskmanager心跳超时,导致Flink作业异常。
异常信息
根因分析
1.检查网络是否发生闪断,分析集群负载是否很高。
2.如果频繁出现Full GC, 建议排查代码,确认是否有内存泄漏。
Full GC
处理步骤
- 如果频繁Full GC, 建议排查代码,是否有内存泄漏。
- 增加单TM所占的资源。
- 联系技术支持,修改集群心跳配置参数。
Flink jobmanager日志一直报Timeout expired while fetching topic metadata怎么办?
1.首先测试地址连通性。
2.若果网络不可达,需要先配置网络连通。确保DLI 队列与外部数据源的网络连接性正常。