【问题标题】:Configure Hadoop to use S3 requester-pays-enabled配置 Hadoop 以使用 S3 requester-pays-enabled
【发布时间】:2014-06-26 13:08:09
【问题描述】:

我正在使用 Hadoop(通过 Spark),并且需要访问由请求者付费的 S3N 内容。通常,这是通过在jets3t.properties 中启用httpclient.requester-pays-buckets-enabled = true 来完成的。然而,我已经设置了这个,Spark / Hadoop 忽略了它。也许我把jets3t.properties 放在了错误的地方(/usr/share/spark/conf/)。如何让 Hadoop / Spark / JetS3t 访问 requestor-pays 存储桶?

更新:如果您在 Amazon EC2 之外,则需要这样做。在 EC2 中,亚马逊不需要请求者付费。因此,一个粗略的解决方法是用完 EC2。

【问题讨论】:

    标签: hadoop amazon-s3 apache-spark jets3t


    【解决方案1】:

    Spark 系统由多个 JVM(应用程序、主程序、工作程序、执行程序)组成,因此设置属性可能很棘手。您可以在文件操作之前使用System.getProperty() 来检查运行代码的JVM 是否加载了正确的配置。您甚至可以使用System.setProperty() 直接在该点设置它,而不是找出配置文件。

    【讨论】:

    • 在代码中使用System.setProperty() 是不是太晚了,因为 JetS3t 已经配置了自己?
    • 我实际上并不了解 JetS3t,我的建议只是基于我在 Spark 中设置一些属性的努力。对于 JetS3t,也许你可以使用 setRequesterPaysBucket(): bitbucket.org/jmurty/jets3t/src/…
    【解决方案2】:

    环境变量和配置文件不起作用,但一些手动代码起作用:sc.hadoopConfiguration.set("fs.s3n.awsAccessKeyId", "PUTTHEKEYHERE")

    【讨论】:

    • 这个上下文中的 SC 是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多