繁体   English   中英

如何将EMR流作业日志复制到S3并清除EMR核心节点磁盘上的日志

[英]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。 由于这是一项长期运行的工作,因此我希望日志为:

  1. 定期复制到S3
  2. 按时间滚动或按时间滚动或同时滚动(因为可能有大量的日志)
  3. 从EMR节点的内部磁盘中清理(否则磁盘将变满)

我尝试过的是:

  1. 创建EMR集群时启用到S3的日志记录
  2. 配置的纱线滚动日志,其中包括: yarn.log-aggregation-enable,yarn.nodemanager.remote-app-log-dir,yarn.log-aggregation.retain-seconds, yarn.nodemanager.log-aggregation.roll-monitoring-interval-秒
  3. 在logback.xml中配置的滚动日志:
<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>

到目前为止,我得到/观察到的是:

  • (1)有助于定期将日志文件复制到S3
  • (2)直到现在对我来说都没用。 仅在流作业结束时才聚合日志,现在可以观察到滚动。
  • (3)产生了一些结果,但尚未达到要求:
    • 滚动日志位于某些缓存文件夹中( / mnt / yarn / usercache / hadoop / appcache / application_1549236419773_0002 / container_1549236419773_0002_01_000002
    • 通常的YARN日志文件夹( / mnt / var / log / hadoop-yarn / containers / application_1549236419773_0002 / container_1549236419773_0002_01_000002 )中只有最后一个滚动日志文件可用
    • S3中只有最后的滚动日志文件可用

简而言之,在我获得的3个要求中,我只能选择(1)或(2&3)。

你能帮我这个忙吗?

谢谢和最诚挚的问候,

埃夫里尔

据我所知,EMR支持的将日志自动备份到S3只会在工作结束时起作用,因为它基于AWS最初为批处理作业实现的后台日志加载器。 也许有一种方法可以使它用于滚动日志,但我从未听说过。

我自己还没有尝试过,但是如果需要的话,我可能会尝试以下操作:

  1. 通过S3fs在您的EC2实例上安装S3。
  2. 设置logrotate (或同等功能)以自动复制和清理日志文件。

您可以使用引导操作来自动设置以上所有功能。

如果S3fs给您带来了问题,那么您可以做更多的脚本编写,并直接使用aws s3命令来同步日志,然后在复制日志后将其删除。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM