【问题标题】:ERROR: Talend S3 - AWS authentication requires a valid Date or x-amz-date header错误:Talend S3 - AWS 身份验证需要有效的 Date 或 x-amz-date 标头
【发布时间】:2015-11-13 02:25:50
【问题描述】:

我正在使用 talend open studio 将 salesforce 数据推送到我的 redshift 数据库。通过使用以下方式推送数据:

1. tSalesforceInput
2. tMap
3. tFileOutputDelimited
4. tRedshiftOutput

我只得到大约 2-5 行/秒,这对我来说根本不起作用。

通过将分隔文件推送到 tS3Put,然后将数据推送到 redshift,传输速度会快得多,大约 500 行/秒。我继续面临的问题是我得到了错误:

AWS 身份验证需要有效的 Date 或 x-amz-date 标头(服务:Amazon S3;状态代码:403;错误代码:AccessDenied;请求 ID:CC9C86CCC65625C0

我不知道如何解决。我曾尝试在运行之前使用 tLibraryLoad 加载 joda time 2.8.2,然后再运行,但它仍然失败。非常感谢任何建议。

【问题讨论】:

  • 您使用的是哪个版本?如果您要上传大于 5GB 的文件,默认 S3 组件有一些限制,但除此之外它应该可以正常工作。你确定组件参数正确吗?
  • 顺便说一句,根据我的测量(使用客户端加密的 gzip 压缩数据文件),从 S3 到 redshift 的加载速度约为 20 Mbit/秒,这比您的目标 500 行/秒要好得多.
  • 我正在尝试上传一个 30mb 的 .csv 文件。我尝试使用 tS3Connect 简单地测试连接,但它失败了。当我使用 tLibraryLoad 并加载 AWS JAR 文件时,它不会给我一条错误消息,但它实际上并没有做任何事情......

标签: amazon-s3 talend


【解决方案1】:

我在使用 Talend 6.1 时也遇到了这个问题。问题是 Java8、AWS​​ 开发工具包和 Talend 捆绑的 joda-time 2.3 库不兼容。

我找到的解决方案改编自:TalendForge

Joda Time下载joda-time 2.8.2 jar

添加一个 tLibraryLoad 并将其指向您下载的新 joda-time jar 文件。

转到您项目的运行选项卡/高级设置并添加一个额外的 JVM 参数:

-Xbootclasspath/p:$ROOT_PATH/../lib/joda-time-2.8.2.jar

【讨论】:

  • 感谢保罗。我之前在 joda time 中使用了以下内容,但它不起作用:“-Xbootclasspath/a:C:\Users\xxxxx\Documents\xxxxxx\joda time\joda-time-2.8.2-dist.tar\joda-time- 2.8.2"
  • 是的,那是因为 Talend 在路径中有一个 joda-time 2.3 jar,您需要确保将 2.8 放在前面,而不是附加到类路径中。
  • 好的,所以我将 jodatime2.8.2 放在我的 java jdk 65 lib 文件夹中,这就是我放入的内容,但仍然出现错误:-Xbootclasspath/p:C:\ProgramFiles\Java\jdk1.8.0_65 \lib\joda-time-2.8.2.jar
  • 要检查的两件事:1 - 您是否在流程开始时添加了 tLibraryLoad? 2 - 你能展示你工作的完整类路径吗? (它在生成的 .bat 或 .sh 文件中?
  • 找不到任何适合我工作的 .bat 或 .sh 文件。我右键单击作业存储库以导出作业,并且未创建 .zip 文件。不知道发生了什么。
猜你喜欢
  • 2016-03-01
  • 1970-01-01
  • 2015-11-10
  • 1970-01-01
  • 2021-10-18
  • 2012-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多