![](/img/trans.png)
[英]Where does YARN application logs get stored in EMR before sending to S3
[英]How to copy EMR streaming job logs to S3 and clean logs on EMR core node's disk
美好的一天,
我正在AWS EMR 5.20上运行Flink(v1.7.1)流作业,并且我希望在S3中拥有我的作业的所有task_managers和job_manager的日志。 Flink团队建议使用Logback。 由于这是一项长期运行的工作,因此我希望日志为:
我尝试过的是:
<appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.file}</file> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>%d{yyyy-MM-dd HH}.%i.log</fileNamePattern> <maxFileSize>30MB</maxFileSize> <maxHistory>3</maxHistory> <totalSizeCap>50MB</totalSizeCap> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{60} %X{sourceThread} - %msg%n</pattern> </encoder> </appender>
到目前为止,我得到/观察到的是:
简而言之,在我获得的3个要求中,我只能选择(1)或(2&3)。
你能帮我这个忙吗?
谢谢和最诚挚的问候,
埃夫里尔
据我所知,EMR支持的将日志自动备份到S3只会在工作结束时起作用,因为它基于AWS最初为批处理作业实现的后台日志加载器。 也许有一种方法可以使它用于滚动日志,但我从未听说过。
我自己还没有尝试过,但是如果需要的话,我可能会尝试以下操作:
S3fs
在您的EC2实例上安装S3。 logrotate
(或同等功能)以自动复制和清理日志文件。 您可以使用引导操作来自动设置以上所有功能。
如果S3fs
给您带来了问题,那么您可以做更多的脚本编写,并直接使用aws s3
命令来同步日志,然后在复制日志后将其删除。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.