我在獨立集羣上運行多個flink作業。我想爲不同的鏈接作業提供不同的日誌文件。那麼如何在提交flink作業時傳遞不同的log4j.properties文件。如何爲在同一個獨立集羣上運行的不同flink作業指定不同的log4j.properties文件
1
A
回答
1
截至目前,還沒有簡單的方法來做到這一點,因爲flink總是在flink/conf
下加載文件。
如果使用弗林克的單絲簇每工作模式(即你啓動你的腳本:flink run -m yarn-cluster ...
),這裏是一個解決辦法:
- 複製
flink/conf
目錄到僅用於您的工作自定義位置 - 修改
log4j.properties
或任何其他配置文件 - 開展你的工作之前,運行
export FLINK_CONF_DIR=/path/to/my/conf
根據您的flink版本,檢查文件flink/bin/config.sh
。如果您運行翻過這一行:
FLINK_CONF_DIR=$FLINK_ROOT_DIR_MANGLED/conf
改變它:
if [ -z "$FLINK_CONF_DIR" ]; then
FLINK_CONF_DIR=$FLINK_ROOT_DIR_MANGLED/conf;
fi
如果你找到另一種方式,請與我們分享。
1
按照弗林克文件(最新版本),你可以通過log4j的/的logback文件,當您提交使用,這裏的鏈接: https://ci.apache.org/projects/flink/flink-docs-master/monitoring/logging.html
總之,你可以提供「-Dlog4j.configuration=/path/to/log4j.properties
」或「-Dlogback.configurationFile=/path/to/logback.xml
」。您也可以爲每項工作配置不同的記錄器,因此您可以保留一個「logback"/"log4j
」文件。下面是一個例子用的logback:
<!-- logback.xml -->
<configuration>
<property name="LOG_HOME" value="/path/to/logs" />
<appender name="JOB1"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/job1/job.out</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>
%d{yyyy-MM-dd HH:mm:ss} - %msg%n
</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover hourly -->
<fileNamePattern>${LOG_HOME}/job1/%d{yyyyMMdd_HH}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>1MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<logger name="com.yourcompany.job1" level="INFO" additivity="false">
<appender-ref ref="JOB1" />
</logger>
<!-- rest of configs -->
</configuration>
而在你的代碼(例如使用Scala,這幾乎是與Java一樣):
import org.slf4j.LoggerFactory
private final val logger = LoggerFactory.getLogger("com.yourcompany.job1")
logger.info("some message")
乾杯
相關問題
- 1. 如何在獨立flink集羣中提交flink作業時指定與守護程序日誌文件不同的日誌文件
- 2. Cron作業與獨立作業不同
- 3. 如何在遠程YARN羣集上運行Flink作業
- 4. 火花獨立羣集,在一個執行器上運行的作業
- 5. 在Jenkins的不同運行中對同一作業使用不同的從站
- 6. RabbitMQ:防止作業同時在兩個不同的工作人員上運行
- 7. 如何在python中獨立運行不同的子進程?
- 8. 如何安排作業在不同時間爲不同用戶運行
- 9. 如何在同一個src文件夾中運行不同的.kt文件/類?
- 10. 如何在同一個項目中爲不同的構建指定不同的.dockerignore文件?
- 11. Jenkins multijob插件不會在不同節點上並行執行同一作業
- 12. 集羣模式SPARK拒絕同時運行兩個以上的作業
- 13. Sidekiq作業將不會在同一時間運行在不同的隊列
- 14. oozie實例可以同時在多個hadoop集羣上運行作業嗎?
- 15. 如何在同一頁面上爲Colorbox指定2個不同的位置?
- 16. 在同一設備上運行的獨立發行版?
- 17. 獨立JAR行爲不同IDE
- 18. 如何同時獨立移動兩個不同的CCSprites?
- 19. 如何爲每個不同的客戶端指定一個不同的ID
- 20. 如何在同一頁面上運行不同版本的jQuery?
- 21. 在本地羣集中的不同分區中運行不同版本
- 22. 如何將兩臺獨立的Ubuntu機器連接到同一個hadoop羣集
- 23. 在Python中並行運行2+不同的獨立類方法
- 24. 如何在不同內核上運行不同的線程?
- 25. 需要從一個單獨的文件運行3個不同的ruby文件
- 26. 同時在一個作業下同時運行多個SQL作業
- 27. 文件下載servlet在集羣服務器上的行爲與IE不同
- 28. 在Jenkins的相同節點或不同節點運行相同的作業
- 29. 如何運行python腳本作爲不同文件的循環?
- 30. Flink:在Flink集羣上執行Jar文件
但是,在你們提供的「 - Dlog4j.configuration = /路徑/要/ log4j.properties「?它似乎不是Flink的命令行選項。 –