大家好,
       我们这边想做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(静态展示或者定时刷新)?
      
            
        





zjfpla...@hotmail.com

回复