数据管道S3日志未写入(仅在使用Amazon Linux时写入)

时间:2015-11-17 22:11:28

标签: amazon-data-pipeline

使用完全相同的数据管道配置,只在要使用的AMI(Amazon Linux与Ubuntu)不同,我的数据管道执行在两种情况下都会成功它只会将日志写入S3使用Amazon Linux时。

使用Amazon Linux

enter image description here

使用Ubuntu

enter image description here

在这两种情况下,我使用相同的用户(ec2-user,而非ubuntu)登录,为此我正确配置了Ubuntu AMI的用户名:

#cloud-config
system_info:
  default_user:
    name: ec2-user

此外,在启动Amazon Linux或Ubuntu管道时,我使用相同的resourceRolerole属性。所以这不是问题。

显然,亚马逊Linux有一些编写S3日志所需的东西,它可能是什么?

1 个答案:

答案 0 :(得分:2)

这是因为TaskRunner使用名为Joda的Java库来为日志记录生成时间戳。 JRE的某些版本附带了Joda jar的错误版本,因此任何使用该版本的AMI(根据我的经验,任何超过6的版本)都无法正确编写日志。

我建议在ShellCommandActivity中的所有脚本之前添加alternatives --set java /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java之类的东西 - 这解决了我的问题。

或者,您可以始终使用已知具有Java 6的AMI实例ID。