大家好,
我们这边想做flink on yarn日志web前台动态展示的功能。因为没在flink restful api里面找到日志相关的api,现在的想法是这样:
1.web前端编写flink脚本,点击运行调用web后端的执行接口
2.web后端生成此前端任务的taskId,并调用flink驱动包(Pom依赖方式),传入前端脚本+taskId作为入口传参
3.flink驱动包中:
A>通过YarnClient启动flink on yarn任务,返回yarn applicationId, flinkJobId
B>通过logback的自定义append,将 日志内容+taskId 发送到对应的mq
4.web后端:
A>接收到yarn applicationId,flinkJobId,跟taskId映射起来
B>通过mq消费端消费 日志内容+taskId|yarnApplicationId|flinkJobId,通过websocket发送到对应taskId的前端界面(动态展示)
5.web前端展示日志内容
现在遇到个问题,我们这边想拿到yarn上面的完整日志,但是
1.若是通过logback.xml来定义MQAppend,则无法动态传入taskId参数(已经可以通过flink context获取到,但是append里面拿不到flink context),这个是否有方式传入
2.若是通过java代码手动配置Append(已实现),则这段代码应该加在哪里,因为光从原始的日志打印中的classPath来看,前面都是flink原生jar包里面的日志,这个我们想在这些flink jar包里面的类初始化之前,将这个append配置代码先运行
还有是否这个方案本身就是有问题?或者flink有没有提供更加好的日志展示方式,类似spark的restful api中带有获取日志的api(静态展示或者定时刷新)?
[hidden email]