日志说明
流计算 Oceanus 的日志分为启动日志和运行日志两部分。
启动日志:在流计算集群中提交用户的 SQL 或 JAR 等作业时,首先会进入生成 Flink 运行图的启动过程。这个过程中产生的日志,称为启动日志。当作业启动失败时,流计算控制台的作业名后会出现一个黄色小三角⚠️,可鼠标悬停至其上方查看说明;也可以通过日志面板,阅读报错的上下文日志。
运行日志:当作业运行图生成完毕,则会启动 JobManager 和 TaskManager,并将运行图提交到集群进行执行,作业进入“运行中”状态。之后 JobManager 和各个 TaskManager 打印的日志称为运行日志。
常见异常关键字
作业失败原因
通过 from RUNNING to FAILED
关键字可以搜索到作业崩溃的直接原因,异常栈中的 Caused by
后即为故障信息。
是否发生过 OOM
如果出现了 java.lang.OutOfMemoryError
关键字,说明很可能出现了 OOM 堆内存溢出。需尝试增加作业的算子并行度(CU)数和优化内存占用,避免内存泄露。
JVM 退出等致命错误
进程退出码通常出现在以下关键字后,可以辅助定位 JVM 或 Akka 等发生了致命错误被强制关闭等的错误。
exit code OR shutting down JVM OR fatal OR kill OR killing
例如,表示 ZooKeeper 连接丢失的致命错误,命中了 fatal
关键字
快照失败(超时)
如果出现了下列该关键字,说明快照失败,请根据原因进行进一步的分析。例如,declined
表示由于资源未到位(作业并未处于运行中)、个别算子已进入 FINISHED
状态、快照超时、快照文件不完整等原因,造成了快照的失败。
Checkpoint was declined
Checkpoint was canceled
Checkpoint expired
job has failed
Task has failed
Failure to finalize
超时/失败
下列关键字代表外部系统访问(例如 MySQL、Kafka 等)可能因为网络原因出现了超时。结果中可能会有很多配置相关的内容,请自行甄别是否是报错。例如,Kafka 的 Timeout expired while fetching topic metadata
表示初始化超时;MySQL 的 Communications link failure
表示连接中断(可能是很长时间没有数据流入,造成客户端超时)。
java.util.concurrent.TimeoutException
timeout
failure
timed out
failed
异常
异常 Exception
关键字代表可能发生了异常。例如,下图某个 Flink 作业的启动日志,它因为异常而没有提交成功。搜索 Exception
关键字,可以从各级异常栈的 Caused by
中看到具体的异常:
注意
由于日志关键字分词的原因,并非所有含有 Exception 的日志都能搜到。
WARN 和 ERROR 日志
一般情况下也可以搜索所有含 WARN
和 ERROR
关键字的日志,可能有较多结果,请注意筛选过滤有价值的信息。例如, WARN 和 ERROR 报错是正常的,并不代表有错误出现。
可忽略的报错信息
流计算 Oceanus 日志中有一些常见的报错,不会影响作业运行,在查找问题时可以直接跳过:
WARN org.apache.flink.core.plugin.PluginConfig - The plugins directory [plugins] does not exist.
WARN org.apache.flink.shaded.zookeeper3.org.apache.zookeeper.ClientCnxn - SASL configuration failed: javax.security.auth.login.LoginException: No JAAS configuration section named 'Client' was found in specified JAAS configuration file: '/tmp/jaas-00000000.conf'. Will continue connection to Zookeeper server without SASL authentication, if Zookeeper server allows it.
ERROR org.apache.flink.shaded.curator4.org.apache.curator.ConnectionState - Authentication failed
WARN org.apache.hadoop.util.NativeCodeLoader - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
WARN org.apache.flink.kubernetes.utils.KubernetesInitializerUtils - Ship directory /data/workspace/.../shipFiles is not exists. Ignoring it.
WARN org.apache.flink.configuration.GlobalConfiguration - Error while trying to split key and value in configuration file /opt/flink-1.11.0/conf/flink-conf.yaml
WARN org.apache.flink.shaded.curator4.org.apache.curator.utils.ZKPaths - The version of ZooKeeper being used doesn't support Container nodes. CreateMode.PERSISTENT will be used instead.
WARNING: Unable to load JDK7 types (annotations, java.nio.file.Path): no Java7 support added
本页内容是否解决了您的问题?