Flink on yarn日志输出

Flink on yarn日志输出

题主在做flink实时流时,一直不能在flink web上打印出日志,百思不得其解,想找到相应的日志文件,却也没找到,查阅了大量资料以及通过自己的实践,总算搞明白了flink on yarn的日志输出,这里写一篇文章,以此来记录。

首先,我们在看flink的日志输出时,要先明白flink/conf下面的日志配置文件的作用。

log4j-cli.properties 我们用flink run启动时的一些日志配置

log4j-yarn-session.properties 用yarn-session.sh启动时命令行执行时用的log配置

log4j.properties 在yarn模式下,jobManager和taskManager上用的log配置都是它。

logback-console.xml

logback-yarn.xml

logback.xml

以上三个日志文件分别对应上面的三个日志文件

之后,我们才能根据相应的情况,做出改变,不过对于我们在算子内的输出,是不需要改变log日志的。而web上的的日志一般没有数据的主要原因是因为如果大量日志输出,会直接将web页面卡住,如果点击刷新按钮,过一会也会出现相应的日志数据。

因此,我这里做个演示,将内存设置小一点,看是否能在web页面上输出数据来。通过以下命令启动集群,并启动脚本,在指定的yid上运行实时流脚本。

./bin/yarn-session.sh -n 2 -jm 512m -tm 1024m -d
 ./bin/flink run -m yarn-cluster -yid application_1565839843331_0024  -c TestFlinkSQL /opt/jar/stream-test-0.1.jar

image-20190829214954221

这种情况下,我打印的输出是可以在web页面上输出的。

当然了,在web页面上日志,终究是有点麻烦的,我们可以在相关节点查看相应的taskManager的日志。

首先,要清楚我们flink的日志文件在哪个位置存放,如下图所示:我们的日志文件一般都默认在hadoop的logs下,(对于我的测试环境来说,就在这个下面所示的路径)

/opt/hadoop-2.7.7/logs/userlogs

image-20190829225533054

从里面可以找到我们相应的jobManager的日志,以及相应的taskManager的日志,这样,我们就可以找到相应的日志,来观察我们的输出数据,寻找我们代码中的问题。

image-20190829222131012

当然,对于taskManager我们需要先确定是在哪个work下存放,这个可以在web页面找到。

image-20190829223851079

image-20190829223538747

发布了32 篇原创文章 · 获赞 39 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/yang735136055/article/details/100148572