使用的是log4j的方式,因为需要对log做收集处理,方便后续排查问题和告警, 其实在spark中更加的有用, 正常在yarn-cluster中,spark是没法去查看log, 只有等到这个job停掉后, 再去使用yarn logs -applicationId application_1537843504301_3763 查看日志

在我们的项目中不用加任何的jar包

修改flink-1.9.0/conf/log4j.properties配置文件, 如下添加输出到kakfa

log4j.rootLogger=WARN,kafka,RFA
# Uncomment this if you want to _only_ change Flink's logging
log4j.logger.org.apache.flink=WARN,kafka,RFA
# change the log levels here.
log4j.logger.akka=WARN,kafka,RFA
log4j.logger.org.apache.kafka=WARN,kafka,RFA
log4j.logger.org.apache.hadoop=WARN,kafka,RFA
log4j.logger.org.apache.zookeeper=WARN,kafka,RFA


org.apache.flink.runtime.checkpoint.CheckpointCoordinator=WARN,kafka,RFA
log4j.appender.RFA=org.apache.log4j.RollingFileAppender
log4j.appender.RFA.File=${log.file}
log4j.appender.RFA.MaxFileSize=64MB
log4j.appender.RFA.Append=true log4j.appender.RFA.MaxBackupIndex=10
log4j.appender.RFA.layout=org.apache.log4j.PatternLayout
log4j.appender.RFA.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %t %-5p %-60c %x - %m%n


#####################################################
# 输出的日志写入kafka
#####################################################
#输出日志到kafka
log4j.appender.kafka=org.apache.kafka.log4jappender.KafkaLog4jAppender
#设置topic
log4j.appender.kafka.topic=log_topic
#设置kafka连接地址
log4j.appender.kafka.brokerList=fdc01:9092,fdc02:9092,fdc03:9092
log4j.appender.kafka.compressionType=none
log4j.appender.kafka.requiredNumAcks=0
#设置是否异步
log4j.appender.kafka.syncSend=false
log4j.appender.kafka.layout=org.apache.log4j.PatternLayout
log4j.appender.kafka.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %t %-5p %-60c %x - %m%n


# Suppress the irrelevant (wrong) warnings from the Netty channel handler
log4j.logger.org.apache.flink.shaded.akka.org.jboss.netty.channel.DefaultChannelPipeline=ERROR

需要在flink-1.9.0/lib 中加两个jar 包

kafka-clients-1.0.1.jar

kafka-log4j-appender-1.0.1.jar

 

下载这两个jar包的方式

在pom.xml 里加如下:

<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka-clients</artifactId>
    <version>1.0.1</version>
</dependency>
<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka-log4j-appender</artifactId>
    <version>1.0.1</version>
</dependency>

找到生成的jar 导入到服务器的flink-1.9.0/lib目录下, 完成。

 

问题: flink 日志无法输出到kafka

在实践操作的过程中, 刚开始一直无法把flink日志输出到kafka, 后来改了一个配置才可以, 花了我将近一天的时间

原先的配置

log4j.rootLogger=WARN,RFA,kafka

最新的配置

log4j.rootLogger=WARN,kafka,RFA
把位置顺序更改了之后就好了
注释:RFA 是yarn集群中flink日志,如下

启动新的job之后, 我们看到的结果如下:

flink日志

日志输出到kafka
 
 
 
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐