1. 程式人生 > 其它 >Flink開發部署踩坑記錄

Flink開發部署踩坑記錄

~~~~踩坑一:springboot+flink專案的日誌問題~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

現象:開發環境IDE裡除錯執行都ok,部署到flink伺服器上執行報如下錯誤:

The main method caused an error: LoggerFactory is not a Logback LoggerContext but Logback is on the classpath. Either remove Logback or the competing implementation (class org.apache.logging.slf4j.Log4jLoggerFactory loaded from file:/usr/flink/lib/log4j-slf4j-impl-2.12.1.jar

). If you are using WebLogic you will need to add 'org.slf4j' to prefer-application-packages in WEB-INF/weblogic.xml: org.apache.logging.slf4j.Log4jLoggerFactory

原因:java常用的日誌框架(或者說api)有Commons Logging(對應的具體實現是log4j)與slf4j(對應的具體實現是logback)兩種。springboot與flink預設使用的應該都是slf4j(即logback,詳見官網:Apache Flink 1.7 Documentation: Best Practices

),因此,除開我們的專案pom.xml檔案裡要排除掉log4j的引用之外,還需要在flink伺服器上部署logback的jar包,否則就會出現上述錯誤。可以參考這篇帖子:(1條訊息) Flink使用logback須知_cloudera首席使用者的部落格-CSDN部落格_flink logback

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~